OpenLinux SIM7600E-H moduluen zati gisa

OpenLinux SIM7600E-H moduluen zati gisa

Aplikazio pertsonalizatu bat garatzeko eta moduluan kargatzeko mekanismoa eskuragarri dago Linux zein Windows sistema eragileetan. Artikulu honetan nola aztertuko dugu, emandako SDK-ko adibideak erabiliz SIMCom Haririk gabeko Soluzioak konpilatu eta kargatu aplikazio pertsonalizatu bat modulu batean.

Artikulua idatzi aurretik, nire ezagun batek, Linuxerako garatzetik urrun, SIM7600E-H modulurako nire aplikazio propioa garatzeko prozesua ahalik eta xehetasun gehienetan deskribatzeko gaiari heltzeko eskatu zidan. Materialaren aurkezpenaren irisgarritasuna ebaluatzeko irizpidea "uler dezadan" esaldia izan zen.

Gertatutakoa ezagutzera gonbidatzen zaitut.

Artikulua aldizka osatzen eta eguneratzen da

Aurreskua

Normalean, komunikazio zelularreko moduluak datu-transmisiorako, ahots-deietarako, SMS transmisiorako eta antzekoetarako soilik erabiltzen dira. Hori guztia kanpoko kontroleko mikrokontrolagailu batetik bidalitako AT komandoen bidez egiten da. Baina bada kanpotik kargatutako kode pertsonalizatua exekutatzeko aukera ematen duten moduluen kategoria bat. Zenbait kasutan, horrek nabarmen murrizten du gailuaren aurrekontu orokorra, mikrokontrolagailu sinpleago bat (eta aurrekontu berdina) plakan instalatzeko edo guztiz uzteko aukera emanez. Android edo Linux OS-ek kontrolatutako LTE moduluen etorrerarekin eta haien baliabide indartsuekin, posible da prozesadore ezagunen eskura dauden edozein zeregin konpontzea. Artikulu honetan SIM7600E-Hri buruz hitz egingo da, Linux OS-ek kontrolatua. Aplikazio exekutagarri bat nola deskargatu eta exekutatu aztertuko dugu.

Modu askotan, materiala "SIM7600 Open Linux development quide" dokumentuan oinarritzen da, baina gehigarri batzuk eta, lehenik eta behin, errusiar bertsioa erabilgarriak izango dira. Artikuluak modulua menperatzen hasi berri direnei demo aplikazioa nola deskargatu ulertzen lagunduko die eta hurrengo lanerako beharrezko trebetasunak eskaintzen.

SIM7600E-H nor den laburki

SIM7600E-H Qualcomm-en ARM Cortex-A7 1.3GHz prozesadorean eraikitako modulua da, Linux sistema eragilea (kernel 3.18.20) barnean duena, Europako (errusiakoa barne) maiztasun-bandekin lan egiteko gai den Cat onartzen duten 2G/3G/ LTE. .4, 150 Mbps-ko gehienezko deskarga-abiadura eta 50 Mbps-ko igoera-abiadura eskaintzen ditu. Periferiko aberatsek, industria-tenperatura-barruti batek eta GPS/GLONASS nabigazio integratuaren presentziak M2M eremuko soluzio modular moderno baterako edozein eskakizun estaltzen dute.

Sistemaren ikuspegi orokorra

SIM7600E-H modulua Linux sistema eragilean oinarritzen da (kernel 3.18.20). Era berean, fitxategi-sistema UBIFS (Unsorted Block Image File System) aldizkariko fitxategi-sisteman oinarrituta eraikitzen da.

Fitxategi-sistema honen ezaugarri garrantzitsuenak hauek dira:

  • partizioekin lan egiten du, haien tamaina sortu, ezabatu edo aldatzeko aukera ematen du;
  • grabaketa lerrokatzea bermatzen du multimedia-bolumen osoan zehar;
  • Bad blocks-ekin lan egiten du;
  • argindar etenaldi batean edo beste hutsegite batzuetan datuak galtzeko probabilitatea murrizten du;
  • erregistroak mantentzea.

Hartutako deskribapena beraz,, fitxategi sistema horren deskribapen zehatzagoa ere badago.

Horiek. Fitxategi-sistema mota hau ezin hobea da moduluaren funtzionamendu-baldintza gogoretarako eta potentzia-arazo posibleetarako. Baina horrek ez du esan nahi potentzia-baldintza ezegonkorrak moduluaren funtzionamendu-modua espero direnik; horrek gailuaren bideragarritasun handiagoa adierazten du soilik.

