OpenLinux as deel van SIM7600E-H-modules

OpenLinux as deel van SIM7600E-H-modules

Die meganisme vir die ontwikkeling van 'n pasgemaakte toepassing en laai dit in die module is beskikbaar onder beide die Linux- en Windows-bedryfstelsels. In hierdie artikel sal ons 'n gedetailleerde kyk na hoe, met behulp van voorbeelde van die SDK verskaf SIMCom draadlose oplossings stel 'n pasgemaakte toepassing saam en laai dit in 'n module.

Voordat ek die artikel geskryf het, het een van my kennisse, ver van om vir Linux te ontwikkel, my gevra om die kwessie van die beskrywing van die proses van die ontwikkeling van my eie toepassing vir die SIM7600E-H-module in soveel detail as moontlik te benader. Die kriterium vir die beoordeling van die toeganklikheid van die aanbieding van materiaal was die frase "sodat ek verstaan."

Ek nooi jou uit om kennis te maak met wat gebeur het.

Die artikel word gereeld aangevul en bygewerk

voorspel

Tipies word sellulêre kommunikasiemodules slegs vir data-oordrag, stemoproepe, SMS-oordrag en dies meer gebruik. Dit alles word gedoen deur AT-opdragte wat vanaf 'n eksterne beheermikrobeheerder gestuur word. Maar daar is 'n kategorie van modules wat jou toelaat om persoonlike kode uit te voer wat van buite gelaai is. In sommige gevalle verminder dit die algehele begroting van die toestel aansienlik, waardeur u 'n eenvoudiger (en ewe begroting) mikrobeheerder op die bord kan installeer of dit heeltemal kan laat vaar. Met die koms van LTE-modules wat deur Android- of Linux-bedryfstelsel beheer word en hul kragtige hulpbronne, is dit moontlik om enige take op te los wat vir gewilde verwerkers beskikbaar is. Hierdie artikel sal praat oor SIM7600E-H, beheer deur Linux OS. Ons sal kyk hoe om 'n uitvoerbare toepassing af te laai en te laat loop.

Op baie maniere is die materiaal gebaseer op die dokument "SIM7600 Open Linux development quide", maar 'n paar byvoegings en, eerstens, die Russiese weergawe sal nuttig wees. Die artikel sal diegene wat net begin om die module te bemeester help om te verstaan ​​hoe om die demo-toepassing af te laai en die nodige vaardighede vir daaropvolgende werk te verskaf.

Kortliks oor wie SIM7600E-H is

SIM7600E-H is 'n module gebou op die ARM Cortex-A7 1.3GHz verwerker van Qualcomm, met die Linux-bedryfstelsel (kern 3.18.20) binne, wat in staat is om te werk met Europese (insluitend Russiese) frekwensiebande 2G/3G/ LTE wat Cat ondersteun .4, wat maksimum aflaaispoed van tot 150 Mbps en oplaaispoed van tot 50 Mbps bied. Ryk randapparatuur, 'n industriële temperatuurreeks en die teenwoordigheid van ingeboude GPS/GLONASS-navigasie dek enige vereistes vir 'n moderne modulêre oplossing in die M2M-veld.

Stelseloorsig

Die SIM7600E-H-module is gebaseer op die Linux-bedryfstelsel (kern 3.18.20). Op sy beurt is die lêerstelsel gebou op die basis van die joernaallêerstelsel UBIFS (Unsorted Block Image File System).

Belangrike kenmerke van hierdie lêerstelsel sluit in:

  • werk met partisies, laat jou toe om hul grootte te skep, uit te vee of te verander;
  • verseker opnamebelyning oor die hele mediavolume;
  • werk met Slegte blokke;
  • verminder die waarskynlikheid van dataverlies tydens 'n kragonderbreking of ander onderbrekings;
  • logboeke te hou.

Beskrywing geneem vandaar, is daar ook 'n meer gedetailleerde beskrywing van so 'n lêerstelsel.

Dié. Hierdie tipe lêerstelsel is ideaal vir strawwe bedryfstoestande van die module en moontlike kragprobleme. Maar dit beteken nie dat onstabiele kragtoestande die verwagte werkswyse van die module sal wees nie; dit dui slegs op die groter lewensvatbaarheid van die toestel.

