
Le mécanisme de développement d'applications personnalisées et de téléchargement sur le module est disponible à la fois sous Linux et Windows. Dans cet article, nous examinerons en détail comment utiliser les exemples du SDK fourni. compiler et télécharger une application personnalisée sur le module.
Avant de rédiger l'article, un de mes amis, qui n'est pas familier avec le développement sous Linux, m'a demandé d'aborder le sujet de la maniÚre la plus détaillée possible pour décrire le processus de développement de sa propre application pour le module SIM7600E-H. Le critÚre d'évaluation de la clarté du matériel était la phrase « afin que je comprenne ».
Je vous invite à découvrir le résultat.
L'article est réguliÚrement mis à jour et complété.
Prélude
GĂ©nĂ©ralement, les modules de communication cellulaire sont utilisĂ©s uniquement pour la transmission de donnĂ©es, les appels vocaux, l'envoi de SMS, etc. Tout cela se fait via des commandes AT envoyĂ©es depuis un microcontrĂŽleur de gestion externe. Cependant, il existe une catĂ©gorie de modules qui permettent d'exĂ©cuter du code personnalisĂ© chargĂ© de l'extĂ©rieur. Dans certains cas, cela rĂ©duit considĂ©rablement le budget global de l'appareil en permettant d'utiliser un microcontrĂŽleur plus simple (et donc moins coĂ»teux) ou mĂȘme de s'en passer entiĂšrement. Avec l'arrivĂ©e des modules LTE, gĂ©rĂ©s par un systĂšme d'exploitation Android ou Linux et leurs puissantes ressources, il est possible de rĂ©soudre n'importe quel problĂšme auquel font face les processeurs populaires. Cet article portera sur le SIM7600E-H, gĂ©rĂ© par un systĂšme d'exploitation Linux. Nous verrons comment charger et exĂ©cuter une application exĂ©cutable.
En grande partie, ce matĂ©riel est basĂ© sur le document âSIM7600 Open Linux development guideâ, mais certaines ajouts, en particulier la version en russe, seront utiles. Cet article aidera ceux qui commencent Ă se familiariser avec le module Ă charger l'application de dĂ©monstration et fournira les compĂ©tences nĂ©cessaires pour un travail ultĂ©rieur.
En bref, qui est le SIM7600E-H
Le SIM7600E-H est un module basé sur un processeur ARM Cortex-A7 à 1,3 GHz de Qualcomm, doté d'un systÚme d'exploitation Linux (noyau 3.18.20), capable de fonctionner avec les bandes de fréquences 2G/3G/LTE en Europe (y compris en Russie), prenant en charge Cat.4 et offrant une vitesse de téléchargement maximale de 150 Mbps et un débit de 50 Mbps. Sa riche connectivité, sa plage de température industrielle et la présence d'un GPS/GLONASS intégré répondent à toutes les exigences d'une solution modulaire moderne dans le domaine M2M.
Aperçu du systÚme
Le module SIM7600E-H est basé sur un systÚme d'exploitation Linux (noyau 3.18.20). à son tour, le systÚme de fichiers est construit sur une base de systÚme de fichiers journalisé UBIFS (Unsorted Block Image File System).
Les principales caractéristiques de ce systÚme de fichiers incluent :
- travail avec des partitions, permettant de créer, supprimer ou redimensionner celles-ci ;
- assure l'alignement des écritures sur l'ensemble du support ;
- gÚre les blocs défectueux ;
- minimise le risque de perte de données lors d'une coupure de courant ou d'autres pannes ;
- tenue de journaux.
La description provient , oĂč il est mentionnĂ© plus en dĂ©tail Ă propos de ce systĂšme de fichiers.
C'est-à -dire que ce type de systÚme de fichiers est idéal pour des conditions de travail difficiles du module et les éventuels problÚmes d'alimentation. Mais cela ne signifie pas que les conditions d'alimentation instables seront considérées comme le mode de fonctionnement prévu du module, cela indique seulement une plus grande durabilité de l'appareil.
Mémoire
La répartition des zones de mémoire est faite comme suit :

Il faut ĐČŃЎДлОŃŃ ŃŃĐž ĐŸŃĐœĐŸĐČĐœŃŃ
ĐŸĐ±Đ»Đ°ŃŃĐž:
ubi0:rootfs â accessible en lecture seule et contient le noyau Linux lui-mĂȘme
ubi0:usrfs â principalement utilisĂ© pour les programmes utilisateurs et le stockage de donnĂ©es
ubi0:cachefs â rĂ©servĂ© aux mises Ă jour FOTA. Si l'espace disponible est insuffisant pour tĂ©lĂ©charger une mise Ă jour, le systĂšme supprimera les fichiers non utilisĂ©s pour libĂ©rer de l'espace. Mais pour des raisons de sĂ©curitĂ©, il est dĂ©conseillĂ© d'y placer vos fichiers.
Les trois partitions sont réparties comme suit :
SystĂšme de fichiers
Taille
Utilisé
Disponible
Utilisation%
Monté sur
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
Fonctionnalités disponibles
Comme mentionnĂ© prĂ©cĂ©demment, le module est construit sur la base du chipset Cortex A7 de Qualcomm. Il serait regrettable de ne pas fournir un cĆur aussi performant pour le traitement des programmes utilisateurs et soulager le processeur principal de l'appareil en dĂ©lĂ©gant une partie du programme au module.
Pour le programme utilisateur, les modes d'exploitation suivants des périphériques seront disponibles :
Pin No.
Nom
Sys GPIO No.
Action par défaut
Func1
Func2
Tirer
Interruption de réveil
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
â
Carte SD
â
â
B-PD
â
22
SD_DATA0
â
Carte SD
â
â
B-PD
â
23
SD_DATA1
â
Carte SD
â
â
B-PD
â
24
SD_DATA2
â
Carte SD
â
â
B-PD
â
25
SD_DATA3
â
Carte SD
â
â
B-PD
â
26
SD_CLK
â
Carte 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
STATUS
GPIO_52
Statut
GPIO
Statut
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
â
Reconnaissez qu'il s'agit d'une liste impressionnante et notez que certains pĂ©riphĂ©riques sont utilisĂ©s pour faire fonctionner le module en tant que routeur. Autrement dit, un petit routeur peut ĂȘtre créé sur la base de ce module, qui distribuera Internet via Wi-Fi. D'ailleurs, une solution prĂȘte Ă l'emploi existe dĂ©jĂ , elle s'appelle SIM7600E-H-MIFI et consiste en une carte miniPCIe, avec le module SIM7600E-H soudĂ© et plusieurs sorties d'antenne, l'une d'elles Ă©tant l'antenne Wi-Fi. Cela dit, c'est un sujet pour un autre document.
Environnement (pas un jour de la semaine)
offrent la possibilité aux développeurs de choisir l'environnement de développement le plus familier sous Linux ou Windows. S'il s'agit d'une seule application exécutable sur le module, il est préférable de choisir Windows, cela sera plus rapide et plus simple. Si une architecture d'application complexe et de futures mises à jour sont prévues, il vaut mieux utiliser Linux. Nous aurons également besoin de Linux pour compiler les fichiers exécutables à charger ultérieurement dans le module, la compilation pourra se faire via une machine virtuelle.
En ce qui vous concerne, la seule chose qui sera nécessaire et non disponible en téléchargement libre est le SDK, que vous pouvez demander à votre distributeur.
Installation des utilitaires pour travailler avec le module
Ici et par la suite, nous travaillerons sous Windows comme le systĂšme d'exploitation le plus familier pour la plupart des utilisateurs.
Nous devrons installer en quelques étapes simples le logiciel nécessaire pour maßtriser le travail avec le module :
- GNU/Linux
- Cygwin
- Pilotes
- ADB
Installation de GNU/Linux
Pour assembler l'application, vous pouvez utiliser n'importe quel compilateur compatible avec ARM-Linux. Nous allons utiliser le SourceryCodeBenchLiteARM GNU/Linux disponible en téléchargement sur .
Pour que tous les composants soient installés correctement, je vais laisser quelques captures d'écran du processus d'installation. En principe, il n'y a rien de compliqué dans l'installation.
Pour que tous les composants soient installés correctement, je vais laisser quelques captures d'écran du processus d'installation. En principe, il n'y a rien de compliqué dans l'installation.
- Accepter le contrat de licence

- Indiquer le dossier d'installation

- Laisser les composants nécessaires inchangés

- Laisser tel quel

- Quelques fois «Suivant», «Installer» et c'est tout