ΠŸΠ°ΠΌΡΡ‚ΡŒ

Memoria-eremuen banaketa honela eraikitzen da:

OpenLinux SIM7600E-H moduluen zati gisa

Hiru arlo nagusi nabarmendu behar dira:

ubi0:rootfs – irakurtzeko soilik eta Linux nukleoa bera dauka
ubi0:usrfs – erabiltzailearen programa eta datuak gordetzeko erabiltzen da batez ere
ubi0:cahcefs - FOTA eguneratzeetarako gordeta. Eskuragarri dagoen lekua ez bada nahikoa eguneratzea deskargatzeko, sistemak ezabatu egingo ditu erabiltzen ez diren fitxategiak eta, horrela, lekua askatuko du. Baina segurtasun arrazoiengatik, ez dituzu zure fitxategiak bertan jarri behar.

Hiru atalak honela banatuta daude:

Filesystem
Tamaina
Erabilitako
Available
Erabili %
gainean muntatua

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

ubi0:usrfs
10.5M
360K
10.1M
3%
/ datuak

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

Eskuragarri dagoen funtzionaltasuna

Goian esan bezala, modulua Qualcomm-en Cortex A7 chipsetean eraikita dago. Okerra litzateke errendimendu handiko nukleo bat ez ematea erabiltzailearen programa prozesatzeko eta gailuaren prozesadore nagusia deskargatzea, programaren zatiren bat modulura deskargatuz.

Erabiltzaile-programarako, hurrengo funtzionamendu-modu periferiko hauek egongo dira eskuragarri:

Pin zenbakia
izena
Sys GPIO zenbakia.
Ekintza lehenetsia
Funtzioa 1
Funtzioa 2
Pull
Esnatzeko etenaldia

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

22
SD_DATA0
-
SD-txartela
-
-
B-PD
-

23
SD_DATA1
-
SD-txartela
-
-
B-PD
-

24
SD_DATA2
-
SD-txartela
-
-
B-PD
-

25
SD_DATA3
-
SD-txartela
-
-
B-PD
-

26
SD_CLK
-
SD-txartela
-
-
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
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
-

Ados, zerrenda ikusgarria da eta kontutan izan: periferikoen zati bat modulua bideratzaile gisa funtzionatzeko erabiltzen da. Horiek. Horrelako modulu batean oinarrituta, Internet Wi-Fi bidez banatuko duen bideratzaile txiki bat egin dezakezu. Bide batez, SIM7600E-H-MIFI izeneko prest egindako irtenbide bat dago eta SIM7600E-H modulu soldatutako SIMXNUMXE-H modulu bat eta hainbat antena-pin dituen miniPCIE txartela da, horietako bat Wi-Fi antena bat da. Hala ere, hau aparteko artikulu baterako gaia da.

Asteazkena (ez asteko egun bat)

SIMCom Haririk gabeko Soluzioak garatzaileei Linux edo Windows-erako garapen-ingurunerik ezagunena aukeratzeko aukera eskaintzea. Modulu batean aplikazio exekutagarri bati buruz ari bagara, hobe da Windows aukeratzea, azkarragoa eta errazagoa izango da. Aplikazioen arkitektura konplexua eta ondorengo eguneratzeak espero badituzu, hobe da Linux erabiltzea. Linux ere behar dugu fitxategi exekutagarriak konpilatzeko, ondoren moduluan kargatzeko; makina birtual bat nahikoa da konpilatzeko.

Behar duzuna ez dago doan deskargatzeko: SDK bat, zure banatzaileari eska diezaiokezu.

Moduluarekin lan egiteko utilitateak instalatzea

Aurrerantzean, Windows-en lan egingo dugu erabiltzaile gehienentzat OS ezagunena bezala.

Beharrezko softwarea instalatu beharko dugu urrats erraz batzuetan moduluarekin lanean menperatzeko:

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

GNU/Linux instalatzen

Aplikazioa eraikitzeko, edozein ARM-Linux konpilatzaile bateragarri erabil dezakezu. Deskargatzeko eskuragarri dagoen SourceryCodeBenchLiteARM GNU/Linuxtranslater erabiliko dugu link.

Osagai guztiak behar bezala instalatuta daudela ziurtatzeko, instalazio-prozesuaren pantaila-argazki batzuk utziko ditut. Printzipioz, ez dago ezer konplikaturik instalazioan.

Osagai guztiak behar bezala instalatuta daudela ziurtatzeko, instalazio-prozesuaren pantaila-argazki batzuk utziko ditut. Printzipioz, ez dago ezer konplikaturik instalazioan.

  1. Lizentzia-kontratua onartzen dugu
    OpenLinux SIM7600E-H moduluen zati gisa
  2. Zehaztu instalazioaren karpeta
    OpenLinux SIM7600E-H moduluen zati gisa
  3. Beharrezko osagaiak aldatu gabe uzten ditugu
    OpenLinux SIM7600E-H moduluen zati gisa
  4. Utzi dagoen bezala
    OpenLinux SIM7600E-H moduluen zati gisa
  5. Hainbat aldiz "Hurrengoa", "Instalatu" eta, funtsean, hori da
    OpenLinux SIM7600E-H moduluen zati gisa

Cygwin instalatzen

Gainera, garapenerako, liburutegi eta utilitate multzo bat beharko duzu emandako multzotik cygwin. Hemen dena sinplea da, Cygwin-en egungo bertsioa doan deskargatu daiteke proiektuaren webgune ofizialean; idazteko momentuan 3.1.5 bertsioa zegoen eskuragarri, materiala prestatzerakoan erabili genuena.

Cygwin instalatzean ez dago ezer konplikaturik, hautatu behar duzun gauza bakarra instalatzaileak beharrezko fitxategiak deskargatuko dituen ispilu bat da, edozein hautatu eta instalatuko duen, baita utilitate eta liburutegi multzo bat ere, eskuragarri dauden liburutegi guztiak utziz eta aukeratutako utilitateak.

Gidariak instalatzea

Modulua ordenagailura konektatu ondoren, kontrolatzaileak instalatu beharko dituzu. Hauek zure banatzaileari eska diezazkiokezu (gomendatua). Ez dut gomendatzen zure kabuz Interneten bilaketa egitea, zeren... Baliteke denbora asko behar izatea gailuaren gatazka zerk eragin duen aurkitzeko.

OpenLinux SIM7600E-H moduluen zati gisa

Aukeratutako portuen artean honako hauek ikusten ditugu:

Windows
Linux
Description

SimTech HS-USB Diagnostikoak
USB seriea
Diagnostiko Interfazea

SimTech HS-USB NMEA
USB seriea
GPS NMEA Interfazea

SimTech HS-USB AT ataka
USB seriea
AT ataka Interfazea

SimTech HS-USB modema
USB seriea
Modem ataka Interfazea

SimTech HS-USB Audioa
USB seriea
USB audio interfazea

SimTech HS-USB WWAN egokitzailea
USB sarea
NDIS WWAN Interfazea

Android Composite ADB Interfazea
USB ADB
Android-ek gehitu arazketa-ataka

Seguruenik ohartu zinen bezala, pantaila-argazkiko portuen artean ez dago USB ADBrik, hau da, moduluko ADB ataka lehenespenez itxita dagoelako eta AT-era 'AT+CUSBADB=1' komandoa bidalita gaitu behar duzulako. moduluaren ataka eta berrabiarazi ('AT+CRESET' komandoarekin egin daiteke).

Ondorioz, nahi duzun interfazea lortuko dugu gailu kudeatzailean:

OpenLinux SIM7600E-H moduluen zati gisa

Gidariekin amaitu dugu, pasa gaitezen ADBra.

ADB instalatzen

Joan Android Developer webgune ofizialera link. Ez dugu Android Studio handia deskargatuko; komando-lerroa besterik ez dugu behar, deskargatzeko eskuragarri dagoen "Deskargatu SDK plataforma-tresnak Windows" estekan.

OpenLinux SIM7600E-H moduluen zati gisa

Deskargatu eta deskonprimitu sortutako artxiboa C unitatearen erroan.

Inguruko Aldagaiak

Cygwin instalatu ondoren, Cygwin/bin/ bidea gehitu beharko diezu garapen-inguruneko aldagaiei (Kontrol Panel Klasikoa β†’ Sistema β†’ Sistemaren ezarpen aurreratuak β†’ Aurreratua β†’ Inguruko aldagaiak β†’ Sistemaren aldagaiak β†’ Bidea β†’ Editatu) beheko pantaila-argazkian erakusten den moduan:

OpenLinux SIM7600E-H moduluen zati gisa

Era berean, gehitu deskargatutako eta desontziratutako ADB artxiboaren bidea C diskoaren erroan.

OpenLinux SIM7600E-H moduluen zati gisa

Sakatu Ados hainbat aldiz eta berrabiarazi ordenagailua.

