OpenLinux salaku bagian tina modul SIM7600E-H

OpenLinux salaku bagian tina modul SIM7600E-H

Mékanisme pikeun ngembangkeun aplikasi khusus sareng ngamuat kana modul sayogi dina sistem operasi Linux sareng Windows. Dina artikel ieu kami baris nyandak katingal lengkep dina kumaha, ngagunakeun conto ti SDK disadiakeun Leyuran Wireless SIMCom compile sarta muka hiji aplikasi custom kana modul a.

Sateuacan nyerat tulisan, salah saurang kenalan kuring, jauh tina ngembangkeun Linux, naroskeun kuring pikeun ngadeukeutan masalah ngajelaskeun prosés ngembangkeun aplikasi kuring sorangan pikeun modul SIM7600E-H sacara jéntré. Kriteria pikeun meunteun aksesibilitas presentasi materi nyaéta frasa "supaya kuring ngartos."

Abdi ngajak anjeun kenal sareng anu kajantenan.

Artikel ieu rutin ditambahan sareng diropéa

Prelude

Biasana, modul komunikasi sélulér ngan ukur dianggo pikeun pangiriman data, telepon sora, pangiriman SMS sareng anu sanés. Sadaya ieu dilakukeun ngaliwatan paréntah AT dikirim ti mikrokontroler kontrol éksternal. Tapi aya kategori modul nu ngidinan Anjeun pikeun ngaéksekusi kode custom dimuat ti luar. Dina sababaraha kasus, ieu sacara signifikan ngurangan anggaran sakabéh alat, ngamungkinkeun Anjeun pikeun masang mikrokontroler basajan (jeung sarua anggaran) dina dewan atawa abandon eta sakabehna. Kalayan munculna modul LTE anu dikawasa ku Android atanapi Linux OS sareng sumber daya anu kuat, tiasa waé pikeun ngabéréskeun tugas anu sayogi pikeun prosesor anu populér. Artikel ieu bakal ngobrol ngeunaan SIM7600E-H, dikawasa ku OS Linux. Urang bakal ningali kumaha cara ngundeur sareng ngajalankeun aplikasi anu tiasa dieksekusi.

Ku sababaraha cara, bahan dumasar kana dokumén "SIM7600 Open Linux development quide", tapi sababaraha tambahan sareng, mimitina, versi Rusia bakal mangpaat. Tulisan bakal ngabantosan jalma anu nembé mimiti ngawasa modul ngartos kumaha cara ngaunduh aplikasi demo sareng nyayogikeun kaahlian anu dipikabutuh pikeun padamelan salajengna.

Sakeudeung ngeunaan saha SIM7600E-H

SIM7600E-H mangrupikeun modul anu diwangun dina prosésor ARM Cortex-A7 1.3GHz ti Qualcomm, gaduh sistem operasi Linux (kernel 3.18.20) di jero, tiasa damel sareng pita frékuénsi Éropa (kalebet Rusia) 2G/3G/ LTE anu ngadukung Cat. .4, nyadiakeun speeds download maksimum nepi ka 150Mbps sarta speeds unggah nepi ka 50Mbps. Periferal anu beunghar, kisaran suhu industri sareng ayana navigasi GPS / GLONASS diwangun-di nutupan sarat naon waé pikeun solusi modular modéren dina widang M2M.

Tinjauan sistem

Modul SIM7600E-H dumasar kana sistem operasi Linux (kernel 3.18.20). Sabalikna, sistem file diwangun dina dasar sistem file journaled UBIFS (Unsorted Block Image File System).

Fitur penting tina sistem file ieu kalebet:

  • dianggo sareng partisi, ngamungkinkeun anjeun nyiptakeun, mupus, atanapi ngarobih ukuranana;
  • mastikeun alignment ngarékam dina sakabéh volume média;
  • dianggo sareng blok Bad;
  • ngaminimalkeun kamungkinan leungitna data nalika pareum listrik atanapi kagagalan sanésna;
  • ngajaga log.

Katerangan dicandak di dieu, aya ogé katerangan anu langkung rinci ngeunaan sistem file sapertos kitu.

Jelema. Sistim file tipe ieu idéal pikeun kaayaan operasi kasar tina modul jeung kamungkinan masalah kakuatan. Tapi ieu sanés hartosna yén kaayaan kakuatan anu teu stabil bakal janten modeu operasi modul anu dipiharep, éta ngan ukur nunjukkeun viability alat anu langkung ageung.

ingetan

Sebaran wewengkon memori diwangun saperti kieu:

OpenLinux salaku bagian tina modul SIM7600E-H

Aya tilu wewengkon utama pikeun nyorot:

ubi0: rootfs - baca wungkul sareng ngandung kernel Linux sorangan
ubi0:usrfs – dipaké utamana pikeun program pamaké sarta neundeun data
ubi0: cahcefs - ditangtayungan pikeun apdet FOTA. Upami rohangan anu sayogi henteu cekap pikeun ngaunduh pembaruan, sistem bakal ngahapus file anu henteu dianggo sahingga ngosongkeun rohangan. Tapi pikeun alesan kaamanan, anjeun henteu kedah nempatkeun file anjeun di dinya.

Katiluna bagian disebarkeun saperti kieu:

sistem file
ukuran
dipaké
kasadia
Paké%
Dipasang dina

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

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

ubi0: caches
50.3M
20K
47.7M
0%
/ cache

fungsionalitas sadia

Sakumaha didadarkeun di luhur, modul diwangun dina chipset Cortex A7 ti Qualcomm. Ieu bakal salah mun teu nyadiakeun misalna hiji inti-kinerja tinggi pikeun ngolah program pamaké sarta offload processor utama alat ku offloading sababaraha bagian tina program kana modul.

Pikeun program pangguna, modeu operasi periferal di handap ieu bakal sayogi pikeun kami:

Pin No.
nami
Sys GPIO No.
Peta standar
Fungsi1
Fungsi2
Betot
Hudang ngaganggu

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

22
SD_DATA0
-
SD-Kartu
-
-
B-PD
-

23
SD_DATA1
-
SD-Kartu
-
-
B-PD
-

24
SD_DATA2
-
SD-Kartu
-
-
B-PD
-

25
SD_DATA3
-
SD-Kartu
-
-
B-PD
-

26
SD_CLK
-
SD-Kartu
-
-
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
sumberdaya alam
-
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
-

Satuju, daftar téh impressive jeung catetan: bagian tina périferal dipaké pikeun beroperasi modul salaku router a. Jelema. Dumasar kana modul sapertos kitu, anjeun tiasa ngadamel router leutik anu bakal nyebarkeun Internét liwat Wi-Fi. Ku jalan kitu, aya solusi siap-dijieun disebut SIM7600E-H-MIFI sarta mangrupa kartu miniPCIE kalawan modul SIM7600E-H soldered sarta sababaraha pin anteneu, salah sahijina nyaéta anteneu Wi-Fi. Nanging, ieu mangrupikeun topik pikeun tulisan anu misah.

Rebo (sanes dinten dina saminggu)

Leyuran Wireless SIMCom nyadiakeun kasempetan pikeun pamekar pikeun milih lingkungan ngembangkeun paling akrab pikeun Linux Ubuntu atawa Windows. Upami urang ngobrol ngeunaan hiji aplikasi anu tiasa dieksekusi dina modul, langkung saé milih Windows, éta bakal langkung gancang sareng langkung gampang. Upami arsitéktur aplikasi anu rumit sareng paningkatan anu salajengna diperkirakeun, langkung saé ngagunakeun Linux. Urang ogé peryogi Linux pikeun nyusun file anu tiasa dieksekusi pikeun ngamuat salajengna kana modul; mesin virtual cekap pikeun kompilasi.

Naon anu anjeun peryogikeun henteu sayogi pikeun diunduh - SDK, anu anjeun tiasa nyuhunkeun ti distributor anjeun.

Masang utilitas pikeun gawé bareng modul

Salajengna, urang bakal tiasa dianggo dina Windows salaku OS anu paling akrab pikeun kalolobaan pangguna.

Urang kedah masang parangkat lunak anu diperyogikeun dina sababaraha léngkah saderhana pikeun ngawasaan damel sareng modul:

  1. Lisénsi / Linux Ubuntu
  2. Cygwin
  3. Supir
  4. ADB

Masang GNU/Linux

Pikeun ngawangun aplikasi, anjeun tiasa nganggo kompiler anu cocog sareng ARM-Linux. Urang bakal ngagunakeun SourceryCodeBenchLiteARM GNU/Linuxtranslater sadia pikeun diundeur di link.

Pikeun mastikeun yén sadaya komponén anu dipasang leres, abdi bakal ninggalkeun sababaraha Potret layar tina prosés instalasi. Sacara prinsip, teu aya anu rumit dina pamasangan.