geheue

Die verspreiding van geheue areas word soos volg saamgestel:

OpenLinux as deel van SIM7600E-H-modules

Daar is drie hoofareas om uit te lig:

ubi0:rootfs – leesalleen en bevat die Linux-kern self
ubi0:usrfs – word hoofsaaklik gebruik vir gebruikersprogram en databerging
ubi0:cahcefs – gereserveer vir FOTA-opdaterings. As die beskikbare spasie nie genoeg is om die opdatering af te laai nie, sal die stelsel ongebruikte lêers uitvee en sodoende spasie vrystel. Maar om veiligheidsredes moet jy nie jou lêers daar plaas nie.

Al drie afdelings word soos volg versprei:

Leêr stelsel
grootte
Gebruik word
Beskikbaar
Gebruik%
Gemonteer op

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%
/ kas

Beskikbare funksionaliteit

Soos hierbo genoem, is die module gebou op die Cortex A7-skyfiestel van Qualcomm. Dit sal verkeerd wees om nie so 'n hoëprestasiekern te verskaf om die gebruikerprogram te verwerk en die hoofverwerker van die toestel af te laai deur 'n deel van die program na die module af te laai nie.

Vir die gebruikersprogram sal die volgende perifere bedryfsmodusse vir ons beskikbaar wees:

Speldnr.
Naam
Sys GPIO No.
Verstekaksie
Funksie 1
Funksie 2
Trek
Ontwaakonderbreking

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

22
SD_DATA0
-
SD kaart
-
-
B-PD
-

23
SD_DATA1
-
SD kaart
-
-
B-PD
-

24
SD_DATA2
-
SD kaart
-
-
B-PD
-

25
SD_DATA3
-
SD kaart
-
-
B-PD
-

26
SD_CLK
-
SD kaart
-
-
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
Status
GPIO
Status
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
DTRMore
-
GPIO(DTR)
-
-
B-PD
X

73
PCM_UIT
-
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
-

Stem saam, die lys is indrukwekkend en let op: 'n deel van die randapparatuur word gebruik om die module as 'n router te bedryf. Dié. Op grond van so 'n module kan jy 'n klein router maak wat die internet via Wi-Fi sal versprei. Terloops, daar is 'n klaargemaakte oplossing genaamd SIM7600E-H-MIFI en is 'n miniPCIE-kaart met 'n gesoldeerde SIM7600E-H-module en verskeie antennapenne, een daarvan is 'n Wi-Fi-antenna. Dit is egter 'n onderwerp vir 'n aparte artikel.

