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
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
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:
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)
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:
- GNU / Linux
- Cygwin
- Vodiči
- 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
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é.
- Prijímame licenčnú zmluvu
- Zadajte inštalačný priečinok
- Potrebné komponenty necháme nezmenené
- Nechajte to tak
- Niekoľkokrát „Ďalej“, „Inštalovať“ a v podstate je to
Inštalácia Cygwin
Ďalej na vývoj budete potrebovať sadu knižníc a pomocných programov z poskytnutej sady
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.
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:
S ovládačmi sme skončili, prejdime k ADB.
Inštalácia ADB
Prejdite na oficiálnu webovú stránku Android Developer
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:
Podobne pridajte cestu k stiahnutému a rozbalenému archívu ADB do koreňového adresára jednotky C.
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:
Pripojme modul k PC (ak je náhodou odpojený) a pomocou príkazu „adb devices“ skontrolujte, či ho ADB vidí:
Hotovo, tým je konfigurácia pripojenia k modulu dokončená a môžeme spustiť shell na prácu s modulom.
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