Installation de Cygwin
Ensuite, pour le dĂ©veloppement, vous aurez besoin d'un ensemble de bibliothĂšques et d'outils fournis par . C'est simple, la version actuelle de Cygwin peut ĂȘtre tĂ©lĂ©chargĂ©e gratuitement sur le site officiel du projet, au moment de la rĂ©daction de cet article, la version 3.1.5 Ă©tait disponible, c'est celle que nous avons utilisĂ©e pour la prĂ©paration du matĂ©riel.
L'installation de Cygwin n'est pas compliquée, la seule chose que vous devrez choisir est le miroir à partir duquel l'installateur téléchargera les fichiers nécessaires, choisissez-en un et installez, ainsi que l'ensemble des outils et bibliothÚques, laissez toutes les bibliothÚques et outils disponibles sélectionnés.
Installation des pilotes
AprĂšs que le module soit connectĂ© au PC, il sera nĂ©cessaire d'installer les pilotes. Vous pouvez les demander Ă votre distributeur (recommandĂ©). Je ne recommande pas de chercher sur Internet par vous-mĂȘme, car cela peut prendre beaucoup de temps pour trouver ce qui a causĂ© un conflit d'appareils.

Parmi les ports dédiés, nous voyons les suivants :
Windows
Linux
Description
SimTech HS-USB Diagnostics
USB Serial
Diagnostic Interface
SimTech HS-USB NMEA
USB Serial
Interface GPS NMEA
SimTech HS-USB AT Port
USB Serial
Interface port AT
SimTech HS-USB Modem
USB Serial
Interface port Modem
SimTech HS-USB Audio
USB Serial
Interface audio USB
SimTech HS-USB WWAN Adapter
Net USB
Interface NDIS wwan
Interface ADB composite Android
USB ADB
Ajouter un port de débogage Android
Comme vous l'avez sĂ»rement remarquĂ©, parmi les ports dans la capture d'Ă©cran, il n'y a pas d'USB ADB, c'est parce que le port ADB dans le module est fermĂ© par dĂ©faut et doit ĂȘtre activĂ© en envoyant la commande âAT+CUSBADB=1â dans le port AT du module et le redĂ©marrer (cela peut ĂȘtre fait avec la commande âAT+CRESETâ).
Nous obtiendrons ainsi l'interface requise dans le gestionnaire de périphériques :

Nous avons terminé avec les pilotes, passons à ADB.
Installation de l'ADB
Accédez au site officiel des développeurs Android sur . Ne téléchargeons pas le volumineux Android Studio, une simple ligne de commande disponible pour téléchargement via le lien «Télécharger les outils de plate-forme SDK pour Windows» suffira.

Téléchargez et extrayez l'archive obtenue à la racine du disque C.
Variables d'environnement
AprĂšs l'installation de Cygwin, il sera nĂ©cessaire d'ajouter le chemin Cygwin/bin/ dans les variables d'environnement de dĂ©veloppement (Panneau de configuration classique â SystĂšme â ParamĂštres systĂšme avancĂ©s â AvancĂ© â Variables d'environnement â Variables systĂšme â Path â Modifier) comme indiquĂ© sur la capture d'Ă©cran ci-dessous :

De la mĂȘme maniĂšre, ajoutons le chemin de l'archive ADB tĂ©lĂ©chargĂ©e et dĂ©compressĂ©e Ă la racine du disque C.

Cliquez plusieurs fois sur OK et redémarrez l'ordinateur.
AprĂšs le redĂ©marrage, vous pouvez facilement vĂ©rifier si ADB fonctionne correctement en ouvrant l'invite de commandes (Win+R â cmd) et en tapant la commande 'adb version'. Vous obtiendrez un rĂ©sultat semblable Ă celui-ci :

