OpenLinux SIM7600E-H moodulite koosseisus

OpenLinux SIM7600E-H moodulite koosseisus

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. SIMCom Wireless Solutions 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 siit, 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:

OpenLinux SIM7600E-H moodulite koosseisus

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)

SIMCom Wireless Solutions 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:

  1. GNU/Linux
  2. Cygwin
  3. Draiverid
  4. 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 lingi kaudu.

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.

  1. Kinnita litsentsileping
    OpenLinux SIM7600E-H moodulite koosseisus
  2. MÀÀrake installatsioonikaust
    OpenLinux SIM7600E-H moodulite koosseisus
  3. Vajalikud komponendid jÀtame muutmata
    OpenLinux SIM7600E-H moodulite koosseisus
  4. JĂ€tame nii nagu on
    OpenLinux SIM7600E-H moodulite koosseisus
  5. MĂ”ned “Next”, “Install” ja pĂ”himĂ”tteliselt ongi kĂ”ik
    OpenLinux SIM7600E-H moodulite koosseisus

Cygwini installimine

SeejÀrel on arendamiseks vajalik raamatukogude ja utiliitide komplekt, mida pakub Cygwin. 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.

OpenLinux SIM7600E-H moodulite koosseisus

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:

OpenLinux SIM7600E-H moodulite koosseisus

Oleme draiveritega lÔpetanud, liikume edasi ADB juurde.

ADB paigaldamine

LĂ€heme Android Developers ametlikule veebilehele, lingi kauduet mitte alla laadida mahukat Android Studiot; meile piisab kĂ€sureast, mille saab alla laadida lingilt „Download SDK Platform-Tools for Windows”.

OpenLinux SIM7600E-H moodulite koosseisus

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:

OpenLinux SIM7600E-H moodulite koosseisus

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

OpenLinux SIM7600E-H moodulite koosseisus

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:

OpenLinux SIM7600E-H moodulite koosseisus

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

OpenLinux SIM7600E-H moodulite koosseisus

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

OpenLinux SIM7600E-H moodulite koosseisus

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 -y

Python, kui see samuti pole paigaldatud:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install python -y

ja gcc:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install gcc

Kompileerimine:

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$ make

Kompileerime bootloader-i:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make aboot

Kompileerime 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 rootfs

Linuxi kasutajatele on asjakohane kompileerida mooduli draiver:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_module

Kompileerime demo:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make demo

PĂ€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 shell

Laadime ĂŒles laaditud faili Ă”igused:

/ # cdhmod 777 /data/demo_app

Ja kÀivitame:

/ # /data/demo_app

Samas 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

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster