
Mekanizmi i zhvillimit të një aplikacioni të personalizuar dhe ngarkimit të tij në modul është i disponueshëm si për sistemin operativ Linux, ashtu edhe për Windows. Në këtë artikull do të shqyrtojmë në detaje se si të përdorim shembujt nga SDK e siguruar. të kompilohet dhe ngarkohet aplikacioni i personalizuar në modul.
Para se të shkruaja artikullin, një mik im, i cili është i largët nga zhvillimi nën Linux, më kërkoi të afrohem maksimalisht në përshkrimin e procesit të zhvillimit të aplikacionit tim të vetë zhvilluar për modulin SIM7600E-H. Kritere që u përdor për të vlerësuar qartësinë e materialeve ishte fraza "në mënyrë që unë të kuptoja".
Ju ftoj të njiheni me atë që u arrit.
Artikulli përditësohet dhe plotësohet rregullisht.
Preludë
Zakonisht, modulët celularë përdoren vetëm për transmetimin e të dhënave, thirrjet telefonike, dërgimin e SMS dhe të ngjashme. Të gjitha këto bëhen përmes komandave AT, që dërgohen nga një mikrokontroler i jashtëm. Por ka një kategori modulësh që lejojnë ekzekutimin e kodit të personalizuar, të ngarkuar nga jashtë. Në disa raste, kjo e ul ndjeshëm buxhetin e përgjithshëm të pajisjes duke lejuar që të instalohet një mikrokontroler më i thjeshtë (dhe gjithashtu më ekonomik) ose të hiqet plotësisht. Me shfaqjen e modulëve LTE, të menaxhuar nga sistemi operativ Android ose Linux dhe burimeve të tyre të fuqishme, mund të zgjidhen çdo detyrë që janë të aksesueshme nga procesorët popullorë. Në këtë artikull do të flasim për SIM7600E-H, i menaxhuar nga sistemi operativ Linux. Do të shqyrtojmë se si të ngarkojmë dhe të ekzekutojmë një aplikacion të ekzekutueshëm.
Në shumë aspekte, materiali bazohet në dokumentin "SIM7600 Open Linux development guide", por disa shtesa dhe veçanërisht versioni në gjuhën ruse do të jenë të dobishme. Artikulli do të ndihmojë ata që sapo kanë filluar të mësojnë për modulin të arrijnë ngarkimin e aplikacionit demonstrues dhe do të ofrojë njohuritë e nevojshme për punën e ardhshme.
Shkurtimisht për atë se kush është SIM7600E-H
SIM7600E-H është një modul i ndërtuar mbi procesorin ARM Cortex-A7 1.3GHz nga Qualcomm, me sistemin operativ Linux (kernel 3.18.20) brenda, i cili mund të punojë me frekuencat evropiane (përfshirë ato ruse) të 2G/3G/LTE, duke mb supportuar Cat.4, duke siguruar një shpejtësi maksimale shkarkimi deri në 150Mbps dhe ngarkimi deri në 50Mbps. Pjesët e pasura periferike, temperatura industriale dhe prania e navigimit të integruar GPS/GLONASS plotësojnë çdo kërkesë për një zgjidhje modulare moderne në temën M2M.
Përmbledhja e sistemit
Moduli SIM7600E-H bazohet në sistemin operativ Linux (kernel 3.18.20). Nga ana tjetër, sistemi i skedarëve është ndërtuar mbi sistemin e skedarëve të regjistruar UBIFS (Unsorted Block Image File System).
Disa nga veçoritë kryesore të këtij sistemi skedarësh janë:
- punon me partitions, lejon krijimin, fshirjen ose ndryshimin e madhësisë së tyre;
- siguron përputhjen e shkrimeve në të gjithë volumet e medias;
- punon me blloqet e këqija;
- minimizon mundësinë e humbjes së të dhënave gjatë ndjeshëm në energji ose dështimeve të tjera;
- mbajtjen e regjistrave.
Përshkrimi është marrë , atje gjithashtu flitet më në detaje për këtë sistem skedarësh.
Pra, ky tip i sistemit skedarësh është ideal për kushte të rënda pune të modulit dhe për problemet e mundshme me energjinë. Por kjo nuk do të thotë se kushtet e paqëndrueshme të energjisë do të jenë një regjim i pritshëm për funksionimin e modulit, kjo tregon vetëm për një jetëgjatësi më të madhe të pajisjes.
Memoria
Struktura e shpërndarjes së memorjes është ndërtuar si më poshtë:

Duhet të kemi parasysh tre fusha kryesore:
ubi0:rootfs â e aksesueshme vetĂ«m pĂ«r lexim dhe pĂ«rmban kernelin e vetĂ« Linux
ubi0:usrfs â pĂ«rdoret kryesisht pĂ«r programin e pĂ«rdoruesit dhe ruajtjen e tĂ« dhĂ«nave
ubi0:cachefs â Ă«shtĂ« rezervuar pĂ«r pĂ«rditĂ«simet FOTA. NĂ«se hapĂ«sira e disponueshme nuk do tĂ« jetĂ« e mjaftueshme pĂ«r tĂ« shkarkuar pĂ«rditĂ«simin â sistemi do tĂ« fshijĂ« skedarĂ«t qĂ« nuk pĂ«rdoren dhe kĂ«shtu do tĂ« lirojĂ« hapĂ«sirĂ«. Por pĂ«r arsye sigurie â nuk duhet tĂ« vendosni skedarĂ«t tuaj atje.
Të tre partitë janë shpërndarë si më poshtë:
Sistemi i skedarëve
Size
Përdorur
Disponueshëm
Përdorim%
Montuar në
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
Funksionaliteti i disponueshëm
Si e përmendëm më lart, moduli është ndërtuar mbi çipin Cortex A7 nga Qualcomm. Do të ishte e pavend të mos ofrohet një bërthamë kaq e fuqishme për përpunimin e programit përdorues dhe për të lehtësuar procesorin kryesor të pajisjes, duke ia ngarkuar modulit një pjesë të programit.
Për programin përdorues ne do të kemi në dispozicion modet e mëposhtme të funksionimit të periferikës:
Pin Jo.
Emri
Numri Sys GPIO.
Veprimi në default
Func1
Func2
Tërheqje
Interupti i zgjimit
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-Karta
â
â
B-PD
â
22
SD_DATA0
â
SD-Karta
â
â
B-PD
â
23
SD_DATA1
â
SD-Karta
â
â
B-PD
â
24
SD_DATA2
â
SD-Karta
â
â
B-PD
â
25
SD_DATA3
â
SD-Karta
â
â
B-PD
â
26
SD_CLK
â
SD-Karta
â
â
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
Status
GPIO
Status
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
â
Pajtohuni, lista është mbresëlënëse dhe vini re: një pjesë e periferikës përdoret për të funksionuar moduli si një router. Pra, mbi një modul të tillë mund të krijoni një router të vogël që do të shpërndajë internetin përmes Wi-Fi. Për më tepër, tashmë ekziston një zgjidhje e gatshme, e cila quhet SIM7600E-H-MIFI dhe përbëhet nga një kartë miniPCIE, me modulin SIM7600E-H të varur dhe disa dalje antenash, njëra prej të cilave është antena Wi-Fi. Megjithatë, kjo është një temë për material tjetër.
Mediat (jo dita e javës)
ofrojnĂ« mundĂ«si pĂ«r zhvilluesit qĂ« tĂ« zgjedhin vetĂ« mjedisin mĂ« tĂ« njohur tĂ« zhvillimit nĂ«n Linux ose Windows. NĂ«se flasim pĂ«r njĂ« aplikacion tĂ« vetme ekzekutues nĂ« modul, Ă«shtĂ« mĂ« mirĂ« tĂ« zgjidhni Windows, pasi do tĂ« jetĂ« mĂ« e shpejtĂ« dhe mĂ« e lehtĂ«. NĂ«se parashikohet njĂ« arkitekturĂ« e ndĂ«rlikuar e aplikacionit dhe pĂ«rditĂ«sime tĂ« mĂ«vonshme â Ă«shtĂ« mĂ« mirĂ« tĂ« pĂ«rdoret Linux. Na nevojitet gjithashtu Linux pĂ«r kompaktimin e skedhave ekzekutues pĂ«r ngarkim tĂ« mĂ«vonshĂ«m nĂ« modul, pĂ«r kompaktimin Ă«shtĂ« mjaft njĂ« makinĂ« virtuale.
Nga ato qĂ« do t'ju nevojiten, tĂ« paaksesueshme pĂ«r shkarkim nĂ« mĂ«nyrĂ« tĂ« lirĂ« â SDK, e cila mund tĂ« kĂ«rkohet nga distributori juaj.
Instalimi i utiliteteve për të punuar me modul
Këtu dhe në vazhdim do të punojmë nën Windows si sistemi më i njohur për shumicën e përdoruesve.
Na nevojitet të instalojmë me disa hapa të thjeshtë softuerin e nevojshëm për të mësuar mbi punën me modulin:
- GNU/Linux
- Cygwin
- Drejtat
- ADB
Instalimi i GNU/Linux
Për ndërtimin e aplikacionit mund të përdorni ndonjë kompilator të pajtueshëm me ARM-Linux. Ne do të përdorim SourceryCodeBenchLiteARM GNU/Linux që është në dispozicion për shkarkim në .
Për të siguruar që të gjitha përbërësit të jenë instaluar saktë, do të lë disa skrinshota të procesit të instalimit. Në thelb, nuk ka asgjë të komplikuar në instalim.
Për të siguruar që të gjitha përbërësit të jenë instaluar saktë, do të lë disa skrinshota të procesit të instalimit. Në thelb, nuk ka asgjë të komplikuar në instalim.
- Pranojmë marrëveshjen e licencës

