OpenLinux osana SIM7600E-H-moduuleja

OpenLinux osana SIM7600E-H-moduuleja

Mekanismi mukautetun sovelluksen kehittämiseen ja sen lataamiseen moduuliin on saatavilla sekä Linux- että Windows-käyttöjärjestelmissä. Tässä artikkelissa tarkastelemme yksityiskohtaisesti, miten, käyttämällä esimerkkejä toimitetusta SDK:sta SIMCom Wireless Solutions kääntää ja ladata mukautetun sovelluksen moduuliin.

Ennen artikkelin kirjoittamista eräs tuttavani, joka ei ollut kaukana Linux-kehityksestä, pyysi minua lähestymään kysymystä kuvailemaan SIM7600E-H-moduulin oman sovellukseni kehitysprosessia mahdollisimman yksityiskohtaisesti. Aineiston esityksen saavutettavuuden arvioinnin kriteerinä oli lause "niin että ymmärrän".

Kutsun sinut tutustumaan tapahtumiin.

Artikkelia täydennetään ja päivitetään säännöllisesti

alkusoitto

Tyypillisesti solukkoviestintämoduuleja käytetään vain tiedonsiirtoon, äänipuheluihin, SMS-lähetykseen ja vastaaviin. Kaikki tämä tapahtuu ulkoisen ohjausmikro-ohjaimen lähettämien AT-komentojen kautta. Mutta on olemassa moduuliluokka, jonka avulla voit suorittaa ulkopuolelta ladatun mukautetun koodin. Joissakin tapauksissa tämä vähentää merkittävästi laitteen kokonaisbudjettia, jolloin voit asentaa yksinkertaisemman (ja yhtä edullisen) mikro-ohjaimen levylle tai hylätä sen kokonaan. Android- tai Linux-käyttöjärjestelmän ohjaamien LTE-moduulien ja niiden tehokkaiden resurssien myötä on mahdollista ratkaista kaikki suosittujen prosessorien käytettävissä olevat tehtävät. Tässä artikkelissa puhutaan SIM7600E-H:sta, jota hallitsee Linux-käyttöjärjestelmä. Katsomme, kuinka ladata ja suorittaa suoritettava sovellus.

Aineisto perustuu monella tapaa asiakirjaan ”SIM7600 Open Linux Development quide”, mutta joitain lisäyksiä ja ennen kaikkea venäläinen versio ovat hyödyllisiä. Artikkeli auttaa niitä, jotka ovat juuri aloittamassa moduulin hallitsemista, ymmärtämään demosovelluksen lataamisen ja tarjoamaan tarvittavat taidot myöhempää työtä varten.

Lyhyesti siitä, kuka SIM7600E-H on

SIM7600E-H on Qualcommin ARM Cortex-A7 1.3 GHz -prosessorille rakennettu moduuli, jonka sisällä on Linux-käyttöjärjestelmä (ydin 3.18.20) ja joka pystyy toimimaan eurooppalaisten (mukaan lukien venäläisten) taajuuskaistojen kanssa 2G/3G/LTE tukee Cat .4, joka tarjoaa maksimilatausnopeudet jopa 150 Mbps ja lähetysnopeudet jopa 50 Mbps. Runsaat oheislaitteet, teollisuuslämpötila-alue ja sisäänrakennettu GPS/GLONASS-navigointi täyttävät kaikki vaatimukset M2M-kentän modernille modulaariselle ratkaisulle.

Järjestelmän yleiskatsaus

SIM7600E-H-moduuli perustuu Linux-käyttöjärjestelmään (ydin 3.18.20). Tiedostojärjestelmä puolestaan ​​on rakennettu kirjatun tiedostojärjestelmän UBIFS (Unsorted Block Image File System) pohjalta.

Tämän tiedostojärjestelmän tärkeitä ominaisuuksia ovat:

  • toimii osioiden kanssa, voit luoda, poistaa tai muuttaa niiden kokoa;
  • varmistaa tallennuksen kohdistuksen koko mediavolyymin alueella;
  • toimii huonojen lohkojen kanssa;
  • minimoi tietojen katoamisen todennäköisyyden sähkökatkon tai muiden vikojen aikana;
  • lokien pitäminen.

Kuvaus otettu siten, on myös tarkempi kuvaus tällaisesta tiedostojärjestelmästä.

Nuo. Tämäntyyppinen tiedostojärjestelmä on ihanteellinen moduulin ankariin käyttöolosuhteisiin ja mahdollisiin virtaongelmiin. Mutta tämä ei tarkoita, että epävakaat tehoolosuhteet olisivat moduulin odotettu toimintatapa; se osoittaa vain laitteen paremman elinkelpoisuuden.

Память

Muistialueiden jakautuminen on rakennettu seuraavasti:

OpenLinux osana SIM7600E-H-moduuleja

On kolme tärkeintä korostettavaa aluetta:

ubi0:rootfs – vain luku -tilassa ja sisältää itse Linux-ytimen
ubi0:usrfs – käytetään ensisijaisesti käyttäjäohjelmien ja tietojen tallentamiseen
ubi0:cahcefs – varattu FOTA-päivityksille. Jos käytettävissä oleva tila ei riitä päivityksen lataamiseen, järjestelmä poistaa käyttämättömät tiedostot ja vapauttaa siten tilaa. Mutta turvallisuussyistä sinun ei pitäisi sijoittaa tiedostojasi sinne.

Kaikki kolme osiota on jaettu seuraavasti:

Tiedostojärjestelmä
Koko
Käytetty
Saatavissa
Käyttää%
Asennettu

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%
/kätkö

Käytettävissä olevat toiminnot

Kuten edellä mainittiin, moduuli on rakennettu Qualcommin Cortex A7 -piirisarjalle. Olisi väärin jättää käyttämättä niin tehokasta ydintä prosessoimaan käyttäjäohjelmaa ja purkamaan laitteen pääprosessoria siirtämällä osan ohjelmasta moduuliin.

Käyttäjäohjelmalle ovat käytettävissämme seuraavat oheislaitteiden käyttötilat:

Pin nro
Nimi
Sys GPIO No.
Oletustoiminto
Toiminto1
Toiminto2
Vedä
Herätyshäiriö

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-kortti
-
-
B-PD
-

22
SD_DATA0
-
Sd-kortti
-
-
B-PD
-

23
SD_DATA1
-
Sd-kortti
-
-
B-PD
-

24
SD_DATA2
-
Sd-kortti
-
-
B-PD
-

25
SD_DATA3
-
Sd-kortti
-
-
B-PD
-

26
SD_CLK
-
Sd-kortti
-
-
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_FI
GPIO
MIFI_POWER_FI
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
Tila
GPIO
Tila
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
-

Hyväksy, luettelo on vaikuttava ja huomaa: osaa oheislaitteista käytetään moduulin käyttämiseen reitittimenä. Nuo. Tällaisen moduulin perusteella voit tehdä pienen reitittimen, joka jakaa Internetiä Wi-Fin kautta. On muuten olemassa valmis ratkaisu nimeltä SIM7600E-H-MIFI ja se on miniPCIE-kortti, jossa on juotettu SIM7600E-H-moduuli ja useita antennin nastaa, joista yksi on Wi-Fi-antenni. Tämä on kuitenkin erillisen artikkelin aihe.

Keskiviikko (ei viikonpäivä)

SIMCom Wireless Solutions tarjoavat kehittäjille mahdollisuuden valita tutuin kehitysympäristö Linuxille tai Windowsille. Jos puhumme yhdestä suoritettavasta sovelluksesta moduulissa, on parempi valita Windows, se on nopeampaa ja helpompaa. Jos odotat monimutkaista sovellusarkkitehtuuria ja myöhempiä päivityksiä, on parempi käyttää Linuxia. Tarvitsemme myös Linuxia kääntämään suoritettavat tiedostot myöhempää latausta varten moduuliin; virtuaalikone riittää kääntämiseen.

Tarvitsemasi ei ole vapaasti ladattavissa - SDK, jonka voit pyytää jälleenmyyjältäsi.

Apuohjelmien asentaminen moduulin kanssa työskentelemistä varten

Tämän jälkeen työskentelemme Windowsissa useimpien käyttäjien tutuimpana käyttöjärjestelmänä.

Meidän on asennettava tarvittava ohjelmisto muutamassa yksinkertaisessa vaiheessa, jotta voimme myöhemmin hallita moduulin kanssa työskentelyä:

  1. GNU / Linux
  2. cygwin
  3. kuljettaja
  4. ADB

GNU/Linuxin asennus

Sovelluksen rakentamiseen voit käyttää mitä tahansa ARM-Linux-yhteensopivaa kääntäjää. Käytämme SourceryCodeBenchLiteARM GNU/Linuxtranslateria, joka on ladattavissa osoitteessa linkki.

Varmistaakseni, että kaikki komponentit on asennettu oikein, jätän muutaman kuvakaappauksen asennusprosessista. Periaatteessa asennuksessa ei ole mitään monimutkaista.

Varmistaakseni, että kaikki komponentit on asennettu oikein, jätän muutaman kuvakaappauksen asennusprosessista. Periaatteessa asennuksessa ei ole mitään monimutkaista.

  1. Hyväksymme lisenssisopimuksen
    OpenLinux osana SIM7600E-H-moduuleja
  2. Määritä asennuskansio
    OpenLinux osana SIM7600E-H-moduuleja
  3. Jätämme tarvittavat komponentit ennalleen
    OpenLinux osana SIM7600E-H-moduuleja
  4. Jätä se sellaisenaan
    OpenLinux osana SIM7600E-H-moduuleja
  5. Useita kertoja "Seuraava", "Asenna" ja periaatteessa se
    OpenLinux osana SIM7600E-H-moduuleja

Cygwinin asennus

Lisäksi kehitystä varten tarvitset joukon kirjastoja ja apuohjelmia toimitetusta sarjasta cygwin. Täällä kaikki on yksinkertaista, Cygwinin nykyinen versio voidaan ladata ilmaiseksi projektin virallisilla verkkosivuilla; Kirjoitushetkellä versio 3.1.5 oli saatavilla, jota käytimme materiaalia valmistellessa.

Cygwinin asennuksessa ei ole mitään monimutkaista, ainoa asia, joka sinun on valittava, on peili, josta asennusohjelma lataa tarvittavat tiedostot, valitsee minkä tahansa ja asentaa sen, sekä joukon apuohjelmia ja kirjastoja, jättäen kaikki käytettävissä olevat kirjastot ja apuohjelmat valittu.

Ajurien asentaminen

Kun moduuli on liitetty tietokoneeseen, sinun on asennettava ohjaimet. Voit pyytää niitä jälleenmyyjältäsi (suositus). En suosittele etsimään Internetistä itse, koska... Laiteristiriidan aiheuttajan selvittäminen voi viedä paljon aikaa.

OpenLinux osana SIM7600E-H-moduuleja

Valittujen porttien joukossa näemme seuraavat:

Windows
Linux
Kuvaus

SimTech HS-USB -diagnostiikka
USB-sarja
Diagnostinen käyttöliittymä

SimTech HS-USB NMEA
USB-sarja
GPS NMEA -liitäntä

SimTech HS-USB AT -portti
USB-sarja
AT-portin käyttöliittymä

SimTech HS-USB -modeemi
USB-sarja
Modeemiportin käyttöliittymä

SimTech HS-USB Audio
USB-sarja
USB-liitäntä

SimTech HS-USB WWAN-sovitin
USB-verkko
NDIS WWAN-liitäntä

Android Composite ADB -liitäntä
USB ADB
Android lisää virheenkorjausportti

Kuten luultavasti huomasit, kuvakaappauksen porttien joukossa ei ole USB ADB:tä, tämä johtuu siitä, että moduulin ADB-portti on oletusarvoisesti suljettu ja sinun on otettava se käyttöön lähettämällä komento 'AT+CUSBADB=1' AT:lle. moduulin portti ja käynnistä se uudelleen (tämä voidaan tehdä komennolla 'AT+CRESET').

Tämän seurauksena saamme halutun käyttöliittymän laitehallinnassa:

OpenLinux osana SIM7600E-H-moduuleja

Ohjaimet ovat valmiit, siirrytään ADB:hen.

ADB:n asennus

Siirry viralliselle Android-kehittäjäsivustolle linkki. Emme lataa tilaa vievää Android Studiota; tarvitsemme vain komentorivin, joka on ladattavissa "Download SDK Platform-Tools for Windows" -linkin kautta.

OpenLinux osana SIM7600E-H-moduuleja

Lataa ja pura tuloksena oleva arkisto C-aseman juureen.

ympäristömuuttujat

Cygwinin asennuksen jälkeen sinun on lisättävä polku Cygwin/bin/ kehitysympäristömuuttujiin (Classic Control Panel → System → Advanced System settings → Advanced → Environment Variables → System Variables → Path → Edit) alla olevan kuvakaappauksen mukaisesti:

OpenLinux osana SIM7600E-H-moduuleja

Lisää samalla tavalla ladatun ja pakkaamattoman ADB-arkiston polku aseman C juureen.

OpenLinux osana SIM7600E-H-moduuleja