Woensdag (nie 'n dag van die week nie)

SIMCom draadlose oplossings bied die geleentheid aan ontwikkelaars om die mees bekende ontwikkelingsomgewing vir Linux of Windows te kies. As ons praat oor een uitvoerbare toepassing op 'n module, dan is dit beter om Windows te kies, dit sal vinniger en makliker wees. As 'n komplekse toepassingsargitektuur en daaropvolgende opgraderings verwag word, is dit beter om Linux te gebruik. Ons het ook Linux nodig om uitvoerbare lêers saam te stel vir die daaropvolgende laai in die module; 'n virtuele masjien is voldoende vir samestelling.

Wat jy nodig het, is nie vryelik beskikbaar vir aflaai nie - 'n SDK, wat jy by jou verspreider kan aanvra.

Installeer nutsprogramme om met die module te werk

Hier en verder sal ons onder Windows werk as die mees bekende bedryfstelsel vir die meeste gebruikers.

Ons sal die nodige sagteware in 'n paar eenvoudige stappe moet installeer om later met die module te werk:

  1. GNU / Linux
  2. Cygwin
  3. bestuurder
  4. ADB

Installeer GNU/Linux

Om die toepassing te bou, kan u enige ARM-Linux-versoenbare samesteller gebruik. Ons sal SourceryCodeBenchLiteARM GNU/Linuxtranslater gebruik wat beskikbaar is vir aflaai by skakel.

Om te verseker dat alle komponente korrek geïnstalleer is, sal ek 'n paar skermkiekies van die installasieproses laat. In beginsel is daar niks moeilik aan installasie nie.

Om te verseker dat alle komponente korrek geïnstalleer is, sal ek 'n paar skermkiekies van die installasieproses laat. In beginsel is daar niks moeilik aan installasie nie.

  1. Ons aanvaar die lisensie-ooreenkoms
    OpenLinux as deel van SIM7600E-H-modules
  2. Spesifiseer die installasiegids
    OpenLinux as deel van SIM7600E-H-modules
  3. Ons laat die nodige komponente onveranderd
    OpenLinux as deel van SIM7600E-H-modules
  4. Los dit soos dit is
    OpenLinux as deel van SIM7600E-H-modules
  5. Verskeie kere "Volgende", "Installeer" en basies dit is dit
    OpenLinux as deel van SIM7600E-H-modules

Installeer Cygwin

Verder, vir ontwikkeling, sal jy 'n stel biblioteke en nutsprogramme van die verskafde stel benodig Cygwin. Alles is eenvoudig hier, die huidige weergawe van Cygwin kan gratis afgelaai word op die amptelike webwerf van die projek; met die skryf hiervan was weergawe 3.1.5 beskikbaar, wat is wat ons gebruik het toe ons die materiaal voorberei het.

Daar is niks ingewikkeld om Cygwin te installeer nie, die enigste ding wat u hoef te kies is 'n spieël waaruit die installeerder die nodige lêers sal aflaai, enige een sal kies en dit installeer, sowel as 'n stel nutsprogramme en biblioteke, wat alle beskikbare biblioteke en nutsprogramme gekies.

Die installering van bestuurders

Nadat die module aan die rekenaar gekoppel is, sal jy drywers moet installeer. Dit kan van jou verspreider aangevra word (aanbeveel). Ek beveel nie aan om op jou eie op die internet te soek nie, want ... Dit kan baie tyd neem om uit te vind wat die toestelkonflik veroorsaak het.

OpenLinux as deel van SIM7600E-H-modules

Onder die geselekteerde hawens sien ons die volgende:

Windows
Linux
Beskrywing

SimTech HS-USB Diagnostiek
USB-reeks
Diagnostiese koppelvlak

SimTech HS-USB NMEA
USB-reeks
GPS NMEA-koppelvlak

SimTech HS-USB AT Poort
USB-reeks
AT-poort-koppelvlak

SimTech HS-USB-modem
USB-reeks
Modempoort-koppelvlak

SimTech HS-USB Oudio
USB-reeks
USB Audio Interface

SimTech HS-USB WWAN-adapter
USB Net
NDIS WWAN-koppelvlak

Android Saamgestelde ADB-koppelvlak
USB ADB
Android voeg ontfoutpoort by

Soos u waarskynlik opgemerk het, is daar geen USB ADB tussen die poorte in die skermkiekie nie, dit is omdat die ADB-poort in die module by verstek gesluit is en u dit moet aktiveer deur die opdrag 'AT+CUSBADB=1' na die AT te stuur poort van die module en herlaai dit (dit kan gedoen word met die opdrag 'AT+CRESET').

As gevolg hiervan kry ons die gewenste koppelvlak in die toestelbestuurder:

OpenLinux as deel van SIM7600E-H-modules

Ons is klaar met die drywers, kom ons gaan aan na ADB.

Installeer ADB

Gaan na die amptelike Android-ontwikkelaarwebwerf skakel. Ons sal nie die lywige Android Studio aflaai nie; ons benodig net die opdragreël, beskikbaar vir aflaai via die "Download SDK Platform-Tools for Windows"-skakel.

OpenLinux as deel van SIM7600E-H-modules

Laai die resulterende argief af en pak dit uit na die wortel van skyf C.

omgewings veranderlikes

Nadat jy Cygwin geïnstalleer het, sal jy die pad Cygwin/bin/ by die ontwikkelingsomgewingsveranderlikes moet voeg (Klassieke Beheerpaneel → Stelsel → Gevorderde stelselinstellings → Gevorderd → Omgewingsveranderlikes → Stelselveranderlikes → Pad → Wysig) soos in die skermkiekie hieronder getoon:

OpenLinux as deel van SIM7600E-H-modules

Voeg eweneens die pad na die afgelaaide en uitgepakte ADB-argief by die wortel van skyf C.

OpenLinux as deel van SIM7600E-H-modules

Klik 'n paar keer op OK en herbegin die rekenaar.

Nadat u herlaai het, kan u maklik kyk of ADB reg werk deur die opdragreël oop te maak (Win+R → cmd) en die opdrag 'adb weergawe' in te tik. Ons kry so iets:

OpenLinux as deel van SIM7600E-H-modules

Kom ons koppel die module aan die rekenaar (as dit so gebeur het dat dit ontkoppel is) en kyk of ADB dit sien met die 'adb devices' opdrag:

OpenLinux as deel van SIM7600E-H-modules

Klaar, dit voltooi die konfigurasie van die verbinding met die module en ons kan die dop begin om met die module te werk.

OpenLinux as deel van SIM7600E-H-modules

Uitpak en samestelling van die SDK

Noudat ons toegang tot die dop het en met die module se opdragreël kan begin werk, kom ons probeer om ons eerste toepassing saam te stel om in die module te laai.

Baie mense het dalk probleme hiermee! Omdat Die module loop op die Linux-bedryfstelsel; om botsings te vermy wanneer kode onder Windows saamgestel word, is dit die beste om saam te stel in die oorspronklike omgewing - Linux.

Ons sal nie in detail uitwei oor hoe, in die afwesigheid van Linux en die begeerte om dit op u masjien te installeer, u dit op 'n virtuele masjien kan installeer nie. Ons sal VirtualBox gebruik, Ubuntu weergawe 20.04 installeer (die huidige weergawe ten tyde van skryf) en daaronder sal ons begin werk met samestellers, SDK's, ens.

Kom ons gaan na die Linux-omgewing en pak die argief wat van die verspreider ontvang is uit.

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

Gaan na die sim_open_sdk-gids en voeg die omgewing by:

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 

Ons bly in dieselfde gids en voer daaropvolgende opdragte uit terwyl ons daarin is.
Installeer die libncurses5-dev-biblioteek as dit nie geïnstalleer is nie:

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

Python, as dit ook nie geïnstalleer is nie:

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

en gcc:

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

Samestelling:

Nou moet ons verskeie lêers saamstel, ons voer die volgende opdragte opeenvolgend uit.

As die kernkonfigurasievenster tydens samestelling opduik, kies net Exit en keer terug na die konsole; ons hoef nie die kern nou op te stel nie.

Ons doen:

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

Stel selflaaiprogram saam:

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

Die samestelling van die kern:

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

Stel die wortellêerstelsel saam:

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

Vir Linux-gebruikers sal dit relevant wees om die modulebestuurder saam te stel:

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

Kom ons stel die demo saam:

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

Daarna sal verskeie nuwe lêers in die sim_open_sdk/output-gids verskyn:

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

Демо

Kom ons probeer die demo in ons module laai en kyk wat daaruit kom.

Download

In die sim_open_sdk-gids kan ons die lêer demo_app sien. Ons neem dit en dra dit oor na die wortel van stasie C op die rekenaar waaraan die module gekoppel is. Begin dan die Windows-opdragreël (Win+R -> cmd) en voer in:

C:>adb push C:demo_app /data/

Die konsole sal ons vertel:

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

Dit beteken dat die lêer suksesvol na die module gestuur is en al wat ons hoef te doen is om dit uit te voer. Laat ons nie huiwer nie.

Ons doen:

C:>adb shell

Ons brei die regte van die afgelaaide lêer uit:

/ # cdhmod 777 /data/demo_app

En ons hardloop:

/ # /data/demo_app

In dieselfde konsole sal die module vir ons die volgende vertel:

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 >   

Kom ons kyk na die IMEI van die module, voer 7 in (skakel oor na bevelmodus) en voer dan 5 in:

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 >

Op hierdie manier sal ons die IMEI van die module sien.

As 'n gevolgtrekking

Ek hoop ons kon 'n algemene idee kry van hoe om met die module te begin. In die volgende artikels gaan ons die vermoëns wat die SIM7600E-H-platform bied van nader bekyk, asook hoe jy jou eie toepassing op afstand in die module kan opdateer.

Ek nooi jou uit om vrae in die kommentaar te vra, en ook aan te dui watter aspek van die module se vermoëns in opvolgende artikels weerspieël moet word.

Bron: will.com

Voeg 'n opmerking