OpenLinux a SIM7600E-H modulok részeként

OpenLinux a SIM7600E-H modulok részeként

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 SIMCom vezeték nélküli megoldások lefordítani és betölteni egy egyéni alkalmazást egy modulba.

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 ezért, van egy ilyen fájlrendszer részletesebb leírása is.

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:

OpenLinux a SIM7600E-H modulok részeként

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)

SIMCom vezeték nélküli megoldások lehetőséget biztosítanak a fejlesztőknek, hogy a Linux vagy Windows számára legismertebb fejlesztői környezetet válasszák. Ha egy modulon egy végrehajtható alkalmazásról beszélünk, akkor jobb a Windowst választani, gyorsabb és egyszerűbb lesz. Ha összetett alkalmazásarchitektúrára és későbbi frissítésekre számít, akkor jobb, ha Linuxot használ. Linuxra is szükségünk van a végrehajtható fájlok fordításához a modulba való későbbi betöltéshez, a fordításhoz elegendő egy virtuális gép.

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:

  1. GNU / Linux
  2. cygwin
  3. sofőr
  4. 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: link.

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.

  1. Elfogadjuk a licencszerződést
    OpenLinux a SIM7600E-H modulok részeként
  2. Adja meg a telepítési mappát
    OpenLinux a SIM7600E-H modulok részeként
  3. A szükséges alkatrészeket változatlanul hagyjuk
    OpenLinux a SIM7600E-H modulok részeként
  4. Hagyd úgy ahogy van
    OpenLinux a SIM7600E-H modulok részeként
  5. Többször a „Next”, „Install” és lényegében ennyi
    OpenLinux a SIM7600E-H modulok részeként

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 cygwin. Itt minden egyszerű, a Cygwin aktuális verziója ingyenesen letölthető a projekt hivatalos weboldaláról, a cikk írásakor a 3.1.5-ös verzió volt elérhető, ezt használtuk az anyag elkészítésekor.

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.

OpenLinux a SIM7600E-H modulok részeként

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:

OpenLinux a SIM7600E-H modulok részeként

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 link. Nem fogjuk letölteni a terjedelmes Android Studio-t, csak a parancssorra van szükségünk, amely letölthető a „Download SDK Platform-Tools for Windows” linken keresztül.

OpenLinux a SIM7600E-H modulok részeként

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:

OpenLinux a SIM7600E-H modulok részeként

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.

OpenLinux a SIM7600E-H modulok részeként

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:

OpenLinux a SIM7600E-H modulok részeként

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:

OpenLinux a SIM7600E-H modulok részeként

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.

OpenLinux a SIM7600E-H modulok részeként

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

Hozzászólás