Napsauta OK useita kertoja ja käynnistä tietokone uudelleen.

Uudelleenkäynnistyksen jälkeen voit helposti tarkistaa, toimiiko ADB oikein avaamalla komentorivi (Win+R → cmd) ja kirjoittamalla komennon "adb version". Saamme jotain tällaista:

OpenLinux osana SIM7600E-H-moduuleja

Yhdistetään moduuli PC:hen (jos niin sattui, että se katkesi) ja tarkistetaan näkeekö ADB sen komennolla 'adb devices':

OpenLinux osana SIM7600E-H-moduuleja

Valmis, tämä viimeistelee yhteyden konfiguroinnin moduuliin ja voimme käynnistää kuoren toimimaan moduulin kanssa.

OpenLinux osana SIM7600E-H-moduuleja

SDK:n purkaminen ja kääntäminen

Nyt kun meillä on pääsy komentotulkoon ja voimme aloittaa työskentelyn moduulin komentorivillä, yritetään kääntää ensimmäinen moduuliin ladattava sovellus.

Monilla ihmisillä voi olla vaikeuksia tämän kanssa! Koska Moduuli toimii Linux-käyttöjärjestelmässä; törmäysten välttämiseksi koodia käännettäessä Windowsissa on parasta kääntää alkuperäisessä ympäristössä - Linuxissa.

Emme keskustele yksityiskohtaisesti siitä, kuinka voit asentaa sen virtuaalikoneeseen ilman Linuxia ja halua asentaa se koneellesi. Käytämme VirtualBoxia, asennamme Ubuntun version 20.04 (nykyinen versio kirjoitushetkellä) ja sen alla alamme työskennellä kääntäjien, SDK:iden jne.

Siirrytään Linux-ympäristöön ja puretaan jakelijalta saatu arkisto.

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

Mene sim_open_sdk-hakemistoon ja lisää ympäristö:

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 

Pysymme samassa kansiossa ja suoritamme seuraavat komennot siinä ollessamme.
Asenna libncurses5-dev-kirjasto, jos sitä ei ole asennettu:

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

Python, jos sitä ei myöskään asennettu:

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

ja gcc:

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

Kokoonpano:

Nyt meidän on koottava useita tiedostoja, suoritamme seuraavat komennot peräkkäin.

Jos ytimen asetusikkuna avautuu kääntämisen aikana, valitse vain Lopeta ja palaa konsoliin; meidän ei tarvitse määrittää ydintä nyt.

Me teemme:

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

Käynnistyslataimen kääntäminen:

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

Ytimen kääntäminen:

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

Käännä juuritiedostojärjestelmä:

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

Linux-käyttäjille on tärkeää kääntää moduuliohjain:

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

Kootaan demo:

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

Sen jälkeen useita uusia tiedostoja ilmestyy sim_open_sdk/output-hakemistoon:

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

esittely

Yritetään ladata demo moduuliimme ja katsotaan mitä siitä tulee.

Lataa

Sim_open_sdk-hakemistossa näemme tiedoston demo_app. Otamme sen ja siirrämme sen tietokoneen C-aseman juureen, johon moduuli on kytketty. Käynnistä sitten Windowsin komentorivi (Win+R -> cmd) ja kirjoita:

C:>adb push C:demo_app /data/

Konsoli kertoo meille:

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

Tämä tarkoittaa, että tiedosto lähetettiin onnistuneesti moduuliin ja meidän tarvitsee vain suorittaa se. Älkäämme epäröikö.

Me teemme:

C:>adb shell

Laajennamme ladatun tiedoston oikeuksia:

/ # cdhmod 777 /data/demo_app

Ja juoksemme:

/ # /data/demo_app

Samassa konsolissa moduuli kertoo meille seuraavan:

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 >   

Katsotaanpa moduulin IMEI-koodia, syötä 7 (vaihda komentotilaan) ja syötä sitten 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 >

Tällä tavalla näemme moduulin IMEI:n.

Lopuksi

Toivon, että saimme yleiskuvan moduulin käytön aloittamisesta. Seuraavissa artikkeleissa tarkastellaan lähemmin SIM7600E-H alustan tarjoamia ominaisuuksia sekä sitä, kuinka voit päivittää oman sovelluksesi etänä moduulissa.

Kehotan sinua esittämään kysymyksiä kommenteissa ja ilmoittamaan myös, mikä moduulin ominaisuuksien puoli tulee näkyä seuraavissa artikkeleissa.

Lähde: will.com

Lisää kommentti