OpenLinux SIM7600E-H moodulite osana

OpenLinux SIM7600E-H moodulite osana

Kohandatud rakenduse arendamise ja moodulisse laadimise mehhanism on saadaval nii Linuxi kui ka Windowsi operatsioonisüsteemides. Selles artiklis vaatleme üksikasjalikult, kuidas, kasutades esitatud SDK näiteid SIMComi juhtmevabad lahendused kohandatud rakenduse koostamine ja moodulisse laadimine.

Enne artikli kirjutamist palus üks mu tuttav, kes pole kaugeltki Linuxi jaoks arendatud, läheneda küsimusele, kuidas kirjeldada SIM7600E-H mooduli enda rakenduse arendamise protsessi võimalikult üksikasjalikult. Materjali esitluse ligipääsetavuse hindamise kriteeriumiks oli fraas "nii, et ma aru saaksin".

Kutsun teid juhtunuga tutvuma.

Artiklit täiendatakse ja ajakohastatakse regulaarselt

Eelmäng

Tavaliselt kasutatakse mobiilsidemooduleid ainult andmeedastuseks, häälkõnedeks, SMS-ide edastamiseks jms. Kõik see toimub välise juhtmikrokontrolleriga saadetavate AT-käskude kaudu. Kuid on moodulite kategooria, mis võimaldab teil käivitada väljast laaditud kohandatud koodi. Mõnel juhul vähendab see oluliselt seadme üldist eelarvet, võimaldades paigaldada plaadile lihtsama (ja sama eelarvega) mikrokontrolleri või sellest üldse loobuda. Androidi või Linuxi OS-i juhitavate LTE-moodulite ja nende võimsate ressursside tulekuga on võimalik lahendada kõiki populaarsetele protsessoritele kättesaadavaid ülesandeid. See artikkel räägib SIM7600E-H-st, mida juhib Linux OS. Vaatame, kuidas käivitatavat rakendust alla laadida ja käivitada.

Materjal põhineb paljuski dokumendil “SIM7600 Open Linux development quide”, kuid kasuks tulevad mõned täiendused ja ennekõike venekeelne versioon. Artikkel aitab neil, kes alles hakkavad moodulit omandama, mõista, kuidas demorakendust alla laadida ja pakkuda edasiseks tööks vajalikke oskusi.

Lühidalt sellest, kes on SIM7600E-H

SIM7600E-H on Qualcommi ARM Cortex-A7 1.3 GHz protsessorile ehitatud moodul, mille sees on Linuxi operatsioonisüsteem (tuum 3.18.20), mis on võimeline töötama Euroopa (sh Venemaa) sagedusribadega 2G/3G/LTE, toetades Cat. .4, mis pakub maksimaalset allalaadimiskiirust kuni 150 Mbps ja üleslaadimiskiirust kuni 50 Mbps. Rikkalikud välisseadmed, tööstuslik temperatuurivahemik ja sisseehitatud GPS/GLONASS-navigatsiooni olemasolu katavad kõik nõuded M2M-valdkonna kaasaegsele modulaarsele lahendusele.

Süsteemi ülevaade

Moodul SIM7600E-H põhineb Linuxi operatsioonisüsteemil (kernel 3.18.20). Failisüsteem on omakorda üles ehitatud päevikuga failisüsteemi UBIFS (Unsorted Block Image File System) alusel.

Selle failisüsteemi olulised funktsioonid on järgmised:

  • töötab partitsioonidega, võimaldab luua, kustutada või muuta nende suurust;
  • tagab salvestuse joondamise kogu meediumimahu ulatuses;
  • töötab halbade plokkidega;
  • minimeerib andmete kadumise tõenäosust elektrikatkestuse või muude rikete ajal;
  • palkide pidamine.

Kirjeldus võetud siit, on sellise failisüsteemi kohta ka üksikasjalikum kirjeldus.

Need. Seda tüüpi failisüsteem sobib ideaalselt mooduli raskete töötingimuste ja võimalike toiteprobleemide jaoks. Kuid see ei tähenda, et mooduli eeldatav töörežiim on ebastabiilsed toitetingimused; see näitab ainult seadme suuremat elujõulisust.

mälu

Mälualade jaotus on konstrueeritud järgmiselt:

OpenLinux SIM7600E-H moodulite osana

