OpenLinux ako súčasť modulov SIM7600E-H

OpenLinux ako súčasť modulov SIM7600E-H

Mechanizmus vývoja vlastnej aplikácie a jej načítania do modulu je dostupný pod operačnými systémami Linux aj Windows. V tomto článku sa na to podrobne pozrieme pomocou príkladov z poskytnutej súpravy SDK Bezdrôtové riešenia SIMCom kompilovať a načítať vlastnú aplikáciu do modulu.

Pred napísaním článku ma jeden z mojich známych, ďaleko od vývoja pre Linux, požiadal, aby som čo najpodrobnejšie priblížil problematiku popísania procesu vývoja vlastnej aplikácie pre modul SIM7600E-H. Kritériom na posúdenie prístupnosti prezentácie materiálu bola fráza „aby som rozumel“.

Pozývam vás, aby ste sa oboznámili s tým, čo sa stalo.

Článok je pravidelne dopĺňaný a aktualizovaný

predohra

Typicky sa moduly mobilnej komunikácie používajú iba na prenos dát, hlasové hovory, prenos SMS a podobne. To všetko sa deje prostredníctvom AT príkazov odoslaných z externého riadiaceho mikrokontroléra. Existuje však kategória modulov, ktoré vám umožňujú spustiť vlastný kód načítaný zvonku. V niektorých prípadoch to výrazne znižuje celkový rozpočet zariadenia, čo vám umožňuje nainštalovať jednoduchší (a rovnako lacný) mikrokontrolér na dosku alebo ho úplne opustiť. S príchodom LTE modulov riadených OS Android alebo Linux a ich výkonnými zdrojmi je možné riešiť akékoľvek úlohy, ktoré sú dostupné populárnym procesorom. Tento článok bude hovoriť o SIM7600E-H riadenej OS Linux. Pozrieme sa na to, ako stiahnuť a spustiť spustiteľnú aplikáciu.

V mnohých ohľadoch je materiál založený na dokumente „SIM7600 Open Linux development quide“, ale užitočné budú niektoré doplnky a predovšetkým ruská verzia. Článok pomôže tým, ktorí práve začínajú ovládať modul, pochopiť, ako stiahnuť demo aplikáciu a poskytnúť potrebné zručnosti pre následnú prácu.

Stručne o tom, kto je SIM7600E-H

SIM7600E-H je modul postavený na procesore ARM Cortex-A7 1.3 GHz od Qualcommu s operačným systémom Linux (kernel 3.18.20) vo vnútri, schopným pracovať s európskymi (vrátane ruských) frekvenčných pásiem 2G/3G/LTE s podporou Cat. .4, ktorý poskytuje maximálnu rýchlosť sťahovania až 150 Mbps a rýchlosť odosielania až 50 Mbps. Bohaté periférie, priemyselný teplotný rozsah a prítomnosť vstavanej navigácie GPS/GLONASS pokrývajú akékoľvek požiadavky na moderné modulárne riešenie v oblasti M2M.

Prehľad systému

Modul SIM7600E-H je založený na operačnom systéme Linux (kernel 3.18.20). Na druhej strane je súborový systém vytvorený na základe žurnálovaného súborového systému UBIFS (Unsorted Block Image File System).

Medzi dôležité funkcie tohto súborového systému patria:

  • pracuje s oddielmi, umožňuje vytvárať, mazať alebo meniť ich veľkosť;
  • zabezpečuje zarovnanie nahrávania naprieč celým objemom média;
  • pracuje so zlými blokmi;
  • minimalizuje pravdepodobnosť straty údajov počas výpadku napájania alebo iných porúch;
  • vedenie denníkov.

Prevzatý popis preto, je tam aj podrobnejší popis takéhoto súborového systému.

Tie. Tento typ súborového systému je ideálny pre náročné prevádzkové podmienky modulu a možné problémy s napájaním. To však neznamená, že nestabilné napájacie podmienky budú očakávaným režimom prevádzky modulu, len to naznačuje väčšiu životaschopnosť zariadenia.

pamäť

Distribúcia pamäťových oblastí je konštruovaná nasledovne:

OpenLinux ako súčasť modulov SIM7600E-H

Je potrebné zdôrazniť tri hlavné oblasti:

ubi0:rootfs – len na čítanie a obsahuje samotné jadro Linuxu
ubi0:usrfs – slúži predovšetkým na ukladanie používateľských programov a dát
ubi0:cahcefs – vyhradené pre aktualizácie FOTA. Ak dostupné miesto nestačí na stiahnutie aktualizácie, systém vymaže nepoužívané súbory a tým uvoľní miesto. Ale z bezpečnostných dôvodov by ste tam svoje súbory nemali umiestňovať.

Všetky tri časti sú rozdelené takto:

Systém súborov
Veľkosť
Použitý
Dostupný
Využiť %
Namontované na

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

ubi0:usrfs
10.5M
360K
10.1M
3%
/ údaje

ubi0:cachefs
50.3M
20K
47.7M
0%
/ cache

Dostupná funkčnosť

Ako už bolo spomenuté vyššie, modul je postavený na čipsete Cortex A7 od Qualcommu. Bolo by nesprávne neposkytnúť také vysokovýkonné jadro na spracovanie používateľského programu a odľahčenie hlavného procesora zariadenia presunutím niektorej časti programu do modulu.

Pre používateľský program budeme mať k dispozícii nasledujúce prevádzkové režimy periférnych zariadení:

PIN č.
Meno
sys GPIO č.
Predvolená akcia
Func1
Func2
Ťahať
Prerušenie zobudenia

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
-
pobočník
-
-
-
-

47
ADC1
-
pobočník
-
-
B-PU
-

48
SD_DET
GPIO_26
GPIO
GPIO
SD_DET
B-PD
X

49
POSTAVENIE
GPIO_52
postavenie
GPIO
postavenie
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
-

Súhlasíte, zoznam je pôsobivý a poznámka: časť periférnych zariadení sa používa na prevádzku modulu ako smerovača. Tie. Na základe takéhoto modulu môžete vytvoriť malý smerovač, ktorý bude distribuovať internet cez Wi-Fi. Mimochodom, je tu hotové riešenie s názvom SIM7600E-H-MIFI a ide o miniPCIE kartu s priletovaným modulom SIM7600E-H a niekoľkými anténnymi pinmi, jedným z nich je Wi-Fi anténa. Toto je však téma na samostatný článok.

streda (nie deň v týždni)

Bezdrôtové riešenia SIMCom poskytnúť vývojárom príležitosť vybrať si najznámejšie vývojové prostredie pre Linux alebo Windows. Ak hovoríme o jednej spustiteľnej aplikácii na module, potom je lepšie zvoliť Windows, bude to rýchlejšie a jednoduchšie. Ak očakávate komplexnú architektúru aplikácie a následné upgrady, je lepšie použiť Linux. Linux potrebujeme aj na kompiláciu spustiteľných súborov pre následné načítanie do modulu, na kompiláciu stačí virtuálny stroj.

To, čo potrebujete, nie je voľne dostupné na stiahnutie – SDK, ktoré si môžete vyžiadať od svojho distribútora.

Inštalácia pomôcok na prácu s modulom

Ďalej budeme pracovať pod Windowsom ako pre väčšinu používateľov najznámejším OS.

Na následné zvládnutie práce s modulom budeme musieť nainštalovať potrebný softvér v niekoľkých jednoduchých krokoch:

  1. GNU / Linux
  2. Cygwin
  3. Vodiči
  4. ADB

Inštalácia GNU/Linuxu

Na zostavenie aplikácie môžete použiť akýkoľvek kompilátor kompatibilný s ARM-Linux. Použijeme SourceryCodeBenchLiteARM GNU/Linuxtranslater dostupný na stiahnutie na odkaz.

Aby ste sa uistili, že všetky komponenty sú nainštalované správne, nechám niekoľko snímok obrazovky procesu inštalácie. V zásade nie je pri inštalácii nič zložité.

Aby ste sa uistili, že všetky komponenty sú nainštalované správne, nechám niekoľko snímok obrazovky procesu inštalácie. V zásade nie je pri inštalácii nič zložité.

  1. Prijímame licenčnú zmluvu
    OpenLinux ako súčasť modulov SIM7600E-H
  2. Zadajte inštalačný priečinok
    OpenLinux ako súčasť modulov SIM7600E-H
  3. Potrebné komponenty necháme nezmenené
    OpenLinux ako súčasť modulov SIM7600E-H
  4. Nechajte to tak
    OpenLinux ako súčasť modulov SIM7600E-H
  5. Niekoľkokrát „Ďalej“, „Inštalovať“ a v podstate je to
    OpenLinux ako súčasť modulov SIM7600E-H

Inštalácia Cygwin

Ďalej na vývoj budete potrebovať sadu knižníc a pomocných programov z poskytnutej sady Cygwin. Tu je všetko jednoduché, aktuálnu verziu Cygwin si môžete stiahnuť zadarmo na oficiálnej stránke projektu, v čase písania článku bola dostupná verzia 3.1.5, z ktorej sme vychádzali pri príprave materiálu.

Pri inštalácii Cygwin nie je nič zložité, jediné, čo si musíte vybrať, je zrkadlo, z ktorého inštalátor stiahne potrebné súbory, vyberie ľubovoľný a nainštaluje ho, ako aj sadu utilít a knižníc, pričom ponechá všetky dostupné knižnice a vybrané inžinierske siete.

inštalácia ovládačov

Po pripojení modulu k PC budete musieť nainštalovať ovládače. Môžete si ich vyžiadať od vášho distribútora (odporúča sa). Neodporúčam hľadať na internete na vlastnú päsť, pretože... Nájdenie príčiny konfliktu zariadenia môže trvať veľa času.

OpenLinux ako súčasť modulov SIM7600E-H

Medzi vybranými portami vidíme nasledovné:

Windows
Linux
Popis

Diagnostika SimTech HS-USB
USB sériové
Diagnostické rozhranie

SimTech HS-USB NMEA
USB sériové
Rozhranie GPS NMEA

Port SimTech HS-USB AT
USB sériové
Rozhranie portu AT

SimTech HS-USB modem
USB sériové
Rozhranie portu modemu

Zvuk SimTech HS-USB
USB sériové
Rozhranie USB Audio

SimTech HS-USB WWAN adaptér
USB sieť
Rozhranie NDIS WWAN

Android Composite ADB Interface
USB ADB
Android pridať ladiaci port

Ako ste si určite všimli, medzi portami na snímke nie je žiadny USB ADB, je to preto, že ADB port v module je štandardne zatvorený a musíte ho povoliť odoslaním príkazu 'AT+CUSBADB=1' do AT. port modulu a reštartujte ho (môžete to urobiť príkazom 'AT+CRESET').

Výsledkom je, že v správcovi zariadení získame požadované rozhranie:

OpenLinux ako súčasť modulov SIM7600E-H

S ovládačmi sme skončili, prejdime k ADB.

Inštalácia ADB

Prejdite na oficiálnu webovú stránku Android Developer odkaz. Nebudeme sťahovať objemné Android Studio; potrebujeme iba príkazový riadok, ktorý je k dispozícii na stiahnutie prostredníctvom odkazu „Stiahnuť SDK Platform-Tools for Windows“.

OpenLinux ako súčasť modulov SIM7600E-H

Stiahnite a rozbaľte výsledný archív do koreňového adresára jednotky C.

Premenné prostredia

Po inštalácii Cygwinu budete musieť pridať cestu Cygwin/bin/ do premenných vývojového prostredia (Klasický ovládací panel → Systém → Rozšírené systémové nastavenia → Rozšírené → Premenné prostredia → Systémové premenné → Cesta → Upraviť), ako je znázornené na obrázku nižšie:

OpenLinux ako súčasť modulov SIM7600E-H

Podobne pridajte cestu k stiahnutému a rozbalenému archívu ADB do koreňového adresára jednotky C.

OpenLinux ako súčasť modulov SIM7600E-H

Niekoľkokrát kliknite na tlačidlo OK a reštartujte počítač.

