
Kasutajasuhtarenduse loomise mehhanism ja selle laadimine moodulisse on saadaval nii Linuxi kui Windowsi operatsioonisĂŒsteemidel. KĂ€esolevas artiklis kĂ€sitleme ĂŒksikasjalikult, kuidas kasutada pakutud SDK nĂ€idetega. koostada ja laadida kasutajasuhtarendust moodulisse.
Enne artikli kirjutamist palus ĂŒks tuttav, kes ei olnud Linuxi arendusteemadega tuttav, detailseks lĂ€henemiseks oma rakenduse arendamise protsessi kirjeldamisele SIM7600E-H mooduli jaoks. Materjali kergesti mĂ”istetavuse kriteeriumiks oli lause "niimoodi, et ma sain aru".
Kutsun teid tutvuma sellega, mis vÀlja tuli.
Artiklit tÀiendatakse ja uuendatakse regulaarselt.
PrelĂŒĂŒd
Tavaliselt kasutatakse mobiilmooduleid ainult andmete edastamiseks, hÀÀlkĂ”nede, SMS-ide saatmiseks ja sarnaseks. KĂ”ik see toimub vĂ€lise juhtimismikrokontrolleri poolt saadetud AT-kĂ€skude kaudu. Kuid on ka kategooria mooduleid, mis vĂ”imaldavad tĂ€ita vĂ€ljastpoolt laaditud kasutajakoodi. MĂ”nel juhul vĂ€hendab see seadme kogukulu oluliselt, vĂ”imaldades kasutada lihtsamat (ja seega odavamat) mikrokontrollerit vĂ”i loobuda sellest ĂŒldse. LTE-moodulite ilmumisega, mis on juhitavad Androidi vĂ”i Linuxi operatsioonisĂŒsteemi ning nende vĂ”imsate ressurssidega, saab lahendada igasuguseid ĂŒlesandeid, mis on kergesti kĂ€ttesaadavad populaarsetele protsessoritele. KĂ€esolevas artiklis kĂ€sitleme SIM7600E-H moodulit, mille haldamiseks kasutatakse Linuxi. Uurime, kuidas laadida ja kĂ€ivitada tĂ€itmist vajavat rakendust.
Paljuski tugineb materjal dokumendile "SIM7600 Open Linux development guide", kuid mÔned tÀiendused ja eelkÔige venekeelne versioon osutuvad kasulikuks. Artikkel aitab neil, kes alles alustavad mooduli Ôppimist, jÔuda nÀidiserakenduse laadimiseni ja annab vajalikud oskused edasiseks tööks.
LĂŒhidalt SIM7600E-H kohta
SIM7600E-H on Qualcommi ARM Cortex-A7 1.3GHz protsessoril pĂ”hinev moodul, millel on sisseehitatud Linuxi operativo sĂŒsteem (kernel 3.18.20). See töötab Euroopa (sealhulgas Venemaa) 2G/3G/LTE sagedusaladega ja toetab Cat.4, tagades maksimum allalaadimiskiiruseks kuni 150Mbps ja ĂŒleslaadimiskiiruseks kuni 50Mbps. Rikkalikud periferaalid, tööstuslik temperatuurivahemik ja sisseehitatud GPS/GLONASS navigatsioon katavad kĂ”ik kaasaegse M2M lahenduse nĂ”uded.
SĂŒsteemi ĂŒlevaade
SIM7600E-H moodul pĂ”hineb Linuxi (kernel 3.18.20) operativo sĂŒsteemil. FailisĂŒsteem on ehitatud ajakohase failisĂŒsteemi UBIFS (Unsorted Block Image File System) alusel.
Selle failisĂŒsteemi olulised omadused on:
- töötab partitsioonidega, vÔimaldab luua, kustutada vÔi muuta nende suurust;
- tagab kirjutamise ĂŒhtlase jaotuse kogu meedia mahtudes;
- töötab vigaste plokkidega;
- minimeerib andmete kadumise tÔenÀosust voolu katkemise vÔi muude tÔrgete korral;
- ajakirja pidamine.
Kirjeldus on vĂ”etud , seal on rohkem teavet selle failisĂŒsteemi kohta.
See failisĂŒsteemi tĂŒĂŒp sobib ideaalselt mooduli raske töötingimuste ja vĂ”imalike toiteprobleemide jaoks. Kuid see ei tĂ€henda, et ebastabiilne toide oleks mooduli tavaline tööreĆŸiim; see viitab vaid seadme suurele töökindlusele.
MĂ€lu
MÀlu piirkondade jaotamine on jÀrgnev:

Peame eraldama kolm pÔhiala:
ubi0:rootfs â saadaval ainult lugemiseks ja sisaldab Linuxi kernelit
ubi0:usrfs â kasutatakse peamiselt kasutaja programmide ja andmete salvestamiseks
ubi0:cachefs â reserveeritud FOTA vĂ€rskendustele. Kui vaba ruumi on uuenduse allalaadimiseks liiga vĂ€he â sĂŒsteem kustutab mittekasutatavad failid, et vabastada ruumi. Kuid turvalisuse kaalutlustel ei tohiks seal oma faile hoida.
KÔik kolm jaotust on jaotatud jÀrgmiselt:
FailisĂŒsteem
Suurus
Kasutatud
Saadaval
Kasutus%
Mountitud
ubi0:rootfs
40.7M
36.2M
4.4M
89%
/
ubi0:usrfs
10.5M
360K
10.1M
3%
/data
ubi0:cachefs
50.3M
20K
47.7M
0%
/cache
Saadaval funktsionaalsus
Nagu juba eespool mainitud, on moodul ehitatud Qualcommi Cortex A7 kiibistikule. Oleks vale mitte pakkuda sellist kÔrge jÔudlusega tuuma, et töötleda kasutaja programmi ja kergendada seadme pÔhiprotsessorit, andes moodulile osa programmikoormast.
Kasutaja programmile on saadaval jĂ€rgmised perifeersed tööreĆŸiimid:
Pin nr.
Nimi
Sys GPIO nr.
Vaikimisi tegevus
Func1
Func2
TÔmba
Ărgituskatkestus
6
SPI_CLK
â
UART1_RTS
â
â
B-PD
â
7
SPI_MISO
â
UART1_Rx
â
â
B-PD
â
8
SPI_MOSI
â
UART1_Tx
â
â
B-PD
â
9
SPI_CS
â
UART1_CTS
â
â
B-PD
â
21
SD_CMD
â
SD-kaart
â
â
B-PD
â
22
SD_DATA0
â
SD-kaart
â
â
B-PD
â
23
SD_DATA1
â
SD-kaart
â
â
B-PD
â
24
SD_DATA2
â
SD-kaart
â
â
B-PD
â
25
SD_DATA3
â
SD-kaart
â
â
B-PD
â
26
SD_CLK
â
SD-kaart
â
â
B-PN
â
27
SDIO_DATA1
â
WLAN
â
â
B-PD
â
28
SDIO_DATA2
â
WLAN
â
â
B-PD
â
29
SDIO_CMD
â
WLAN
â
â
B-PD
â
30
SDIO_DATA0
â
WLAN
â
â
B-PD
â
31
SDIO_DATA3
â
WLAN
â
â
B-PD
â
32
SDIO_CLK
â
WLAN
â
â
B-PN
â
33
GPIO3
GPIO_1020
MIFI_POWER_EN
GPIO
MIFI_POWER_EN
B-PU
â
34
GPIO6
GPIO_1023
MIFI_SLEEP_CLK
GPIO
MIFI_SLEEP_CLK
B-PD
â
46
ADC2
â
ADC
â
â
â
â
47
ADC1
â
ADC
â
â
B-PU
â
48
SD_DET
GPIO_26
GPIO
GPIO
SD_DET
B-PD
X
49
OLEK
GPIO_52
Olek
GPIO
Olek
B-PD
X
50
GPIO43
GPIO_36
MIFI_COEX
GPIO
MIFI_COEX
B-PD
â
52
GPIO41
GPIO_79
BT
GPIO
BT
B-PD
X
55
SCL
â
I2C_SCL
â
â
B-PD
â
56
SDA
â
I2C_SDA
â
â
B-PU
â
66
RTS
â
UART2_RTS
â
â
B-PD
â
67
CTS
â
UART2_CTS
â
â
B-PD
â
68
RxD
â
UART2_Rx
â
â
B-PD
â
69
RI
â
GPIO(RI)
â
â
B-PD
â
70
DCD
â
GPIO
â
â
B-PD
â
71
TxD
â
UART2_Tx
â
â
B-PD
â
72
DTR
â
GPIO(DTR)
â
â
B-PD
X
73
PCM_OUT
â
PCM
â
â
B-PD
â
74
PCM_IN
â
PCM
â
â
B-PD
â
75
PCM_SYNC
â
PCM
â
â
B-PD
â
76
PCM_CLK
â
PCM
â
â
B-PU
â
87
GPIO77
GPIO77
BT
GPIO
BT
B-PD
â
NĂ”ustuge, et loetelu on muljetavaldav, ja pöörake tĂ€helepanu: osa riistvarast kasutatakse mooduli töötamiseks ruuterina. See tĂ€hendab, et sellise mooduli baasil saab teha vĂ€ikese ruuteri, mis jagab internetti Wi-Fi kaudu. Muide, on olemas juba valmis lahendus, mille nimi on SIM7600E-H-MIFI, mis on miniPCIE kaart koos meiega ĂŒhendatud SIM7600E-H mooduliga ja mitme antenni vĂ€ljundiga, ĂŒks neist on Wi-Fi antenn. See on aga juba teema eraldi materjaliks.
Keskkond (mitte nÀdalapÀev)
annavad arendajatele vĂ”imaluse valida ise kĂ”ige tuttavam arenduskeskkond Linuxi vĂ”i Windowsi all. Kui tegemist on ĂŒhe tĂ€idetava rakendusega moodulil, siis on parem valida Windows, nii saab kiiremini ja lihtsamalt. Kui on plaanis keeruline rakenduse arhitektuur ja edasised uuendused â on parem kasutada Linuxit. Samuti vajame Linuxit tĂ€idetavate failide kompileerimiseks, et neid moodulisse laadida, piisab virtuaalmasinast.
Ainsad asjad, mis teil on vaja, kuid mis ei ole vabalt allalaaditavad â SDK, mida saab kĂŒsida oma edasimĂŒĂŒjalt.
Mooduliga töötamiseks vajalike utiliitide installimine
Edasi liikudes töötame Windowsiga, mis on enamikule kasutajatest tuttavaim operatsioonisĂŒsteem.
Peame mÔne lihtsa sammuga installima vajalikud programmid edasise mooduliga tutvumiseks:
- GNU/Linux
- Cygwin
- Draiverid
- ADB
GNU/Linuxi installimine
Rakenduse kompileerimiseks vĂ”ib kasutada mis tahes ARM-Linuxiga ĂŒhilduvat kompilaatorit. Kasutame siiski SourceryCodeBenchLite ARM GNU/Linuxi, mida saab alla laadida aadressilt .
Et kĂ”ik komponendid oleksid Ă”igesti installitud, jĂ€tan mĂ”ned installimise protsessi ekraanipildid. Ăldiselt pole installimises midagi keerulist.
Et kĂ”ik komponendid oleksid Ă”igesti installitud, jĂ€tan mĂ”ned installimise protsessi ekraanipildid. Ăldiselt pole installimises midagi keerulist.
- Kinnita litsentsileping