Pikeun mastikeun yén sadaya komponén anu dipasang leres, abdi bakal ninggalkeun sababaraha Potret layar tina prosés instalasi. Sacara prinsip, teu aya anu rumit dina pamasangan.

  1. Kami nampi perjanjian lisénsi
    OpenLinux salaku bagian tina modul SIM7600E-H
  2. Sebutkeun folder instalasi
    OpenLinux salaku bagian tina modul SIM7600E-H
  3. Urang ninggalkeun komponén perlu unchanged
    OpenLinux salaku bagian tina modul SIM7600E-H
  4. Ninggalkeun sakumaha anu kasebut
    OpenLinux salaku bagian tina modul SIM7600E-H
  5. Sababaraha kali "Salajengna", "Pasang" sareng dasarna éta
    OpenLinux salaku bagian tina modul SIM7600E-H

Masang Cygwin

Salajengna, pikeun pangwangunan, anjeun peryogi sakumpulan perpustakaan sareng utilitas tina set anu disayogikeun Cygwin. Sadayana saderhana di dieu, versi Cygwin ayeuna tiasa diunduh gratis dina situs wéb resmi proyék; dina waktos nyerat, versi 3.1.5 sayogi, anu kami dianggo nalika nyiapkeun bahan.

Teu aya anu pajeulit dina masang Cygwin, hiji-hijina hal anu anjeun kedah pilih nyaéta eunteung dimana pamasangan bakal ngaunduh file anu diperyogikeun, pilih anu mana waé sareng pasang, ogé sakumpulan utilitas sareng perpustakaan, nyésakeun sadaya perpustakaan anu sayogi sareng. Utiliti dipilih.

Masang supir

Saatos modul disambungkeun ka PC, anjeun bakal kedah install drivers. Ieu tiasa dipénta ti distributor anjeun (disarankeun). Abdi henteu nyarankeun milarian Internét nyalira, sabab ... Butuh loba waktu pikeun manggihan naon ngabalukarkeun konflik alat.

OpenLinux salaku bagian tina modul SIM7600E-H

Di antara palabuhan anu dipilih kami ningali ieu:

Windows
Linux
gambaran

SimTech HS-USB Diagnostics
Serial USB
Panganteur diagnostik

SimTech HS-USB NMEA
Serial USB
Panganteur GPS NMEA

SimTech HS-USB AT Port
Serial USB
AT port Interface

SimTech HS-USB Modem
Serial USB
Antarmuka port modem

SimTech HS-USB Audio
Serial USB
Antarbeungeut Audio USB

SimTech HS-USB WWAN adaptor
USB Net
NDIS WWAN Interface

Panganteur ADB Komposit Android
USB ADB
Android nambahkeun port debug

Salaku sigana mah anjeun perhatikeun, teu aya USB ADB diantara palabuhan dina screenshot, ieu sabab port ADB dina modul ditutup sacara standar sareng anjeun kedah ngaktipkeun ku ngirim paréntah 'AT + CUSBADB = 1' ka AT port modul jeung reboot eta (ieu bisa dipigawé ku paréntah 'AT + CRESET').

Hasilna, urang nampi antarmuka anu dipikahoyong dina manajer alat:

OpenLinux salaku bagian tina modul SIM7600E-H

Kami parantos réngsé sareng supir, hayu urang teraskeun kana ADB.

Masang ADB

Pindah ka situs wéb pamekar Android resmi link. Urang moal ngundeur gede pisan Android Studio, urang ngan butuh garis paréntah, sadia pikeun diundeur via link "Download SDK Platform-Tools pikeun Windows".

OpenLinux salaku bagian tina modul SIM7600E-H

Unduh sareng ngabongkar arsip anu hasilna kana akar drive C.

Variabel Lingkungan

Saatos masang Cygwin, anjeun kedah nambihan jalur Cygwin / bin / kana variabel lingkungan pangembangan (Panel Kontrol Klasik → Sistem → Setélan sistem canggih → Advanced → Variabel Lingkungan → Variabel Sistem → Jalur → Édit) sapertos anu dipidangkeun dina screenshot di handap ieu:

OpenLinux salaku bagian tina modul SIM7600E-H

Nya kitu, tambahkeun jalur kana arsip ADB anu diunduh sareng dibongkar kana akar drive C.

OpenLinux salaku bagian tina modul SIM7600E-H

Pencét OK sababaraha kali sareng balikan deui komputer.

Saatos rebooting, anjeun tiasa sacara gampil mariksa naha ADB jalanna leres ku muka garis paréntah (Win + R → cmd) sareng ngetik paréntah 'adb version'. Urang meunang hal kawas kieu:

OpenLinux salaku bagian tina modul SIM7600E-H

Hayu urang sambungkeun modul ka PC (upami kajantenan éta dipegatkeun) sareng pariksa naha ADB ningali éta nganggo paréntah 'adb devices':

OpenLinux salaku bagian tina modul SIM7600E-H

Rengse, ieu ngalengkepan konfigurasi sambungan kana modul jeung urang tiasa ngajalankeun cangkang pikeun digawe sareng modul.

OpenLinux salaku bagian tina modul SIM7600E-H

Ngabongkar sareng nyusun SDK

Ayeuna urang ngagaduhan aksés kana cangkang sareng tiasa ngamimitian damel sareng garis paréntah modul, hayu urang cobian nyusun aplikasi anu munggaran pikeun dimuat kana modul.

Loba jalma bisa ngalaman kasusah jeung ieu! Sabab Modulna dijalankeun dina sistem operasi Linux; pikeun ngahindarkeun tabrakan nalika nyusun kode dina Windows, langkung saé pikeun kompilasi di lingkungan asli - Linux.

Urang moal cicing di jéntré kumaha, dina henteuna Linux Ubuntu jeung kahayang pikeun masang eta dina mesin Anjeun, Anjeun bisa masang eta dina mesin virtual. Kami bakal nganggo VirtualBox, pasang versi Ubuntu 20.04 (versi ayeuna dina waktos nyerat) sareng di handapeunna kami bakal ngamimitian damel sareng kompiler, SDK, jsb.

Hayu urang angkat ka lingkungan Linux sareng ngabongkar arsip anu ditampi ti distributor.

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

Pindah ka diréktori sim_open_sdk sareng tambahkeun lingkungan:

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 

Kami tetep dina polder anu sami sareng ngalaksanakeun paréntah anu salajengna nalika aya.
Pasang perpustakaan libncurses5-dev upami teu acan dipasang:

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

Python, upami henteu dipasang:

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

jeung gcc:

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

Kompilasi:

Ayeuna urang kedah nyusun sababaraha file, urang ngajalankeun paréntah di handap ieu sacara berurutan.

Upami jandela konfigurasi kernel muncul nalika kompilasi, pilih Kaluar sareng uih deui ka konsol; urang henteu kedah ngonpigurasikeun kernel ayeuna.

Urang ngalakukeun:

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

Nyusun bootloader:

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

Nyusun kernel:

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

Kompilasi sistem file root:

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

Pikeun pangguna Linux, éta bakal relevan pikeun nyusun supir modul:

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

Hayu urang nyusun demo:

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

Saatos éta sababaraha file énggal bakal muncul dina diréktori sim_open_sdk/output:

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

Demo

Hayu urang cobian ngamuat demo kana modul urang sareng tingali naon anu kaluar tina éta.

Dijual

Dina diréktori sim_open_sdk urang tiasa ningali file demo_app. Kami nyandak sareng mindahkeun kana akar drive C dina PC dimana modul disambungkeun. Teras ngajalankeun garis paréntah Windows (Win + R -> cmd) sareng lebetkeun:

C:>adb push C:demo_app /data/

Konsol bakal ngabejaan urang:

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

Ieu ngandung harti yén file ieu hasil dikirim ka modul jeung sagala kudu urang pigawé nyaéta ngajalankeun eta. Hayu urang teu ragu.

Urang ngalakukeun:

C:>adb shell

Urang ngalegaan hak file anu diunduh:

/ # cdhmod 777 /data/demo_app

Sareng urang ngajalankeun:

/ # /data/demo_app

Dina konsol nu sarua, modul bakal ngabejaan urang kieu:

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 >   

Hayu urang tingali IMEI modul, lebetkeun 7 (pindah kana modeu paréntah) teras lebetkeun 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 >

Ku cara kieu urang bakal ningali IMEI modul.

dina kacindekan

Abdi ngarepkeun urang tiasa nampi ide umum ngeunaan cara ngamimitian modul. Dina artikel di handap ieu, urang bakal nyandak katingal ngadeukeutan dina kamampuhan nu platform SIM7600E-H nyadiakeun, kitu ogé kumaha anjeun jarak jauh tiasa ngamutahirkeun aplikasi sorangan dina modul.

Kuring ngajak anjeun naroskeun patarosan dina koméntar, sareng ogé nunjukkeun aspék kamampuan modul anu kedah ditingali dina tulisan-tulisan salajengna.

sumber: www.habr.com

Tambahkeun komentar