Po reštarte môžete jednoducho skontrolovať, či ADB funguje správne, otvorením príkazového riadku (Win+R → cmd) a zadaním príkazu ‘verzia adb’. Dostaneme niečo takéto:

OpenLinux ako súčasť modulov SIM7600E-H

Pripojme modul k PC (ak je náhodou odpojený) a pomocou príkazu „adb devices“ skontrolujte, či ho ADB vidí:

OpenLinux ako súčasť modulov SIM7600E-H

Hotovo, tým je konfigurácia pripojenia k modulu dokončená a môžeme spustiť shell na prácu s modulom.

OpenLinux ako súčasť modulov SIM7600E-H

Rozbalenie a kompilácia SDK

Teraz, keď máme prístup k shellu a môžeme začať pracovať s príkazovým riadkom modulu, skúsme skompilovať našu prvú aplikáciu, ktorá sa načíta do modulu.

Mnoho ľudí s tým môže mať ťažkosti! Pretože Modul beží na operačnom systéme Linux, aby nedochádzalo ku kolíziám pri kompilácii kódu pod Windowsom, je najlepšie kompilovať v natívnom prostredí - Linux.

Nebudeme sa podrobne zaoberať tým, ako si ho pri absencii Linuxu a túžbe nainštalovať do svojho počítača môžete nainštalovať na virtuálny stroj. Použijeme VirtualBox, nainštalujeme Ubuntu verziu 20.04 (aktuálnu verziu v čase písania článku) a pod ním začneme pracovať s kompilátormi, SDK atď.

Poďme do prostredia Linuxu a rozbaľme archív prijatý od distribútora.

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

Prejdite do adresára sim_open_sdk a pridajte prostredie:

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 

Zostávame v rovnakom priečinku a v ňom vykonávame nasledujúce príkazy.
Nainštalujte knižnicu libncurses5-dev, ak ešte nebola nainštalovaná:

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

Python, ak nebol nainštalovaný:

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

a gcc:

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

Kompilácia:

Teraz musíme skompilovať niekoľko súborov, spustíme nasledujúce príkazy postupne.

Ak sa počas kompilácie objaví okno s konfiguráciou jadra, stačí vybrať možnosť Exit a vrátiť sa do konzoly; teraz nemusíme konfigurovať jadro.

Robíme:

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

Kompilácia bootloaderu:

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

Kompilácia jadra:

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

Kompilujte koreňový súborový systém:

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

Pre používateľov Linuxu bude dôležité skompilovať ovládač modulu:

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

Poďme skompilovať demo:

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

Potom sa v adresári sim_open_sdk/output objaví niekoľko nových súborov:

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

demonštrácie

Skúsme nahrať demo do nášho modulu a uvidíme, čo z toho vznikne.

Stiahnuť

V adresári sim_open_sdk môžeme vidieť súbor demo_app. Vezmeme ho a prenesieme do koreňového adresára jednotky C na PC, ku ktorému je modul pripojený. Potom spustite príkazový riadok systému Windows (Win+R -> cmd) a zadajte:

C:>adb push C:demo_app /data/

Konzola nám povie:

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

To znamená, že súbor bol úspešne odoslaný do modulu a stačí nám ho spustiť. Neváhajme.

Robíme:

C:>adb shell

Rozširujeme práva na prevzatý súbor:

/ # cdhmod 777 /data/demo_app

A bežíme:

/ # /data/demo_app

V tej istej konzole nám modul povie nasledovné:

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 >   

Pozrime sa na IMEI modulu, zadajte 7 (prepnite do príkazového režimu) a potom zadajte 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 >

Takto uvidíme IMEI modulu.

Ako záver

Dúfam, že sa nám podarilo získať všeobecnú predstavu o tom, ako začať s modulom. V nasledujúcich článkoch sa bližšie pozrieme na možnosti, ktoré platforma SIM7600E-H poskytuje, ako aj na to, ako si môžete na diaľku aktualizovať vlastnú aplikáciu v module.

Pozývam vás, aby ste v komentároch položili otázky a tiež uviedli, ktorý aspekt schopností modulu by sa mal odraziť v nasledujúcich článkoch.

Zdroj: hab.com

Pridať komentár