- MÀÀrake installatsioonikaust

- Vajalikud komponendid jÀtame muutmata

- JĂ€tame nii nagu on

- MĂ”ned âNextâ, âInstallâ ja pĂ”himĂ”tteliselt ongi kĂ”ik

Cygwini installimine
SeejÀrel on arendamiseks vajalik raamatukogude ja utiliitide komplekt, mida pakub . Siin on kÔik lihtne, Cygwini uusimat versiooni saab tasuta alla laadida projekti ametlikult veebisaidilt, artikli kirjutamise hetkel oli saadaval versioon 3.1.5, mida kasutasime materjali ettevalmistamisel.
Cygwini installatsioon ei ole keeruline, ainus, mida tuleb valida, on peegeldus, millest paigaldaja vajalikud failid alla laadib. Valime ĂŒkskĂ”ik millise ja jĂ€tkame paigaldamisega, samuti valime vajalikud utiliidid ja raamatukogud, soovitame jĂ€tta valituks kĂ”ik saadaval olevad raamatukogud ja utiliidid.
Draiverite paigaldamine
PĂ€rast mooduli ĂŒhendamist arvutiga tuleb paigaldada draiverid. Need on saadaval teie levitajalt (soe soovitus). Internetist ise otsimine ei ole soovitatav, kuna vĂ”ib kuluda palju aega seadmete kokkupĂ”rke pĂ”hjuste leidmiseks.

