
Kasutaja rakenduse arendamise ja selle moodulisse laadimise mehhanism on saadaval nii Linuxi kui ka Windowsi operatsioonisĂŒsteemides. KĂ€esolevas artiklis vaatleme pĂ”hjalikult, kuidas kasutada antud SDK nĂ€iteid. kasutada ja laadida kasutajarakendust moodulisse.
Enne artikli kirjutamist palus ĂŒks tuttav, kes ei olnud Linuxi arendamisega kokku puutunud, kĂ€sitleda seda teemat vĂ”imalikult ĂŒksikasjalikult, et "ma saaksin aru". See oli peamine kriteerium materjali esitlemisel.
Kutsun teid tutvuma, mis vÀlja tuli.
Artikkel tÀiendatakse ja uuendatakse regulaarselt.
Eelajak
Tavaliselt kasutatakse mobiilimooduleid ainult andmete edastamiseks, hÀÀlkĂ”nede jaoks, SMSide saatmiseks ja sarnaseks. KĂ”ik see toimub AAT-kĂ€skude kaudu, mis saadetakse vĂ€liselt juhtivalt mikrokontrollerilt. Kuid on mooduleid, mis vĂ”imaldavad kĂ€itada vĂ€liselt laaditavat kasutajakoode. MĂ”nel juhul vĂ€hendab see seadme ĂŒldkulusid, vĂ”imaldades paigaldada lihtsama (ja odavama) mikrokontrolleri vĂ”i loobuda sellest tĂ€ielikult. LTE moodulite, mida juhib Android vĂ”i Linux, ja nende vĂ”imsate ressursside ilminguga saab lahendada kĂ”iki ĂŒlesandeid, mis on kergesti kĂ€tte saadavad tuntud protsessoritele. KĂ€esolevas artiklis rÀÀgime Linuxi juhitavast SIM7600E-H-st. Vaatame, kuidas laadida ja kĂ€ivitada tĂ€idetavat rakendust.
Materjal pÔhineb suuresti dokumendil 'SIM7600 Open Linux development guide', kuid mÔned tÀiendid ning eelkÔige venekeelne versioon on kasulikud. Artikkel aitab neil, kes alles alustavad mooduli uurimist, jÔuda vaatamise demonstreerimissovetis ning omandada vajalikke oskusi edasiseks tööks.
LĂŒhidalt SIM7600E-H-st
SIM7600E-H on Qualcommi ARM Cortex-A7 1.3GHz protsessorile pĂ”hinev moodul, millel on Linuxi operatsioonisĂŒsteem (kernel 3.18.20) ning mis toetab Euroopa (sealhulgas Venemaa) 2G/3G/LTE sagedusvahemikke. Toetab Cat.4, pakkudes maksimaalset allalaadimiskiirust kuni 150 Mbps ja ĂŒleslaadimiskiirust kuni 50 Mbps. Rikkalikud liidesed, tööstuslik temperatuurivahemik ja integreeritud GPS/GLONASS navigatsioon rahuldavad kĂ”ik kaasaegse modulaarse lahenduse nĂ”uded M2M valdkonnas.
SĂŒsteemi ĂŒlevaade
SIM7600E-H moodul pĂ”hineb Linuxi operatsioonisĂŒsteemil (kernel 3.18.20). FailisĂŒsteem pĂ”hineb ajakirjendatud failisĂŒsteemil UBIFS (Unsorted Block Image File System).
Selle failisĂŒsteemi olulised omadused on:
- töötamine osadega, vÔimaldab luua, kustutada vÔi muuta nende suurust;
- tagab kirjutamise tasakaalu kogu mÀlumeedia mahus;
- töötamine halva plokkidega;
- minimeerib andmekao tÔenÀosust voolu katkestamise vÔi muude tÔrgete korral;
- ajakirjade pidamine.
Kirjeldus on pĂ€rit , seal on ka pĂ”hjalikumalt juttu sellisest failisĂŒsteemist.
See tĂ€hendab, et see failisĂŒsteemi tĂŒĂŒp sobib ideaalselt mooduli töötingimuste karmidele nĂ”udmistele ja vĂ”imalikele toiteprobleemidele. Kuid see ei tĂ€henda, et ebastabiilne toiteallikas oleks mooduli töötamise oodatud reĆŸiim, see ĂŒtleb lihtsalt seadme suurema elujĂ”udluse kohta.
MĂ€lu
MÀlupiirkondade jaotus on jÀrgmine:

Tuleb vÀlja tuua kolm peamist ala:
ubi0:rootfs â on ainult lugemiseks ja sisaldab Linuxi kernelit
ubi0:usrfs â kasutatakse peamiselt kasutajaprogrammi ja andmete salvestamiseks
ubi0:cahcefs â reserveeritud FOTA vĂ€rskendusteks. Kui laadimiseks pole piisavalt ruumi â sĂŒsteem kustutab kasutamata failid ja vabastab ruumi. Kuid turvakaalutlustel ei tohiks seal oma faile hoida.
KÔik kolm osa on jaotatud jÀrgmiselt:
Filesystem
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 eelnevalt mainitud, pÔhineb moodul Qualcommi Cortex A7 kiibistikul. Oleks vale mitte pakkuda sellist kÔrge jÔudlusega tuuma kliendiprogrammi töötlemiseks ja seadme peamise protsessori koormuse vÀhendamiseks, kandes moodulile osa programmikoodist.
Kliendiprogrammi jaoks on meil saadaval jĂ€rgmised perifeeria tööreĆŸiimid:
Pin No.
Nimi
Sys GPIO No.
Vaikimisi toiming
Func1
Func2
Pull
Wakeup interrupt
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-Card
â
â
B-PD
â
22
SD_DATA0
â
SD-Card
â
â
B-PD
â
23
SD_DATA1
â
SD-Card
â
â
B-PD
â
24
SD_DATA2
â
SD-Card
â
â
B-PD
â
25
SD_DATA3
â
SD-Card
â
â
B-PD
â
26
SD_CLK
â
SD-Card
â
â
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
STATUS
GPIO_52
Oleku
GPIO
Oleku
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
â
Kuna loetelu on muljetavaldav, pane tĂ€hele, et osa perifeeriast kasutatakse mooduli töö tegemiseks ruuterina. TeisisĂ”nu, sellise mooduli baasil on vĂ”imalik luua vĂ€ike ruuter, mis jagab internetiĂŒhendust Wi-Fi kaudu. Ăhtlasi on olemas juba valmis lahendus, mida nimetatakse SIM7600E-H-MIFI ja mis koosneb miniPCIE kaartidest, millele on paigaldatud SIM7600E-H moodul ja mitmed antenni vĂ€ljundid, millest ĂŒks on Wi-Fi antenn. Siiski, see on juba teema eraldi materjaliks.
Keskkond (mitte nÀdalapÀev)
annab arendajatele vĂ”imaluse valida endale kĂ”ige tuttavama arendusmuhkonna Linuxi vĂ”i Windowsi jaoks. Kui tegemist on ĂŒhe kĂ€itatava rakendusega moodulil, on parem valida Windows, kuna see on kiirem ja lihtsam. Kui on planeeritud keeruline rakenduse arhitektuur ja hilisemad uuendused, on parem kasutada Linuxi. Samuti vajame Linuxit kĂ€itatavate failide kompileerimiseks moodulisse laadimiseks; kompileerimiseks on tĂ€iesti piisav virtuaalne masin.
Selleks, mida teil vajatakse ja mis ei ole vabalt saadaval, on SDK, mida saab kĂŒsida oma edasimĂŒĂŒjalt.
Tööriistade installimine mooduliga töötamiseks
Siin ja edaspidi töötame Windowsi all, kuna see on enamikule kasutajatest tuttav operatsioonisĂŒsteem.
Meie on vaja paari lihtsa sammu jooksul installida vajalik tarkvara, et Ôppida mooduliga töötama:
- GNU/Linux
- Cygwin
- Draiverid
- ADB
GNU/Linux installimine
Rakenduse koostamiseks saab kasutada mis tahes ARM-Linuxiga ĂŒhilduvat kompilaatorit. Me kasutame SourceryCodeBenchLiteARM GNU/Linux tĂ”lkijat, mille saab alla laadida aadressilt .
Kuna kĂ”ik komponendid peavad olema Ă”igesti installitud, jĂ€tan mĂ”ned ekraanipildid installiprotsessist. Ăldiselt pole installimises midagi keerulist.
Kuna kĂ”ik komponendid peavad olema Ă”igesti installitud, jĂ€tan mĂ”ned ekraanipildid installiprotsessist. Ăldiselt pole installimises midagi keerulist.
- VÔtame vastu litsentsilepingu

