OpenLinux com a part dels mòduls SIM7600E-H

OpenLinux com a part dels mòduls SIM7600E-H

El mecanisme per desenvolupar una aplicació personalitzada i carregar-la al mòdul està disponible tant amb els sistemes operatius Linux com Windows. En aquest article farem una ullada detallada a com, utilitzant exemples de l'SDK proporcionat Solucions sense fil SIMCom compilar i carregar una aplicació personalitzada en un mòdul.

Abans d'escriure l'article, un dels meus coneguts, lluny de desenvolupar per a Linux, em va demanar que abordés el tema de descriure el procés de desenvolupament de la meva pròpia aplicació per al mòdul SIM7600E-H amb el màxim de detall possible. El criteri per avaluar l'accessibilitat de la presentació del material va ser la frase “perquè ho entengui”.

Us convido a conèixer el que va passar.

L'article es complementa i s'actualitza regularment

Pròleg

Normalment, els mòduls de comunicació mòbil només s'utilitzen per a la transmissió de dades, trucades de veu, transmissió de SMS i similars. Tot això es fa mitjançant ordres AT enviades des d'un microcontrolador de control extern. Però hi ha una categoria de mòduls que us permeten executar codi personalitzat carregat des de l'exterior. En alguns casos, això redueix significativament el pressupost general del dispositiu, cosa que us permet instal·lar un microcontrolador més senzill (i igualment pressupostari) a la placa o abandonar-lo del tot. Amb l'arribada dels mòduls LTE controlats per Android o Linux OS i els seus potents recursos, és possible resoldre qualsevol tasca que estigui disponible per als processadors populars. Aquest article parlarà de SIM7600E-H, controlat per Linux OS. Veurem com descarregar i executar una aplicació executable.

En molts aspectes, el material es basa en el document "SIM7600 Open Linux development quide", però algunes addicions i, en primer lloc, la versió russa seran útils. L'article ajudarà els que tot just comencen a dominar el mòdul a entendre com descarregar l'aplicació de demostració i proporcionar les habilitats necessàries per al treball posterior.

Breument sobre qui és SIM7600E-H

SIM7600E-H és un mòdul construït sobre el processador ARM Cortex-A7 a 1.3 GHz de Qualcomm, amb el sistema operatiu Linux (nucli 3.18.20) a l'interior, capaç de treballar amb bandes de freqüència europees (inclosa la russa) 2G/3G/LTE compatibles amb Cat. .4, que ofereix velocitats màximes de descàrrega de fins a 150 Mbps i velocitats de pujada de fins a 50 Mbps. Els perifèrics rics, un rang de temperatura industrial i la presència de navegació GPS/GLONASS integrat cobreixen qualsevol requisit per a una solució modular moderna en el camp M2M.

Visió general del Sistema

El mòdul SIM7600E-H es basa en el sistema operatiu Linux (nucli 3.18.20). Al seu torn, el sistema de fitxers es construeix sobre la base del sistema de fitxers de registre UBIFS (Unsorted Block Image File System).

Les característiques importants d'aquest sistema de fitxers inclouen:

  • funciona amb particions, us permet crear, eliminar o canviar-ne la mida;
  • garanteix l'alineació de l'enregistrament a tot el volum del suport;
  • funciona amb blocs dolents;
  • minimitza la probabilitat de pèrdua de dades durant un tall d'alimentació o altres errors;
  • mantenint registres.

Descripció presa per tant, també hi ha una descripció més detallada d'aquest sistema de fitxers.

Aquells. Aquest tipus de sistema de fitxers és ideal per a condicions de funcionament dures del mòdul i possibles problemes d'alimentació. Però això no vol dir que les condicions d'alimentació inestables siguin el mode de funcionament esperat del mòdul, només indica la major viabilitat del dispositiu.

Память

La distribució de les àrees de memòria es construeix de la següent manera:

OpenLinux com a part dels mòduls SIM7600E-H

Hi ha tres àrees principals a destacar:

ubi0:rootfs – només de lectura i conté el propi nucli de Linux
ubi0:usrfs – s'utilitza principalment per al programa d'usuari i l'emmagatzematge de dades
ubi0:cahcefs – reservat per a actualitzacions de FOTA. Si l'espai disponible no és suficient per descarregar l'actualització, el sistema suprimirà els fitxers no utilitzats i, per tant, alliberarà espai. Però per raons de seguretat, no hi hauríeu de col·locar els vostres fitxers.

Les tres seccions estan distribuïdes de la següent manera:

Sistema de fitxers
mida
Utilitzat
Disponible
Utilitza%
Muntat sobre

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

Funcionalitat disponible

Com s'ha esmentat anteriorment, el mòdul es basa en el chipset Cortex A7 de Qualcomm. Seria incorrecte no proporcionar un nucli d'alt rendiment per processar el programa d'usuari i descarregar el processador principal del dispositiu descarregant alguna part del programa al mòdul.

Per al programa d'usuari, estaran disponibles els següents modes de funcionament perifèrics:

Pin núm.
Nom
Sys GPIO núm.
Acció per defecte
Funció 1
Funció 2
Jale
Interrupció del despertar

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
-
Targeta SD
-
-
B-PD
-

22
SD_DATA0
-
Targeta SD
-
-
B-PD
-

23
SD_DATA1
-
Targeta SD
-
-
B-PD
-

24
SD_DATA2
-
Targeta SD
-
-
B-PD
-

25
SD_DATA3
-
Targeta SD
-
-
B-PD
-

26
SD_CLK
-
Targeta SD
-
-
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
ESTAT
GPIO_52
Estat
GPIO
Estat
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
Estratègia en temps real
-
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
DTRMés
-
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
-

D'acord, la llista és impressionant i nota: part dels perifèrics s'utilitzen per fer funcionar el mòdul com a encaminador. Aquells. A partir d'aquest mòdul, podeu crear un petit encaminador que distribuirà Internet mitjançant Wi-Fi. Per cert, hi ha una solució ja feta anomenada SIM7600E-H-MIFI i és una targeta miniPCIE amb un mòdul SIM7600E-H soldat i diversos pins d'antena, un d'ells és una antena Wi-Fi. Tanmateix, aquest és un tema per a un article separat.

Dimecres (no un dia de la setmana)

Solucions sense fil SIMCom ofereixen l'oportunitat als desenvolupadors de triar l'entorn de desenvolupament més familiar per a Linux o Windows. Si estem parlant d'una aplicació executable en un mòdul, és millor triar Windows, serà més ràpid i fàcil. Si espereu una arquitectura d'aplicació complexa i actualitzacions posteriors, és millor utilitzar Linux. També necessitem Linux per compilar fitxers executables per a la posterior càrrega al mòdul, una màquina virtual és suficient per a la compilació.

El que necessiteu no es pot descarregar gratuïtament: un SDK, que podeu sol·licitar al vostre distribuïdor.

Instal·lació d'utilitats per treballar amb el mòdul

A partir d'ara, treballarem amb Windows com el sistema operatiu més conegut per a la majoria dels usuaris.

Haurem d'instal·lar el programari necessari en uns senzills passos per dominar posteriorment el treball amb el mòdul:

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

Instal·lació de GNU/Linux

Per crear l'aplicació, podeu utilitzar qualsevol compilador compatible amb ARM-Linux. Utilitzarem SourceryCodeBenchLiteARM GNU/Linuxtranslater disponible per descarregar a enllaç.

Per assegurar-vos que tots els components estan instal·lats correctament, deixaré algunes captures de pantalla del procés d'instal·lació. En principi, no hi ha res complicat en la instal·lació.

Per assegurar-vos que tots els components estan instal·lats correctament, deixaré algunes captures de pantalla del procés d'instal·lació. En principi, no hi ha res complicat en la instal·lació.

  1. Recuperació de la llicència de Prinimaem
    OpenLinux com a part dels mòduls SIM7600E-H
  2. Especifiqueu la carpeta d'instal·lació
    OpenLinux com a part dels mòduls SIM7600E-H
  3. Deixem els components necessaris sense canvis
    OpenLinux com a part dels mòduls SIM7600E-H
  4. Deixa-ho tal com està
    OpenLinux com a part dels mòduls SIM7600E-H
  5. Diverses vegades "Següent", "Instal·lar" i bàsicament això és tot
    OpenLinux com a part dels mòduls SIM7600E-H

Instal·lant Cygwin

A més, per al desenvolupament, necessitareu un conjunt de biblioteques i utilitats del conjunt proporcionat Cygwin. Aquí tot és senzill, la versió actual de Cygwin es pot descarregar gratuïtament a la pàgina web oficial del projecte en el moment d'escriure la versió 3.1.5, que és la que hem utilitzat a l'hora de preparar el material;

No hi ha res complicat instal·lar Cygwin, l'únic que cal seleccionar és un mirall des del qual l'instal·lador baixarà els fitxers necessaris, seleccionarà qualsevol i l'instal·larà, així com un conjunt d'utilitats i biblioteques, deixant totes les biblioteques disponibles i utilitats seleccionades.

Instal·lació dels controladors

Un cop connectat el mòdul a l'ordinador, haureu d'instal·lar els controladors. Aquests es poden demanar al vostre distribuïdor (recomanat). No us recomano que cerqueu a Internet pel vostre compte, perquè... Pot ser que trigui molt de temps trobar què ha causat el conflicte del dispositiu.

OpenLinux com a part dels mòduls SIM7600E-H

Entre els ports seleccionats veiem el següent:

Windows
Linux
Descripció

Diagnòstic SimTech HS-USB
Sèrie USB
Interfície de diagnòstic

SimTech HS-USB NMEA
Sèrie USB
Interfície GPS NMEA

Port SimTech HS-USB AT
Sèrie USB
Interfície del port AT

Mòdem SimTech HS-USB
Sèrie USB
Interfície del port del mòdem

Àudio SimTech HS-USB
Sèrie USB
Interfície d'àudio USB

Adaptador SimTech HS-USB WWAN
Xarxa USB
Interfície NDIS WWAN

Interfície ADB composta d'Android
USB ADB
Android afegeix un port de depuració

Com probablement heu notat, no hi ha cap USB ADB entre els ports de la captura de pantalla, això es deu al fet que el port ADB del mòdul està tancat per defecte i heu d'habilitar-lo enviant l'ordre 'AT+CUSBADB=1' a l'AT. port del mòdul i reinicieu-lo (això es pot fer amb l'ordre 'AT+CRESET').

Com a resultat, obtenim la interfície desitjada al gestor de dispositius:

OpenLinux com a part dels mòduls SIM7600E-H

Hem acabat amb els conductors, passem a ADB.

Instal·lació d'ADB

Aneu al lloc web oficial de desenvolupadors d'Android enllaç. No baixarem el voluminós Android Studio, només necessitem la línia d'ordres, disponible per a la baixada a través de l'enllaç "Descarrega SDK Platform-Tools for Windows".

OpenLinux com a part dels mòduls SIM7600E-H

Baixeu i descomprimiu l'arxiu resultant a l'arrel de la unitat C.

Variables del mediambient

Després d'instal·lar Cygwin, haureu d'afegir el camí Cygwin/bin/ a les variables d'entorn de desenvolupament (Tauler de control clàssic → Sistema → Configuració avançada del sistema → Avançat → Variables d'entorn → Variables del sistema → Camí → Edita) tal com es mostra a la captura de pantalla següent:

OpenLinux com a part dels mòduls SIM7600E-H

De la mateixa manera, afegiu el camí a l'arxiu ADB descarregat i descomprimit a l'arrel de la unitat C.

OpenLinux com a part dels mòduls SIM7600E-H

Feu clic a D'acord diverses vegades i reinicieu l'ordinador.

Després de reiniciar, podeu comprovar fàcilment si ADB funciona correctament obrint la línia d'ordres (Win+R → cmd) i escrivint l'ordre "adb version". Tenim alguna cosa com això:

OpenLinux com a part dels mòduls SIM7600E-H

Connectem el mòdul a l'ordinador (si va passar que estava desconnectat) i comprovem si ADB el veu amb l'ordre 'dispositius adb':

OpenLinux com a part dels mòduls SIM7600E-H

Fet, això completa la configuració de la connexió al mòdul i podem llançar l'intèrpret d'ordres per treballar amb el mòdul.

OpenLinux com a part dels mòduls SIM7600E-H

Desempaquetant i compilant l'SDK

Ara que tenim accés a l'intèrpret d'ordres i podem començar a treballar amb la línia d'ordres del mòdul, intentem compilar la nostra primera aplicació per carregar-la al mòdul.

Molta gent pot tenir dificultats amb això! Perquè El mòdul s'executa amb el sistema operatiu Linux per evitar col·lisions en compilar codi a Windows, el millor és compilar a l'entorn natiu: Linux.

No ens detenem en detall en com, en absència de Linux i la voluntat d'instal·lar-lo a la vostra màquina, podeu instal·lar-lo en una màquina virtual. Utilitzarem VirtualBox, instal·larem la versió d'Ubuntu 20.04 (la versió actual en el moment d'escriure) i sota ella començarem a treballar amb compiladors, SDK, etc.

Anem a l'entorn Linux i desempaquetem l'arxiu rebut del distribuïdor.

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

Aneu al directori sim_open_sdk i afegiu l'entorn:

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 

Ens quedem a la mateixa carpeta i executem ordres posteriors mentre hi estem.
Instal·leu la biblioteca libncurses5-dev si no s'ha instal·lat:

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

Python, si tampoc s'ha instal·lat:

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

i gcc:

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

Recopilació:

Ara hem de compilar diversos fitxers, executem les ordres següents de forma seqüencial.

Si apareix la finestra de configuració del nucli durant la compilació, només cal que seleccioneu Sortir i torneu a la consola, no cal que configurem el nucli ara.

Nosaltres fem:

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

Compilant el carregador d'arrencada:

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

Compilant el nucli:

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

Compileu el sistema de fitxers arrel:

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

Per als usuaris de Linux, serà rellevant compilar el controlador del mòdul:

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

Compilem la demostració:

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

Després d'això, apareixeran diversos fitxers nous al directori sim_open_sdk/output:

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

Demostració

Anem a provar de carregar la demostració al nostre mòdul i veure què en surt.

Descarregar

Al directori sim_open_sdk podem veure el fitxer demo_app. L'agafem i el transferim a l'arrel de la unitat C del PC al qual està connectat el mòdul. A continuació, inicieu la línia d'ordres de Windows (Win+R -> cmd) i introduïu:

C:>adb push C:demo_app /data/

La consola ens dirà:

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

Això vol dir que el fitxer s'ha enviat correctament al mòdul i només hem d'executar-lo. No ho dubtem.

Nosaltres fem:

C:>adb shell

Ampliem els drets del fitxer descarregat:

/ # cdhmod 777 /data/demo_app

I correm:

/ # /data/demo_app

A la mateixa consola, el mòdul ens dirà el següent:

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 >   

Vegem l'IMEI del mòdul, introduïu 7 (canviar al mode d'ordres) i després introduïu 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 >

D'aquesta manera veurem l'IMEI del mòdul.

Com a conclusió

Espero que hem pogut fer-nos una idea general de com començar amb el mòdul. En els articles següents, analitzarem amb més detall les capacitats que ofereix la plataforma SIM7600E-H, així com com podeu actualitzar de forma remota la vostra pròpia aplicació al mòdul.

Us convido a fer preguntes als comentaris i també a indicar quin aspecte de les capacitats del mòdul s'hauria de reflectir en els articles posteriors.

Font: www.habr.com

Afegeix comentari