Esitatud portide hulgas nÀeme jÀrgmisi:
Windows
Linux
Kirjeldus
SimTech HS-USB Diagnostics
USB Serial
Diagnostic Interface
SimTech HS-USB NMEA
USB Serial
GPS NMEA Interface
SimTech HS-USB AT Port
USB Serial
AT port Interface
SimTech HS-USB Modem
USB Serial
Modem port Interface
SimTech HS-USB Audio
USB Serial
USB Audio Interface
SimTech HS-USB WWAN Adapter
USB Net
NDIS wwan Interface
Android Composite ADB Interface
USB ADB
Androidi tÀiendava silumise port
Kuidas kindlasti olete mĂ€rganud, ei ole ekraanipildil USB ADB porti, seda pĂ”hjusel, et ADB port moodulis on vaikimisi suletud ja peab olema avatud, saates kĂ€su âAT+CUSBADB=1â mooduli AT-porti ja taaskĂ€ivitades selle (seda saab teha kĂ€suga âAT+CRESETâ).
Saame vajalikud seadistused seadmehalduris:

Oleme draiveritega lÔpetanud, liikume edasi ADB juurde.
ADB paigaldamine
LĂ€heme Android Developers ametlikule veebilehele, et mitte alla laadida mahukat Android Studiot; meile piisab kĂ€sureast, mille saab alla laadida lingilt âDownload SDK Platform-Tools for Windowsâ.

Lae alla ja pakkige saadud arhiiv vÀlja kettale C.
Keskkonnamuutujad
Cygwini paigaldamisel peab Cygwin/bin/ tee lisama arenduskeskkonna keskkonnamuutujatesse (Klassikaline juhtpaneel â SĂŒsteem â TĂ€iendavad sĂŒsteemi seadistused â TĂ€iendavad â Keskkonnamuutujad â SĂŒsteemi muutujad â Path â Muuda) nagu on nĂ€idatud alloleval ekraanipildil:

Sama moodi lisame ADB alla laetud ja vÀlja pakitud arhiivi tee kettale C.

KlÔpsame mitu korda OK ja taaskÀivitame arvuti.
PĂ€rast taaskĂ€ivitamist saab lihtsalt kontrollida, kas ADB töötab Ă”igesti, avades kĂ€surea (Win+R â cmd) ja tippides kĂ€su 'adb version'. Saame umbes sellise tulemuse:

Ăhendame mooduli PC-ga (kui see on Ă€ra ĂŒhendatud) ja kontrollime, kas ADB nĂ€eb seda kĂ€suga 'adb devices':

Valmis, sellega on ĂŒhenduse seadistamine mooduliga lĂ”petatud ja saame shelli kĂ€ivitada, et töötada mooduliga.

SDK vÀljatÔmbamine ja kompileerimine
Kui oleme pÀÀsenud shelli ja saame alustada kÀsureaga tööd mooduliga, proovime kompileerida meie esimest rakendust, et see laadida moodulisse.
Sellega vĂ”ivad paljudel raskusi tekkida! Kuna moodul töötab Linuxi operatsioonisĂŒsteemil, on parem kompileerida kood native keskkonnas â Linuxis â et vĂ€ltida kokkupĂ”rkeid Windowsi all kompileerimisel.
Eeltingimuseks on, et me ei peatuks detailides, kuidas, kui Linuxit ei ole ja seda pole soovi oma masinasse paigaldada, saab seadistada virtuaalse. Me kasutame VirtualBoxi, paigaldame Ubuntu versiooni 20.04 (aktuaarne versioon artikli kirjutamise hetkel) ja alustame juba seal koos kompilaatorite, SDK jms-ga.
Liigume Linuxi keskkonda ja vĂ€ljatĂ”mbame arhiivi, mille oleme saanud edasimĂŒĂŒjalt.
simcom@VirtualBox:~/Desktop/OpenLinux$ sudo tar -xzf MDM9x07_OL_2U_22_V1.12_191227.tar.gz Liigume sim_open_sdk katalooge ja lisame keskkonna:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ cd sim_open_sdk
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ source sim_crosscompile/sim-crosscompile-env-init PĂŒsime sama kaustas ja tĂ€idame jĂ€rgmised kĂ€sud seal.
Paigaldame raamatukogu libncurses5-dev, kui see pole veel paigaldatud:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get update && sudo apt-get install libncurses5-dev -yPython, kui see samuti pole paigaldatud:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install python -yja gcc:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install gccKompileerimine:
NĂŒĂŒd tuleb meil kompileerida mitu faili, tĂ€idame jĂ€rgemööda jĂ€rgmised kĂ€sud.
Kui kompileerimise ajal avaneb kernel-i seadistamise aken, valige lihtsalt Exit ja naaske konsooli, meil pole hetkel vaja kernelit konfigureerida.
TĂ€idame:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ makeKompileerime bootloader-i:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make abootKompileerime kernel-i:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_menuconfig
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel
Kompileerime juurefailisĂŒsteemi:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make rootfsLinuxi kasutajatele on asjakohane kompileerida mooduli draiver:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_moduleKompileerime demo:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make demoPĂ€rast seda ilmub katalooge sim_open_sdk/output mitmeid uusi faile:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ ls output/
appsboot.mbn boot.img demo_app helloworld system.img
Demos
Proovime laadida demonstreerimist meie moodulisse ja vaatame, mis vÀlja tuleb.
Laadimine
Kataloogis sim_open_sdk nĂ€eme faili demo_app. VĂ”tame selle ja viime C-draivi juurese, kus moodul on ĂŒhendatud. SeejĂ€rel kĂ€ivitame Windowsi kĂ€suviiba (Win+R -> cmd) ja sisestame:
C:>adb push C:demo_app /data/Konsol teavitab meid:
C:demo_app: 1 fail edastatud, 0 vahele jĂ€etud. 151.4 MB/s (838900 baiti 0.005s jooksul)See tĂ€hendab, et fail on moodulisse edukalt saadetud ja meil jÀÀb ainult selle kĂ€ivitamine. Ăra viivita.
TĂ€idame:
C:>adb shellLaadime ĂŒles laaditud faili Ă”igused:
/ # cdhmod 777 /data/demo_appJa kÀivitame:
/ # /data/demo_appSamas konsolis teavitab meid moodul jÀrgmist:
SDK_VER : SIM_SDK_VER_20191205
DEMO_VER: SIM_SDK_VER_20191205
Palun valige testimiseks valik allpool loetletud elementidest.
1. WIFI 2. VOICE CALL
3. DATA CALL 4. SMS
5. WDS(APN) 6. NAS
7. AT 8. OTA
9. TTS 10. GPIO
11. GPS 12. Bluetooth
13. TCP/UDP 14. Timer
15. ADC 16. I2C
17. UIM(SimCard) 18. DMS(IMEI,MEID)
19. UART 20. SPI
21. Version 22. Ethernet
23. FTP 24. SSL
25. HTTP(S) 26. FTP(S)
27. MQTT(S) 28. ALSA
29. DEV 30. AUDIO
31. JSON 32. LBS
99. EXIT
Valik >
Vaadake mooduli IMEI-d, sisestage 7 (kĂ€sku reĆŸiimi lĂŒlitamiseks) ja seejĂ€rel 5:
Palun valige testimiseks ĂŒks allolevatest valikutest.
1. WIFI 2. HĂĂLEKĂNE
3. DATAKĂNE 4. SMS
5. WDS(APN) 6. NAS
7. AT 8. OTA
9. TTS 10. GPIO
11. GPS 12. Bluetooth
13. TCP/UDP 14. Taimer
15. ADC 16. I2C
17. UIM(SimCard) 18. DMS(IMEI,MEID)
19. UART 20. SPI
21. Versioon 22. Ethernet
23. FTP 24. SSL
25. HTTP(S) 26. FTP(S)
27. MQTT(S) 28. ALSA
29. DEV 30. AUDIO
31. JSON 32. LBS
99. VĂ€lja
Valik > 7
Palun valige testimiseks ĂŒks allolevatest valikutest.
1. saada mooduli versioon 2. saada CSQ
3. saada CREG 4. saada ICCID
5. saada IMEI 6. saada CIMI
99. tagasi
Valik > 5
IMEI: 867584030090489
Palun valige testimiseks ĂŒks allolevatest valikutest.
1. saada mooduli versioon 2. saada CSQ
3. saada CREG 4. saada ICCID
5. saada IMEI 6. saada CIMI
99. tagasi
Valik >
Nii saame nÀha mooduli IMEI-d.
KokkuvÔtteks
Loodetavasti oleme suutnud anda ĂŒlevaate mooduli kasutamise alustamisest. JĂ€rgmistes artiklites vaatame lĂ€hemalt SIM7600E-H platvormi vĂ”imalusi ja seda, kuidas saab oma rakendust moodulis eemalt uuendada.
Kutsun esitlema kĂŒsimusi kommentaarides ning mĂ€rkima, millist mooduli vĂ”imaluste aspekti tuleks jĂ€rgnevates artiklites kajastada.
Allikas: habr.com