Esile tuleb tõsta kolm peamist valdkonda:

ubi0:rootfs - kirjutuskaitstud ja sisaldab Linuxi tuuma
ubi0:usrfs – kasutatakse peamiselt kasutajaprogrammide ja andmete salvestamiseks
ubi0: cahcefs – reserveeritud FOTA värskenduste jaoks. Kui saadaolevast ruumist ei piisa värskenduse allalaadimiseks, kustutab süsteem kasutamata failid ja vabastab seega ruumi. Kuid turvakaalutlustel ei tohiks te oma faile sinna paigutada.

Kõik kolm jaotist on jaotatud järgmiselt:

Failisüsteem
SUURUS
Kasutatud
Mudelipõhine
Kasuta%
Paigaldatud peale

ubi0:rootfs
40.7M
36.2M
4.4M
89%
/

ubi0:usrfs
10.5M
360K
10.1M
3%
/ andmed

ubi0: vahemälu
50.3M
20K
47.7M
0%
/ vahemälu

Saadaval funktsionaalsus

Nagu eespool mainitud, on moodul üles ehitatud Qualcommi Cortex A7 kiibistikule. Oleks vale jätta kasutajaprogrammi töötlemiseks ja seadme põhiprotsessori mahalaadimiseks kasutamata nii suure jõudlusega tuuma, laadides mõne programmi osa moodulisse.

Kasutajaprogrammi jaoks on meile saadaval järgmised välisseadmete töörežiimid:

PIN-kood
Nimi
Sys GPIO nr.
Vaikimisi toiming
Funktsioon1
Funktsioon2
Tõmmata
Äratuse katkestus

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_ET
GPIO
MIFI_POWER_ET
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
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õus, nimekiri on muljetavaldav ja pange tähele: osa välisseadmetest kasutatakse mooduli kasutamiseks ruuterina. Need. Sellise mooduli põhjal saate teha väikese ruuteri, mis levitab Internetti Wi-Fi kaudu. Muide, on olemas valmislahendus nimega SIM7600E-H-MIFI ja see on miniPCIE kaart, millel on joodetud SIM7600E-H moodul ja mitu antenni tihvti, üks neist on Wi-Fi antenn. See on aga eraldi artikli teema.

Kolmapäev (mitte nädalapäev)

SIMComi juhtmevabad lahendused annab arendajatele võimaluse valida Linuxi või Windowsi jaoks kõige tuttavam arenduskeskkond. Kui me räägime ühest mooduli käivitatavast rakendusest, siis on parem valida Windows, see on kiirem ja lihtsam. Kui oodata on keerukat rakendusarhitektuuri ja hilisemaid uuendusi, on parem kasutada Linuxit. Samuti vajame Linuxi käivitatavate failide kompileerimiseks, et neid hiljem moodulisse laadida, kompileerimiseks piisab virtuaalmasinast.

See, mida vajate, pole tasuta allalaadimiseks saadaval – SDK, mida saate oma edasimüüjalt küsida.

Utiliitide installimine mooduliga töötamiseks

Edaspidi töötame Windowsi all enamiku kasutajate jaoks kõige tuttavama OS-ina.

Peame installima vajaliku tarkvara mõne lihtsa sammuga, et hiljem mooduliga töötada:

  1. GNU / Linux
  2. Cygwin
  3. Juhid
  4. ADB

GNU/Linuxi installimine

Rakenduse koostamiseks võite kasutada mis tahes ARM-Linuxiga ühilduvat kompilaatorit. Kasutame SourceryCodeBenchLiteARM GNU/Linuxtranslaterit, mis on allalaadimiseks saadaval aadressil link.

Tagamaks, et kõik komponendid on õigesti installitud, jätan installiprotsessist mõned ekraanipildid. Põhimõtteliselt pole paigalduses midagi keerulist.

Tagamaks, et kõik komponendid on õigesti installitud, jätan installiprotsessist mõned ekraanipildid. Põhimõtteliselt pole paigalduses midagi keerulist.

  1. Aktsepteerime litsentsilepingut
    OpenLinux SIM7600E-H moodulite osana
  2. Määrake installikaust
    OpenLinux SIM7600E-H moodulite osana
  3. Jätame vajalikud komponendid muutmata
    OpenLinux SIM7600E-H moodulite osana
  4. Jätke see nii nagu on
    OpenLinux SIM7600E-H moodulite osana
  5. Mitu korda "Järgmine", "Install" ja põhimõtteliselt kõik
    OpenLinux SIM7600E-H moodulite osana