- NĂ€idake installikausta

- Vajalikke komponente jÀtame muutmata

- JĂ€tame nii nagu on

- MĂ”ned korda âNextâ, âInstallâ ja tegelikult kĂ”ik

Cygwini installimine
Edasi vajatakse arendamiseks komplekti raamatukogusid ja utiliite, mille pakub . Siin on kÔik lihtne, Cygwini viimase versiooni saab tasuta alla laadida projekti ametlikult veebilehelt, artikli kirjutamise ajal oli saadaval versioon 3.1.5, mida me kasutasime materjali ettevalmistamisel.
Cygwini installimises pole midagi keerulist, ainus, mida tuleb valida â peegel, millelt installiprogramm laeb vajalikud failid, valige ĂŒkskĂ”ik milline ja installige, samuti komplekt utiliite ja raamatukogusid, jĂ€tame kĂ”ik saadaval olevad raamatukogud ja utiliidid valituks.
Juhtarvutite installimine
PĂ€rast seda, kui moodul on ĂŒhendatud PC-ga, tuleb installida draiverid. Need saavad nĂ”uda oma jaoturilt (soovitatav). Ei soovita neid ise internetist otsida, kuna vĂ”ib kuluda palju aega seadmete konfliktide leolvasse.

Valitud portide seas 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
Android add debug port
Nagu kindlasti olete mĂ€rganud, ei ole ekraanipildil USB ADB porti, kuna ADB port moodulis on vaikimisi suletud ja see tuleb aktiveerida, saates kĂ€su âAT+CUSBADB=1â mooduli AT-porti ja taaskĂ€ivitama selle (seda saab teha kĂ€suga âAT+CRESETâ).
KokkuvÔttes saame seadmehalduris vajaliku liidese:

Draiveritega oleme lÔpetanud, liigume ADB juurde.
ADB installimine
KĂŒlastage Android arendajate ametlikku veebilehte aadressil . Ei hakka alla laadima mahukat Android Studio't, piisab meile kĂ€sureast, mis on saadaval allalaadimiseks lingilt âLaadi alla SDK Platform-Tools for Windowsâ.

Laadi alla ja lahti pakkida saadud arhiiv ketta C juurese.
Keskkonnamuutujad
Cygwin'i installimise jĂ€rel tuleb lisada tee Cygwin/bin/ arenduskeskkonna keskkonnamuutujatesse (Klassikaline OhjelmĂ€ntnöpan -> SĂŒsteem -> TĂ€iendavad sĂŒsteemseaded -> TĂ€iendav -> Keskkonnamuutujad -> SĂŒsteemi muutujad -> Path -> Muuda), nagu on nĂ€idatud alloleval ekraanipildil:

Samuti lisame tee alla laaditud ja vÀlja pakitud ADB arhiivi juurdiskis C.

Klikkige korduvalt OK ja taaskÀivitage arvuti.
PÀrast taaskÀivitamist saab hÔlpsasti kontrollida, kas ADB töötab Ôigesti, avades kÀsuviiba (Win+R -> cmd) ja tippides kÀsu 'adb version'. Saame umbkaudu sellise tulemuse:

Ăhendame mooduli PC-ga (kui see juhtub, et see on vĂ€lja lĂŒlitatud) ja kontrollime, kas ADB nĂ€eb seda kĂ€suga 'adb devices':

Valmis, nĂŒĂŒd on mooduli ĂŒhendamise seadistamine lĂ”petatud ja me saame kĂ€ivitada shelli, et töötada mooduliga.

SDK vÀljavÔtmine ja kompileerimine
PÀrast seda, kui oleme saanud juurdepÀÀsu shellile ja saame alustada mooduliga kÀsuviiba tööd, proovime kompileerida meie esimest rakendust, mille saame laadida moodulisse.
Sellega vĂ”ivad paljudel tekkida raskusi! Kuna moodul töötab Linuxi operatsioonisĂŒsteemis, et vĂ€ltida kokkupĂ”rkeid Windowsi all koodi kompileerimisel, on parem kompileerida natiivsetes keskkondades â Linuxis.
Me ei jÀÀ detailidesse, kuidas Linuxi puudumisel ja soovi selle oma masinale installimiseks, saab selle installida virtuaalsesse. Kasutame VirtualBoxi, installime Ubuntu versiooni 20.04 (lugu kirjutamise hetkel aktuaalne versioon) ja alustame selle all tööd kompilaatorite, SDK-de jne. kanssa.
Liigume Linuxi keskkonda ja vÀljavÔtame jaotajalt saadud arhiivi.
simcom@VirtualBox:~/Desktop/OpenLinux$ sudo tar -xzf MDM9x07_OL_2U_22_V1.12_191227.tar.gz Liigume kausta sim_open_sdk 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 JÀÀme samasse kausta ja edasised kÀsud tÀidame seal.
Installime raamatukogu libncurses5-dev, kui see ei ole veel installitud:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get update && sudo apt-get install libncurses5-dev -yPython, kui see samuti ei ole installitud:
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, jĂ€rjestikku tĂ€idame jĂ€rgmised kĂ€sud.
Kui kompileerimise ajal ilmub tuumaseadmise aken, valige lihtsalt Exit ja naaske konsooli, meil pole praegu tuuma konfigureerimise vajadust.
TĂ€idame:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ makeKompileerime bootloaderi:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make abootKompileerime tuuma:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_menuconfig
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel
Kompileerime juurfailisĂŒ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 demot:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make demoPĂ€rast seda ilmuvad kaustas sim_open_sdk/output mitmed uued failid:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ ls output/
appsboot.mbn boot.img demo_app helloworld system.img
Demo
Proovime laadida demonstraatsiooni meie moodulisse ja vaatame, mis juhtub.
Laadimine
Kaustas sim_open_sdk nĂ€eme faili demo_app. Viime selle C: juure ja ĂŒhendame PC, kuhu moodul on ĂŒhendatud. SeejĂ€rel kĂ€ivitame Windowsi kĂ€suviiba (Win+R -> cmd) ja sisestame:
C:>adb push C:demo_app /data/Konsool teatab meile:
C:demo_app: 1 file pushed, 0 skipped. 151.4 MB/s (838900 bytes in 0.005s)See tĂ€hendab, et fail saadeti moodulile edukalt ja meil jÀÀb vaid see kĂ€ivitada. Ărme viivita.
TĂ€idame:
C:>adb shellLaadime alla faili Ôigused:
/ # cdhmod 777 /data/demo_appJa kÀivitame:
/ # /data/demo_appSamas konsoolis teatab moodul meile jÀrgmist:
SDK_VER : SIM_SDK_VER_20191205
DEMO_VER: SIM_SDK_VER_20191205
Palun valige testimiseks valik allpool olevate punktide hulgast.
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, sisestame 7 (komandireĆŸiimi sisenemine) ja seejĂ€rel 5:
Palun vali testimiseks valik allolevatest toodud valikutest.
1. WIFI 2. KĂNE
3. AndmekÔ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Ă€lju
Valik > 7
Palun vali testimiseks valik allolevatest toodud 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 vali testimiseks valik allolevatest toodud valikutest.
1. saada mooduli versioon 2. saada CSQ
3. saada CREG 4. saada ICCID
5. saada IMEI 6. saada CIMI
99. tagasi
Valik >
Nii nÀeme mooduli IMEI-d.
KokkuvÔtteks
Loodan, et suutsime anda ĂŒldise ĂŒlevaate, kuidas mooduliga alustada. JĂ€rgmistes artiklites vaatleme lĂ€hemalt SIM7600E-H platvormi pakutavaid vĂ”imalusi ja seda, kuidas saab kaugelt oma rakendust moodulis uuendada.
KĂŒsin, et esitage kĂŒsimusi kommentaarides ning mĂ€rkige, millist aspekti mooduli vĂ”imalustest tuleks kajastada jĂ€rgmistes artiklites.
Allikas: habr.com