- Specifikojmë dosjen e instalimit

- Lëvizim përbërësit e nevojshëm pa ndryshime

- E lëmë si është

- Disa herĂ« âNextâ, âInstallâ dhe nĂ« thelb, kjo Ă«shtĂ« gjithçka

Instalimi i Cygwin
Më pas, për zhvillimin do të nevojiten një sërë bibliotekash dhe utilitarësh nga paketa e ofruar . Këtu gjithçka është e thjeshtë, versioni aktual i Cygwin mund të shkarkohet falas nga faqja zyrtare e projektit, në momentin e shk writing, ishte në dispozicion versioni 3.1.5, të cilin e përdorëm për përgatitjen e materialit.
Në instalimin e Cygwin nuk ka asgjë të komplikuar, gjëja e vetëm që duhet të zgjidhni është pasqyrimi nga i cili instaluesi do të shkarkojë skedarët e nevojshëm, zgjidhni ndonjë dhe instaloni, si dhe paketën e utilitarëve dhe bibliotekave, lë të zgjedhura të gjitha bibliotekat dhe utilitarët e disponueshëm.
Instalimi i shoferëve
Pasi moduli të jetë lidhur me PC, do të nevojitet të instaloni shoferët. Mund t'i kërkoni nga distributorët tuaj (e rekomanduar). Nuk rekomandoj të kërkoni në internet, pasi mund të kërkoni shumë kohë për të gjetur se me çfarë ishte i lidhur konflikti i pajisjeve.

