Az egyedi alkalmazás fejlesztésének és a modulba való betöltésének mechanizmusa elérhető Linux és Windows operációs rendszeren egyaránt. Ebben a cikkben részletesen megvizsgáljuk, hogyan, a biztosított SDK példái alapján
A cikk megírása előtt az egyik ismerősöm, aki távolról sem Linuxra fejleszt, megkért, hogy közelítsem meg a SIM7600E-H modulra vonatkozó saját alkalmazás fejlesztési folyamatának minél részletesebb leírását. Az anyag bemutatása hozzáférhetőségének értékelésének kritériuma az „úgy, hogy megértsem” kifejezés volt.
Meghívom, hogy ismerkedjen meg a történtekkel.
A cikket rendszeresen kiegészítjük és frissítjük
bevezetés
A cellás kommunikációs modulokat általában csak adatátvitelre, hanghívásokra, SMS-átvitelre és hasonlókra használják. Mindez egy külső vezérlő mikrokontrollerről küldött AT parancsokon keresztül történik. De van egy olyan modulkategória, amely lehetővé teszi a kívülről betöltött egyedi kód végrehajtását. Bizonyos esetekben ez jelentősen csökkenti az eszköz teljes költségvetését, lehetővé téve egy egyszerűbb (és ugyanilyen költségvetésű) mikrokontroller telepítését az alaplapra, vagy teljesen elhagyhatja azt. Az Android vagy Linux OS által vezérelt LTE-modulok megjelenésével és azok erőteljes erőforrásaival minden olyan feladat megoldható, amely a népszerű processzorok számára elérhető. Ez a cikk a Linux operációs rendszer által vezérelt SIM7600E-H-ról lesz szó. Megnézzük, hogyan lehet letölteni és futtatni egy futtatható alkalmazást.
Az anyag sok szempontból a „SIM7600 Open Linux Development quide” dokumentumon alapul, de néhány kiegészítés és mindenekelőtt az orosz verzió hasznos lesz. A cikk segít azoknak, akik csak most kezdik elsajátítani a modult, hogy megértsék, hogyan tölthetik le a demóalkalmazást, és biztosíthatják a szükséges készségeket a későbbi munkához.
Röviden arról, hogy ki az a SIM7600E-H
A SIM7600E-H a Qualcomm ARM Cortex-A7 1.3 GHz-es processzorára épülő modul, benne Linux operációs rendszerrel (kernel 3.18.20), amely képes az európai (beleértve az oroszt is) 2G/3G/LTE-t támogató, Cat támogatású európai frekvenciasávokkal dolgozni. .4, amely akár 150 Mbps maximális letöltési és 50 Mbps feltöltési sebességet biztosít. Gazdag perifériák, az ipari hőmérséklet-tartomány és a beépített GPS/GLONASS navigáció jelenléte minden igényt kielégít a modern moduláris megoldásokkal szemben az M2M területen.
Rendszer áttekintő
A SIM7600E-H modul a Linux operációs rendszeren (kernel 3.18.20) alapul. A fájlrendszer viszont az UBIFS (Unsorted Block Image File System) naplózott fájlrendszerre épül.
A fájlrendszer fontos jellemzői a következők:
- partíciókkal működik, lehetővé teszi azok létrehozását, törlését vagy méretének módosítását;
- biztosítja a felvétel igazítását a teljes médiakötetben;
- rossz blokkokkal működik;
- minimálisra csökkenti az adatvesztés valószínűségét áramkimaradás vagy egyéb meghibásodás esetén;
- naplók vezetése.
Leírás megtörtént
Azok. Ez a fajta fájlrendszer ideális a modul zord működési feltételeihez és az esetleges tápellátási problémákhoz. Ez azonban nem jelenti azt, hogy instabil áramkörülmények lesznek a modul elvárt működési módja, csak az eszköz nagyobb életképességét jelzi.
Память
A memóriaterületek elosztása a következőképpen épül fel:
Három fő területet kell kiemelni:
ubi0:rootfs – csak olvasható, és magát a Linux kernelt tartalmazza
ubi0:usrfs – elsősorban felhasználói programok és adatok tárolására szolgál
ubi0:cahcefs – fenntartva a FOTA frissítésekhez. Ha a rendelkezésre álló hely nem elegendő a frissítés letöltéséhez, a rendszer törli a fel nem használt fájlokat, és így helyet szabadít fel. De biztonsági okokból ne helyezze oda fájljait.
Mindhárom rész a következőképpen oszlik meg:
Fájlrendszer
Méret
Használt
Elérhető
Használat%
Felszerelve
ubi0:rootfs
40.7M
36.2M
4.4M
89%
/
ubi0:usrfs
10.5M
360K
10.1M
3%
/adat
ubi0:cachefs
50.3M
20K
47.7M
0%
/ cache
Elérhető funkciók
Mint fentebb említettük, a modul a Qualcomm Cortex A7 lapkakészletére épül. Rossz lenne, ha nem biztosítanánk egy ilyen nagy teljesítményű magot a felhasználói program feldolgozásához, és a program egy részének a modulra való feltöltésével tehermentesítené az eszköz fő processzorát.
A felhasználói programhoz a következő periféria üzemmódok állnak rendelkezésünkre:
Pin No.
Név
Sys GPIO No.
Alapértelmezett művelet
Func1
Func2
Húz
Ébresztési megszakítás
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 kártya
-
-
B-PD
-
22
SD_DATA0
-
SD kártya
-
-
B-PD
-
23
SD_DATA1
-
SD kártya
-
-
B-PD
-
24
SD_DATA2
-
SD kártya
-
-
B-PD
-
25
SD_DATA3
-
SD kártya
-
-
B-PD
-
26
SD_CLK
-
SD kártya
-
-
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
Állapot
GPIO
Állapot
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
természetes erőforrások
-
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
DTRMore
-
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
-
Egyetértek, a lista lenyűgöző, és vegye figyelembe: a perifériák egy része a modul útválasztóként történő működtetésére szolgál. Azok. Egy ilyen modul alapján készíthet egy kis útválasztót, amely Wi-Fi-n keresztül terjeszti az internetet. Amúgy van egy SIM7600E-H-MIFI névre keresztelt kész megoldás, és egy miniPCIE kártya forrasztott SIM7600E-H modullal és több antennatűvel, ezek közül az egyik Wi-Fi antenna. Ez azonban egy külön cikk témája.
szerda (nem a hét napja)
Amire szüksége van, az nem ingyenesen letölthető – egy SDK, amelyet a forgalmazójától kérhet.
Segédprogramok telepítése a modullal való munkához
A továbbiakban Windows alatt fogunk dolgozni, mint a legtöbb felhasználó számára legismertebb operációs rendszerként.
Néhány egyszerű lépésben telepítenünk kell a szükséges szoftvert, hogy később elsajátíthassuk a modullal való munkát:
- GNU / Linux
- cygwin
- sofőr
- ADB
GNU/Linux telepítése
Az alkalmazás elkészítéséhez bármilyen ARM-Linux kompatibilis fordítót használhat. A SourceryCodeBenchLiteARM GNU/Linuxtranslater programot fogjuk használni, amely letölthető innen:
Az összes összetevő helyes telepítése érdekében hagyok néhány képernyőképet a telepítési folyamatról. Elvileg nincs semmi bonyolult a telepítésben.
Az összes összetevő helyes telepítése érdekében hagyok néhány képernyőképet a telepítési folyamatról. Elvileg nincs semmi bonyolult a telepítésben.
- Elfogadjuk a licencszerződést
- Adja meg a telepítési mappát
- A szükséges alkatrészeket változatlanul hagyjuk
- Hagyd úgy ahogy van
- Többször a „Next”, „Install” és lényegében ennyi
Cygwin telepítése
Továbbá a fejlesztéshez szüksége lesz egy sor könyvtárra és segédprogramra a mellékelt készletből
A Cygwin telepítésében nincs semmi bonyolult, csak egy tükröt kell kiválasztania, amelyből a telepítő letölti a szükséges fájlokat, kiválaszt egyet és telepíti, valamint egy sor segédprogramot és könyvtárat, hagyva az összes elérhető könyvtárat és kiválasztott segédprogramok.
Illesztőprogram telepítése
Miután a modult csatlakoztatta a számítógéphez, telepítenie kell az illesztőprogramokat. Ezeket a forgalmazójától kérheti (ajánlott). Nem javaslom, hogy önállóan keresgéljen az interneten, mert... Sok időbe telhet annak megállapítása, hogy mi okozta az eszközütközést.
A kiválasztott portok között a következőket látjuk:
Windows
Linux
Leírás
SimTech HS-USB diagnosztika
USB soros
Diagnosztikai interfész
SimTech HS-USB NMEA
USB soros
GPS NMEA interfész
SimTech HS-USB AT port
USB soros
AT port interfész
SimTech HS-USB modem
USB soros
Modem port interfész
SimTech HS-USB Audio
USB soros
USB audio interfész
SimTech HS-USB WWAN adapter
USB Net
NDIS WWAN interfész
Android Composite ADB interfész
USB ADB
Android hozzáadása hibakeresési porthoz
Amint azt valószínűleg észrevette, a képernyőképen nincs USB ADB a portok között, mivel a modul ADB portja alapértelmezés szerint zárva van, és engedélyeznie kell az 'AT+CUSBADB=1' parancs elküldésével az AT-nek. a modul portját, és indítsa újra (ez az 'AT+CRESET' paranccsal tehető meg).
Ennek eredményeként megkapjuk a kívánt felületet az eszközkezelőben:
Elkészültünk a driverekkel, térjünk át az ADB-re.
ADB telepítése
Nyissa meg a hivatalos Android fejlesztői webhelyet
Töltse le és csomagolja ki a kapott archívumot a C meghajtó gyökérkönyvtárába.
Környezeti változók
A Cygwin telepítése után hozzá kell adnia a Cygwin/bin/ elérési utat a fejlesztői környezeti változókhoz (Klasszikus Vezérlőpult → Rendszer → Speciális rendszerbeállítások → Speciális → Környezeti változók → Rendszerváltozók → Elérési út → Szerkesztés), az alábbi képernyőképen látható módon:
Hasonlóképpen adja hozzá a letöltött és kicsomagolt ADB-archívum elérési útját a C meghajtó gyökeréhez.
Kattintson többször az OK gombra, és indítsa újra a számítógépet.
Újraindítás után egyszerűen ellenőrizheti, hogy az ADB megfelelően működik-e, ha megnyitja a parancssort (Win+R → cmd), és beírja az „adb version” parancsot. Valami ilyesmit kapunk:
Csatlakoztassuk a modult a számítógéphez (ha véletlenül le van választva), és ellenőrizzük, hogy az ADB látja-e az „adb devices” paranccsal:
Kész, ezzel befejeződik a modulhoz való csatlakozás konfigurálása, és elindíthatjuk a shell-t, hogy működjön együtt a modullal.
Az SDK kicsomagolása és fordítása
Most, hogy elértük a shellt, és elkezdhetjük a modul parancssorával való munkát, próbáljuk meg lefordítani az első alkalmazásunkat, amelyet betölthetünk a modulba.
Sokaknak nehézségei lehetnek ezzel! Mert A modul Linux operációs rendszeren fut, az ütközések elkerülése érdekében a Windows alatti kódfordítás során a legjobb a natív környezetben - Linuxon - fordítani.
Nem fogunk részletesen foglalkozni azzal, hogy Linux hiányában és a gépre való telepítés iránti vágy esetén hogyan telepítheti virtuális gépre. Használjuk a VirtualBoxot, telepítjük az Ubuntu 20.04-es verzióját (az írás idején aktuális verzió), és ez alatt kezdjük meg a fordítókkal, SDK-kkal stb.
Menjünk a Linux környezetbe, és csomagoljuk ki a terjesztőtől kapott archívumot.
simcom@VirtualBox:~/Desktop/OpenLinux$ sudo tar -xzf MDM9x07_OL_2U_22_V1.12_191227.tar.gz
Lépjen a sim_open_sdk könyvtárba, és adja hozzá a környezetet:
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
Ugyanabban a mappában maradunk, és végrehajtjuk a következő parancsokat, miközben benne van.
Telepítse a libncurses5-dev könyvtárat, ha még nincs telepítve:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get update && sudo apt-get install libncurses5-dev -y
Python, ha az sem lett telepítve:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install python -y
és gcc:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install gcc
Összeállítás:
Most több fájlt kell lefordítanunk, a következő parancsokat egymás után futtatjuk.
Ha a fordítás során felugrik a kernel konfigurációs ablaka, egyszerűen válassza ki az Exit (Kilépés) lehetőséget, és térjen vissza a konzolba; nem kell most konfigurálnunk a kernelt.
Mi csináljuk:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make
Bootloader fordítása:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make aboot
A kernel fordítása:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_menuconfig
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel
Fordítsa le a gyökér fájlrendszert:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make rootfs
Linux felhasználók számára fontos lesz a modul illesztőprogramjának lefordítása:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_module
Állítsuk össze a demót:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make demo
Ezután több új fájl jelenik meg a sim_open_sdk/output könyvtárban:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ ls output/
appsboot.mbn boot.img demo_app helloworld system.img
Demó
Próbáljuk meg betölteni a demót a modulunkba, és meglátjuk, mi sül ki belőle.
Letöltés
A sim_open_sdk könyvtárban láthatjuk a demo_app fájlt. Fogjuk és átvisszük a C meghajtó gyökerére azon a számítógépen, amelyhez a modul csatlakozik. Ezután indítsa el a Windows parancssort (Win + R -> cmd), és írja be:
C:>adb push C:demo_app /data/
A konzol a következőket fogja mondani:
C:demo_app: 1 file pushed, 0 skipped. 151.4 MB/s (838900 bytes in 0.005s)
Ez azt jelenti, hogy a fájl sikeresen el lett küldve a modulba, és már csak le kell futtatnunk. Ne habozzunk.
Mi csináljuk:
C:>adb shell
Bővítjük a letöltött fájl jogait:
/ # cdhmod 777 /data/demo_app
És futunk:
/ # /data/demo_app
Ugyanabban a konzolban a modul a következőket fogja közölni:
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 >
Nézzük meg a modul IMEI-jét, írjuk be a 7-et (váltás parancs módba), majd írjuk be az 5-öt:
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 >
Így látni fogjuk a modul IMEI-jét.
Következtetésként
Remélem, sikerült általános képet alkotnunk a modul használatának megkezdéséről. A következő cikkekben közelebbről megvizsgáljuk a SIM7600E-H platform lehetőségeit, valamint azt, hogyan frissítheti távolról saját alkalmazását a modulban.
Kérem, tegye fel kérdéseit a megjegyzésekben, és jelezze azt is, hogy a modul képességeinek mely aspektusait kell tükröznie a következő cikkekben.
Forrás: will.com