Berrabiarazi ondoren, erraz egiaztatu dezakezu ADB behar bezala funtzionatzen ari den komando-lerroa irekiz (Win+R β†’ cmd) eta 'adb bertsioa' komandoa idatziz. Horrelako zerbait lortzen dugu:

OpenLinux SIM7600E-H moduluen zati gisa

Konektatu dezagun modulua PCra (deskonektatuta zegoela gertatuko balitz) eta egiaztatu ADB-k ikusten duen 'adb devices' komandoarekin:

OpenLinux SIM7600E-H moduluen zati gisa

Eginda, honek modulurako konexioaren konfigurazioa osatzen du eta shell-a abiarazi dezakegu moduluarekin lan egiteko.

OpenLinux SIM7600E-H moduluen zati gisa

SDK deskonpilatu eta konpilatu

Orain shell-era sarbidea dugula eta moduluaren komando-lerroarekin lanean has gaitezen, saia gaitezen gure lehen aplikazioa konpilatzen moduluan kargatzeko.

Jende askok zailtasunak izan ditzake honekin! Zeren Modulua Linux sistema eragilean exekutatzen da; Windows-en kodea konpilatzean talkak ekiditeko, hobe da jatorrizko ingurunean konpilatzea - ​​Linux.

Ez gara zehatz-mehatz azalduko nola, Linux ez dagoenean eta zure makinan instalatu nahi baduzu, makina birtualean instalatu dezakezun. VirtualBox erabiliko dugu, Ubuntu 20.04 bertsioa instalatuko dugu (idazteko unean uneko bertsioa) eta horren azpian konpiladoreekin, SDKekin eta abarrekin hasiko gara lanean.

Goazen Linux ingurunera eta deskonpaktatu banatzailetik jasotako artxiboa.

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

Joan sim_open_sdk direktoriora eta gehitu ingurunea:

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 

Karpeta berean geratzen gara eta hurrengo komandoak exekutatzen ditugu bertan gauden bitartean.
Instalatu libncurses5-dev liburutegia instalatu ez bada:

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

Python, instalatu ez bazen ere:

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

eta gcc:

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

Konpilazioa:

Orain hainbat fitxategi konpilatu behar ditugu, ondorengo komandoak sekuentzialki exekutatzen ditugu.

Konpilazioan nukleoaren konfigurazio leihoa agertzen bada, hautatu Irten eta itzuli kontsolara; ez dugu nukleoa orain konfiguratu beharrik.

Egiten dugu:

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

Abio-kargatzailea konpilatzen:

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

Nukleoa konpilatuz:

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

Konpilatu erro fitxategi-sistema:

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

Linux erabiltzaileentzat garrantzitsua izango da moduluaren kontrolatzailea konpilatzea:

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

Konpilatu dezagun demoa:

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

Horren ostean, hainbat fitxategi berri agertuko dira sim_open_sdk/output direktorioa:

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

demo

Saia gaitezen demoa gure moduluan kargatzen eta ea zer ateratzen den.

Deskargatu

sim_open_sdk direktorioan demo_app fitxategia ikus dezakegu. Hartu eta C diskoaren errora transferitzen dugu modulua konektatuta dagoen ordenagailuan. Ondoren, abiarazi Windows komando-lerroa (Win+R -> cmd) eta sartu:

C:>adb push C:demo_app /data/

Kontsolak esango digu:

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

Horrek esan nahi du fitxategia behar bezala bidali dela modulura eta egin behar dugun guztia exekutatu dela. Ez dezagun zalantzarik izan.

Egiten dugu:

C:>adb shell

Deskargatutako fitxategiaren eskubideak zabaltzen ditugu:

/ # cdhmod 777 /data/demo_app

Eta korrika egiten dugu:

/ # /data/demo_app

Kontsola berean, moduluak honako hau esango digu:

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 >   

Ikus dezagun moduluaren IMEI, sartu 7 (aldatu komando modura) eta ondoren 5 sartu:

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 >

Horrela moduluaren IMEI ikusiko dugu.

Ondorio gisa

Espero dut moduluarekin nola hasi ideia orokor bat lortu izana. Hurrengo artikuluetan, SIM7600E-H plataformak eskaintzen dituen gaitasunak aztertuko ditugu, baita moduluan zure aplikazioa urrunetik eguneratu dezakezun ere.

Iruzkinetan galderak egitera gonbidatzen zaitut, eta moduluaren gaitasunen zein alderdi islatu behar den hurrengo artikuluetan ere adierazi.

Iturria: www.habr.com

Gehitu iruzkin berria