Ndër portet e ndara ne shohim si më poshtë:
Windows
Linux
Përshkrimi
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 shtoni portin e debug
Siç e keni vĂ«nĂ« re, mes porteve nĂ« skrinshot nuk ka USB ADB, kjo Ă«shtĂ« pĂ«r shkak tĂ« faktit se porta ADB nĂ« modul Ă«shtĂ« e mbyllur si pĂ«rgjithĂ«si dhe duhet tĂ« aktivizohet duke dĂ«rguar komandĂ«n âAT+CUSBADB=1â nĂ« AT-portin e modulit dhe ta riparoni atĂ« (kjo mund tĂ« bĂ«het me komandĂ«n âAT+CRESETâ).
Në përfundim do të kemi ndërfaqen e nevojshme në menaxherin e pajisjeve:

Përshoferët përfunduan, kalojmë te ADB.
Instalimi i ADB
Shkoni nĂ« faqen zyrtare tĂ« zhvilluesve tĂ« Android nĂ« . Nuk do tĂ« shkarkojmĂ« Android Studio tĂ« zĂ«nĂ«, na mjafton linja e komandĂ«s, e cila Ă«shtĂ« nĂ« dispozicion pĂ«r shkarkim nĂ« linkun âDownload SDK Platform-Tools for Windowsâ.

Shkarkoni dhe shkarkoni arkivin e marrë në rrënjën e diskut C.
Variablat mjedisorë
Pas instalimit tĂ« Cygwin, do t'ju duhet tĂ« shtoni rrugĂ«n Cygwin/bin nĂ« variablat e mjedisit (Paneli i Kontrollit Klasik â Sistemi â Parametrat ShtesĂ« tĂ« Sistemit â ShtesĂ« â Variablat e Mjedisit â Variablat e Sistemit â Path â Ndrysho) siç tregohet nĂ« screenshotin mĂ« poshtĂ«:

Në mënyrë të ngjashme, shtoni rrugën e arkivit të shkarkuar dhe të shpaketuar ADB në rrënjën e diskut C.

Shtypni disa herë OK dhe rinisni kompjuterin.
Pas rinisjes, mund tĂ« verifikoni nĂ«se ADB funksionon siç duhet duke hapur komandĂ«n e komandĂ«s (Win+R â cmd) dhe shkruani komandĂ«n âadb versionâ. Do tĂ« marrim njĂ« rezultat tĂ« tillĂ«:

Lidhni modulin me PC (nĂ«se ndodhi qĂ« e ndalĂ«t) dhe kontrolloni nĂ«se ADB e sheh atĂ« me komandĂ«n âadb devicesâ:

E gjetëm, kështu që konfigurimi i lidhjes me modulin është përfunduar dhe ne mund të fillojmë shell-in për të punuar me modul.