Cygwini installimine

Lisaks vajate arendamiseks kaasasolevast komplektist raamatukogude ja utiliitide komplekti Cygwin. Siin on kõik lihtne, Cygwini praeguse versiooni saab projekti ametlikult veebisaidilt tasuta alla laadida, selle kirjutamise ajal oli saadaval versioon 3.1.5, mida me materjali ettevalmistamisel kasutasime.

Cygwini installimisel pole midagi keerulist, ainus asi, mida peate valima, on peegel, millest installija laadib alla vajalikud failid, valib need ja installib selle, samuti utiliitide ja teekide komplekti, jättes alles kõik saadaolevad teegid ja kommunaalteenused valitud.

draiverite

Kui moodul on arvutiga ühendatud, peate installima draiverid. Neid saab küsida oma edasimüüjalt (soovitatav). Ma ei soovita ise Internetist otsida, sest... Seadme konflikti põhjustanud põhjuse leidmine võib võtta palju aega.

OpenLinux SIM7600E-H moodulite osana

Valitud portide hulgas näeme järgmist:

Windows
Linux
Kirjeldus

SimTechi HS-USB diagnostika
USB-jada
Diagnostiline liides

SimTech HS-USB NMEA
USB-jada
GPS NMEA liides

SimTechi HS-USB AT-port
USB-jada
AT-pordi liides

SimTech HS-USB modem
USB-jada
Modemi pordi liides

SimTech HS-USB heli
USB-jada
USB audio liides

SimTechi HS-USB WWAN-adapter
USB-võrk
NDIS WWAN liides

Android Composite ADB liides
USB ADB
Android lisab silumispordi

Nagu ilmselt märkasite, pole ekraanipildil olevate portide hulgas USB ADB-d, kuna mooduli ADB-port on vaikimisi suletud ja peate selle lubama, saates AT-le käsu 'AT+CUSBADB=1'. mooduli porti ja taaskäivitage see (seda saab teha käsuga 'AT+CRESET').

Selle tulemusel saame seadmehalduris soovitud liidese:

OpenLinux SIM7600E-H moodulite osana

Oleme draiveritega valmis, liigume edasi ADB juurde.

ADB installimine

Minge ametlikule Androidi arendaja veebisaidile link. Me ei laadi alla mahukat Android Studiot; vajame lihtsalt käsurida, mis on allalaadimiseks saadaval lingi „Windowsi jaoks mõeldud SDK platvormi tööriistade allalaadimine” kaudu.

OpenLinux SIM7600E-H moodulite osana

Laadige saadud arhiiv alla ja pakkige lahti draivi C juure.

Keskkonnamuutujad

Pärast Cygwini installimist peate lisama arenduskeskkonna muutujatele tee Cygwin/bin/ (Klassikaline juhtpaneel → Süsteem → Süsteemi täpsemad sätted → Täpsemad → Keskkonnamuutujad → Süsteemimuutujad → Tee → Redigeerimine), nagu on näidatud alloleval ekraanipildil:

OpenLinux SIM7600E-H moodulite osana

Samamoodi lisage allalaaditud ja lahtipakkitud ADB arhiivi tee draivi C juure.

OpenLinux SIM7600E-H moodulite osana

Klõpsake mitu korda OK ja taaskäivitage arvuti.

Pärast taaskäivitamist saate hõlpsalt kontrollida, kas ADB töötab õigesti, avades käsurea (Win+R → cmd) ja kirjutades käsu 'adb version'. Saame midagi sellist:

OpenLinux SIM7600E-H moodulite osana

Ühendame mooduli arvutiga (kui juhtus, et see katkes) ja kontrollime, kas ADB näeb seda käsuga 'adb devices':

OpenLinux SIM7600E-H moodulite osana

Valmis, see lõpetab ühenduse konfigureerimise mooduliga ja saame käivitada kesta, et mooduliga töötada.

OpenLinux SIM7600E-H moodulite osana

SDK lahtipakkimine ja kompileerimine

Nüüd, kui meil on juurdepääs kestale ja saame alustada tööd mooduli käsureaga, proovime kompileerida oma esimese rakenduse, mida moodulisse laadida.

Paljudel inimestel võib sellega raskusi olla! Sest Moodul töötab Linuxi operatsioonisüsteemis, Windowsi all koodi koostamisel kokkupõrgete vältimiseks on kõige parem kompileerida algkeskkonnas - Linuxis.

Me ei peatu üksikasjalikult sellel, kuidas saate Linuxi puudumisel ja soovi korral seda oma arvutisse installida virtuaalsesse masinasse. Kasutame VirtualBoxi, installime Ubuntu versiooni 20.04 (praegune versioon kirjutamise ajal) ja selle all hakkame töötama kompilaatorite, SDK-de jne.

Läheme Linuxi keskkonda ja pakime turustajalt saadud arhiivi lahti.

simcom@VirtualBox:~/Desktop/OpenLinux$ sudo tar -xzf MDM9x07_OL_2U_22_V1.12_191227.tar.gz 

Minge sim_open_sdk kataloogi ja lisage keskkond:

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 täidame selles viibides järgnevaid käske.
Installige libncurses5-dev teek, kui seda pole installitud:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get update && sudo apt-get install libncurses5-dev -y

Python, kui ka seda pole installitud:

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

Koostamine:

Nüüd peame kompileerima mitu faili, käivitame järjestikku järgmised käsud.

Kui kerneli seadistusaken ilmub kompileerimise ajal, valige lihtsalt Exit ja naaske konsooli; me ei pea tuuma kohe konfigureerima.

Me teeme:

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

Alglaaduri kompileerimine:

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

Kerneli kompileerimine:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_menuconfig
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel

Kompileerige juurfailisüsteem:

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

Linuxi kasutajate jaoks on asjakohane kompileerida mooduli draiver:

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

Koostame demo:

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

Pärast seda kuvatakse sim_open_sdk/output kataloogis mitu uut faili:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ ls output/
appsboot.mbn  boot.img  demo_app  helloworld  system.img

Demo

Proovime demo oma moodulisse laadida ja vaatame, mis sellest välja tuleb.

Alla laadima

Kataloogis sim_open_sdk näeme faili demo_app. Võtame selle ja edastame selle arvuti, millega moodul on ühendatud, draivi C juurele. Seejärel käivitage Windowsi käsurida (Win + R -> cmd) ja sisestage:

C:>adb push C:demo_app /data/

Konsool ütleb meile:

C:demo_app: 1 file pushed, 0 skipped. 151.4 MB/s (838900 bytes in 0.005s)

See tähendab, et fail saadeti edukalt moodulisse ja meil jääb vaid see käivitada. Ärme kõhkle.

Me teeme:

C:>adb shell

Laiendame allalaaditud faili õigusi:

/ # cdhmod 777 /data/demo_app

Ja me jookseme:

/ # /data/demo_app

Samas konsoolis ütleb moodul meile järgmist:

SDK_VER : SIM_SDK_VER_20191205
DEMO_VER: SIM_SDK_VER_20191205

Please select an option to test from the items listed below.

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

Vaatame mooduli IMEI-d, sisestage 7 (lülituge käsurežiimi) ja seejärel sisestage 5:

Please select an option to test from the items listed below.

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

Please select an option to test from the items listed below.

1. get Module Version         2. get CSQ
3. get CREG                   4. get ICCID
5. get IMEI                   6. get CIMI
99. back
Option > 5
IMEI: 867584030090489

Please select an option to test from the items listed below.

1. get Module Version         2. get CSQ
3. get CREG                   4. get ICCID
5. get IMEI                   6. get CIMI
99. back
Option >

Nii näeme mooduli IMEI-d.

Kokkuvõtteks

Loodan, et saime üldise ettekujutuse, kuidas mooduliga alustada. Järgmistes artiklites vaatleme lähemalt SIM7600E-H platvormi pakutavaid võimalusi ja ka seda, kuidas saate moodulis oma rakendust eemalt värskendada.

Kutsun teid üles kommentaarides küsimusi esitama ja osutama ka sellele, millist mooduli võimaluste aspekti tuleks järgmistes artiklites kajastada.

Allikas: www.habr.com

Lisa kommentaar