Connectez le module au PC (s'il a été déconnecté) et vérifiez si ADB le détecte avec la commande 'adb devices' :

C'est fait, la configuration de la connexion au module est terminée et nous pouvons lancer le shell pour travailler avec le module.

Décompression et compilation du SDK
AprÚs avoir accédé au shell et pu commencer à travailler avec l'invite de commandes du module, essayons de compiler notre premiÚre application pour l'envoyer au module.
Cela peut poser des problĂšmes Ă beaucoup ! Ătant donnĂ© que le module fonctionne sous un systĂšme d'exploitation Linux, pour Ă©viter les conflits lors de la compilation du code sous Windows, il est prĂ©fĂ©rable de compiler dans un environnement natif - Linux.
Nous ne nous attarderons pas sur la façon d'installer Linux dans un environnement virtuel si vous ne souhaitez pas l'installer sur votre machine. Nous allons utiliser VirtualBox, installer Ubuntu version 20.04 (la version actuelle au moment de la rédaction de l'article) et c'est sous cette version que nous commencerons à travailler avec les compilateurs, le SDK, etc.
Passons à l'environnement Linux et décompressons l'archive obtenue du distributeur.
simcom@VirtualBox:~/Desktop/OpenLinux$ sudo tar -xzf MDM9x07_OL_2U_22_V1.12_191227.tar.gz Allons dans le répertoire sim_open_sdk et ajoutons l'environnement :
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 Restez dans ce mĂȘme dossier et exĂ©cutez les commandes suivantes en Ă©tant dans celui-ci.
Installez la bibliothÚque libncurses5-dev si elle n'est pas déjà installée :
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get update && sudo apt-get install libncurses5-dev -yPython, s'il n'est pas également installé :
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install python -yet gcc :
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install gccCompilation :
Nous devrons maintenant compiler plusieurs fichiers, exécutons successivement les commandes suivantes.
Si une fenĂȘtre de configuration du noyau apparaĂźt lors de la compilation, il suffit de choisir Sortir et de revenir Ă la console, nous n'avons pas besoin de configurer le noyau pour l'instant.
Exécutons :
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ makeNous compilons le bootloader :
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make abootNous compilons le noyau :
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_menuconfig
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel
Nous compilons le systĂšme de fichiers racine :
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make rootfsPour les utilisateurs Linux, il sera essentiel de compiler le module du pilote :
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_moduleNous allons compiler une démo :
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make demoAprÚs cela, plusieurs nouveaux fichiers apparaßtront dans le répertoire sim_open_sdk/output :
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ ls output/
appsboot.mbn boot.img demo_app helloworld system.img
Démo
Essayons de charger la démonstration dans notre module et voyons ce que cela donne.
Chargement
Dans le répertoire sim_open_sdk, nous pouvons voir le fichier demo_app. Prenons-le et déplaçons-le à la racine du disque C sur le PC auquel le module est connecté. Ensuite, nous lançons l'invite de commandes Windows (Win+R -> cmd) et entrons :
C:>adb push C:demo_app /data/La console nous informe :
C:demo_app: 1 fichier envoyé, 0 ignorés. 151,4 Mo/s (838900 octets en 0,005s)Cela signifie que le fichier a été envoyé avec succÚs au module et il ne nous reste plus qu'à le lancer. Ne perdons pas de temps.
Exécutons :
C:>adb shellĂlargissons les droits du fichier tĂ©lĂ©chargĂ© :
/ # cdhmod 777 /data/demo_appEt lançons-le :
/ # /data/demo_appDans cette mĂȘme console, le module nous informera de ce qui suit :
SDK_VER : SIM_SDK_VER_20191205
DEMO_VER: SIM_SDK_VER_20191205
Veuillez sélectionner une option à tester parmi les éléments listés ci-dessous.
1. WIFI 2. APPEL VOCALE
3. APPEL DE DONNĂES 4. SMS
5. WDS(APN) 6. NAS
7. AT 8. OTA
9. TTS 10. GPIO
11. GPS 12. Bluetooth
13. TCP/UDP 14. Minuteur
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. SORTIR
Option >
Voyons l'IMEI du module, entrons 7 (passage en mode commande) et ensuite entrons 5 :
Veuillez sélectionner une option à tester parmi les éléments listés ci-dessous.
1. WIFI 2. APPEL VOCALE
3. APPEL DE DONNĂES 4. SMS
5. WDS(APN) 6. NAS
7. AT 8. OTA
9. TTS 10. GPIO
11. GPS 12. Bluetooth
13. TCP/UDP 14. Minuteur
15. ADC 16. I2C
17. UIM(Carte SIM) 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. QUITTER
Option > 7
Veuillez sélectionner une option à tester parmi les éléments listés ci-dessous.
1. obtenir la Version du Module 2. obtenir CSQ
3. obtenir CREG 4. obtenir ICCID
5. obtenir IMEI 6. obtenir CIMI
99. retour
Option > 5
IMEI : 867584030090489
Veuillez sélectionner une option à tester parmi les éléments listés ci-dessous.
1. obtenir la Version du Module 2. obtenir CSQ
3. obtenir CREG 4. obtenir ICCID
5. obtenir IMEI 6. obtenir CIMI
99. retour
Option >
Nous verrons ainsi l'IMEI du module.
En conclusion
J'espÚre que nous avons réussi à dresser un aperçu général de la façon de commencer à travailler avec le module. Dans les prochains articles, nous examinerons plus en détail les fonctionnalités offertes par la plateforme SIM7600E-H, ainsi que la maniÚre de mettre à jour à distance sa propre application dans le module.
Je vous invite Ă poser des questions dans les commentaires et Ă indiquer quel aspect des fonctionnalitĂ©s du module devrait ĂȘtre abordĂ© dans les prochains articles.
Source : habr.com