Shpaketimi dhe kompilimi i SDK
Pasi marrim akses në shell dhe mund të fillojmë punën me komandën e modulit, le të përpiqemi të kompilohem aplikacionin tonë të parë për ta ngarkuar në modul.
Kjo mund tĂ« shkaktojĂ« vĂ«shtirĂ«si pĂ«r shumĂ«! MeqenĂ«se moduli punon nĂ« sistemin operativ Linux, pĂ«r tĂ« shmangur kolizionet gjatĂ« kompilimit tĂ« kodit nĂ«n Windows â Ă«shtĂ« mĂ« mirĂ« tĂ« kompilohet nĂ« mjedisin e tij â Linux.
Nuk do të ndalemi në mënyrën se si, në mungesë të Linux-it dhe dëshirës për ta instaluar atë në makinën tuaj, mund ta instaloni atë në një virtual. Ne do të përdorim VirtualBox, do të instalojmë Ubuntu version 20.04 (versioni aktual në momentin e shkruajtjes së artikullit) dhe nën të do të fillojmë punën me kompilatorët, SDK etj.
Kaloni në mjedisin Linux dhe shpaketoni arkivin e marrë nga distributor.
simcom@VirtualBox:~/Desktop/OpenLinux$ sudo tar -xzf MDM9x07_OL_2U_22_V1.12_191227.tar.gz Kaloni në katalogun sim_open_sdk dhe shtoni mjedisin:
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 Qëndroni në këtë dosje dhe kryeni komandat e mëpasshme duke qenë në të.
Instaloni bibliotekën libncurses5-dev, nëse nuk është instaluar:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get update && sudo apt-get install libncurses5-dev -yPython, nëse nuk është gjithashtu instaluar:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install python -ydhe gcc:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install gccKompilimi:
Tani do të na nevojitet të kompilohem disa skedarë, duke ekzekutuar rregullisht komandat e mëposhtme.
Nëse shfaqet një dritare konfigurimi të bërthamës gjatë kompjilimit - thjesht zgjedhim Dalje dhe kthehemi në konsolë, tani nuk kemi nevojë të konfiguroni bërthamën.
Kryejmë:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ makeKompilohet bootloader:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make abootKompilohet bërthama:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_menuconfig
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel
Kompilohet sistemi dosjes rrënjë:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make rootfsPër përdoruesit e Linux-it, do të ishte e rëndësishme të kompilohet moduli i drejtuesit:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_moduleKompilojmë demon:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make demoPas kësaj, do të shfaqen disa dosje të reja në direktorinë sim_open_sdk/output:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ ls output/
appsboot.mbn boot.img demo_app helloworld system.img
Demo
Le të provoni të ngarkojmë demonin në modul dhe të shohim se çfarë ndodh.
Ngarkimi
Në drejtorinë sim_open_sdk, mund të shohim dosjen demo_app. E marrim dhe e transferojmë në rrënjën e diskut C në PC-në e lidhur me modul. Pas kësaj, hapim komandën e Windows (Win+R -> cmd) dhe shkruajmë:
C:>adb push C:demo_app /data/Konsola na informon:
C:demo_app: 1 file pushed, 0 skipped. 151.4 MB/s (838900 bytes in 0.005s)Kjo do të thotë se dosja është dërguar me sukses në modul dhe tani na mbetet vetëm ta nisim atë. Mos e humbim kohën.
Kryejmë:
C:>adb shellZgjeroni të drejtat e dosjes së ngarkuar:
/ # cdhmod 777 /data/demo_appDhe e nisim:
/ # /data/demo_appNë këtë konsolë, moduli na informon si vijon:
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 >
Le të shohim IMEI-në e modulit, të futim 7 (kalim në modin komandë) dhe më pas të shkruajmë 5:
Ju lutem zgjidhni një opsion për të testuar nga artikujt e listuar më poshtë.
1. WIFI 2. TELEFONI VOCE
3. THIRRJE TĂ DHTML 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. DALJ
Opsioni > 7
Ju lutem zgjidhni një opsion për të testuar nga artikujt e listuar më poshtë.
1. merr Modulin Version 2. merr CSQ
3. merr CREG 4. merr ICCID
5. merr IMEI 6. merr CIMI
99. mbrapa
Opsioni > 5
IMEI: 867584030090489
Ju lutem zgjidhni një opsion për të testuar nga artikujt e listuar më poshtë.
1. merr Modulin Version 2. merr CSQ
3. merr CREG 4. merr ICCID
5. merr IMEI 6. merr CIMI
99. mbrapa
Opsioni >
Kështu, ne do të shohim IMEI-në e modulit.
Në përfundim
Shpresoj se kemi arritur të krijojmë një përmbledhje të përgjithshme se si të fillojmë punën me modul. Në artikujt e ardhshëm do të shqyrtojmë më në detaje mundësitë që ofron platforma SIM7600E-H, si dhe mënyrat se si mund të përditësoni aplikacionin tuaj në distancë në modul.
Ju ftoj të bëni pyetje në komentet, si dhe të tregoni se cili aspekt i mundësive të modulit duhet të reflektohet në artikujt e ardhshëm.
Burimi: habr.com





