OpenLinux minangka bagéan saka modul SIM7600E-H

OpenLinux minangka bagéan saka modul SIM7600E-H

Mekanisme kanggo ngembangake aplikasi khusus lan ngemot menyang modul kasedhiya ing sistem operasi Linux lan Windows. Ing artikel iki kita bakal njupuk dipikir rinci carane, nggunakake conto saka SDK kasedhiya Solusi Nirkabel SIMCom ngumpulake lan mbukak aplikasi khusus menyang modul.

Sadurunge nulis artikel kasebut, salah sawijining kenalanku, adoh saka ngembangake Linux, njaluk supaya aku nyedhaki masalah njlentrehake proses ngembangake aplikasi dhewe kanggo modul SIM7600E-H kanthi rinci. Kriteria kanggo netepake aksesibilitas presentasi materi yaiku ukara "supaya aku ngerti."

Aku ngajak sampeyan kenalan karo kedadeyan kasebut.

Artikel kasebut kanthi rutin ditambah lan dianyari

Pambuka

Biasane, modul komunikasi seluler mung digunakake kanggo transmisi data, telpon swara, transmisi SMS lan liya-liyane. Kabeh iki ditindakake liwat perintah AT sing dikirim saka mikrokontroler kontrol eksternal. Nanging ana kategori modul sing ngidini sampeyan nglakokake kode khusus sing dimuat saka njaba. Ing sawetara kasus, iki Ngartekno nyuda budget sakabèhé saka piranti, ngijini sampeyan kanggo nginstal prasaja (lan padha budget) mikrokontroler ing Papan utawa ninggalake kabeh. Kanthi tekane modul LTE sing dikontrol dening Android utawa Linux OS lan sumber daya sing kuat, bisa ngatasi tugas apa wae sing kasedhiya kanggo prosesor populer. Artikel iki bakal ngomong babagan SIM7600E-H, sing dikontrol dening OS Linux. Kita bakal ndeleng carane ndownload lan mbukak aplikasi sing bisa dieksekusi.

Kanthi akeh cara, materi kasebut adhedhasar dokumen "SIM7600 Open Linux development quide", nanging sawetara tambahan lan, pisanan kabeh, versi Rusia bakal migunani. Artikel kasebut bakal mbantu wong-wong sing lagi miwiti nguwasani modul kasebut ngerti carane ndownload aplikasi demo lan menehi katrampilan sing dibutuhake kanggo karya sabanjure.

Sedhela babagan sing SIM7600E-H

SIM7600E-H minangka modul sing dibangun ing prosesor ARM Cortex-A7 1.3GHz saka Qualcomm, duwe sistem operasi Linux (kernel 3.18.20) ing njero, bisa digunakake karo pita frekuensi Eropa (kalebu Rusia) 2G/3G/ LTE sing ndhukung Cat .4, nyediakake kacepetan download maksimum nganti 150Mbps lan upload kacepetan nganti 50Mbps. Periferal sing sugih, sawetara suhu industri lan pandhu arah GPS / GLONASS sing dibangun kalebu syarat kanggo solusi modular modern ing lapangan M2M.

Ringkesan sistem

Modul SIM7600E-H adhedhasar sistem operasi Linux (kernel 3.18.20). Sabanjure, sistem file dibangun ing basis saka sistem file journaled UBIFS (Unsorted Block Image File System).

Fitur penting sistem file iki kalebu:

  • dianggo karo partisi, ngidini sampeyan nggawe, mbusak, utawa ngganti ukurane;
  • njamin keselarasan rekaman ing kabeh volume media;
  • dianggo karo pamblokiran Bad;
  • nyilikake kemungkinan mundhut data sajrone pemadaman listrik utawa kegagalan liyane;
  • nyimpen log.

Katrangan dijupuk saka kene, ana uga katrangan sing luwih rinci babagan sistem file kasebut.

Sing. Sistem file jinis iki cocog kanggo kahanan operasi modul sing angel lan bisa uga masalah daya. Nanging iki ora ateges kahanan daya sing ora stabil bakal dadi mode operasi modul, nanging mung nuduhake daya tahan piranti sing luwih gedhe.

memori

Distribusi area memori dibangun kaya ing ngisor iki:

OpenLinux minangka bagéan saka modul SIM7600E-H

Ana telung wilayah utama kanggo nyorot:

ubi0:rootfs – mung diwaca lan ngemot kernel Linux dhewe
ubi0:usrfs - digunakake utamane kanggo program pangguna lan panyimpenan data
ubi0:cah - dilindhungi undhang-undhang kanggo nganyari FOTA. Yen papan sing kasedhiya ora cukup kanggo ngundhuh nganyari, sistem bakal mbusak file sing ora digunakake lan kanthi mangkono mbebasake ruang. Nanging kanggo alasan keamanan, sampeyan ora kudu nyelehake file ing kana.

Kabeh telung bagean disebarake kaya ing ngisor iki:

Filesystem
Size
digunakake
kasedhiya
Gunakake%
Dipasang ing

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

fungsi kasedhiya

Kaya kasebut ing ndhuwur, modul dibangun ing chipset Cortex A7 saka Qualcomm. Iku bakal salah ora kanggo nyedhiyani inti-kinerja dhuwur kuwi kanggo proses program pangguna lan offload prosesor utama piranti dening offloading sawetara bagéan saka program kanggo modul.

Kanggo program pangguna, mode operasi periferal ing ngisor iki bakal kasedhiya kanggo kita:

Pin No.
jeneng
Sys GPIO No.
Tumindak standar
Fungsi 1
Fungsi 2
narik
Wakeup interupsi

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

22
SD_DATA0
-
Kertu SD
-
-
B-PD
-

23
SD_DATA1
-
Kertu SD
-
-
B-PD
-

24
SD_DATA2
-
Kertu SD
-
-
B-PD
-

25
SD_DATA3
-
Kertu SD
-
-
B-PD
-

26
SD_CLK
-
Kertu 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
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
S.D.A.
-
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
-

Setuju, dhaptar iki nyengsemaken lan cathetan: bagéan saka peripheral digunakake kanggo operate modul minangka router. Sing. Adhedhasar modul kasebut, sampeyan bisa nggawe router cilik sing bakal nyebarake Internet liwat Wi-Fi. Miturut cara, ana solusi siap-digawe disebut SIM7600E-H-MIFI lan kertu miniPCIE karo modul SIM7600E-H soldered lan sawetara pin antena, salah siji saka iku antena Wi-Fi. Nanging, iki minangka topik kanggo artikel sing kapisah.

Rebo (dudu dina minggu)

Solusi Nirkabel SIMCom nyedhiyakake kesempatan kanggo pangembang kanggo milih lingkungan pangembangan sing paling akrab kanggo Linux utawa Windows. Yen kita ngomong babagan siji aplikasi sing bisa dieksekusi ing modul, luwih becik milih Windows, bakal luwih cepet lan luwih gampang. Yen arsitektur aplikasi rumit lan upgrade sakteruse samesthine, iku luwih apik kanggo nggunakake Linux. Kita uga butuh Linux kanggo ngumpulake file sing bisa dieksekusi kanggo dimuat ing modul kasebut; mesin virtual cukup kanggo kompilasi.

Apa sing dibutuhake ora kasedhiya kanggo diundhuh - SDK, sing bisa dijaluk saka distributor sampeyan.

Nginstal utilitas kanggo nggarap modul

Sabanjure, kita bakal nggarap Windows minangka OS sing paling dikenal kanggo umume pangguna.

Kita kudu nginstal piranti lunak sing dibutuhake ing sawetara langkah sing gampang kanggo nguasai modul kasebut:

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

Nginstal GNU/Linux

Kanggo mbangun aplikasi kasebut, sampeyan bisa nggunakake kompiler sing kompatibel karo ARM-Linux. Kita bakal nggunakake SourceryCodeBenchLiteARM GNU/Linuxtranslater sing kasedhiya kanggo diundhuh ing link.

Kanggo mesthekake yen kabeh komponen wis diinstal kanthi bener, aku bakal ninggalake sawetara gambar saka proses instalasi. Ing asas, ora ana sing rumit ing instalasi.

Kanggo mesthekake yen kabeh komponen wis diinstal kanthi bener, aku bakal ninggalake sawetara gambar saka proses instalasi. Ing asas, ora ana sing rumit ing instalasi.

  1. Kita nampa perjanjian lisensi
    OpenLinux minangka bagéan saka modul SIM7600E-H
  2. Nemtokake folder instalasi
    OpenLinux minangka bagéan saka modul SIM7600E-H
  3. Kita ninggalake komponen sing perlu ora diganti
    OpenLinux minangka bagéan saka modul SIM7600E-H
  4. Ninggalake minangka
    OpenLinux minangka bagéan saka modul SIM7600E-H
  5. Kaping pirang-pirang "Sabanjure", "Pasang" lan dhasare
    OpenLinux minangka bagéan saka modul SIM7600E-H

Nginstal Cygwin

Salajengipun, kanggo pangembangan, sampeyan butuh sakumpulan perpustakaan lan utilitas saka set sing kasedhiya Cygwin. Kabeh prasaja ing kene, versi Cygwin saiki bisa didownload kanthi gratis ing situs web resmi proyek kasebut; nalika nulis, versi 3.1.5 kasedhiya, yaiku sing digunakake nalika nyiapake materi.

Ora ana sing rumit kanggo nginstal Cygwin, siji-sijine sing kudu dipilih yaiku pangilon saka installer bakal ndownload file sing dibutuhake, pilih salah siji lan instal, uga sakumpulan utilitas lan perpustakaan, ninggalake kabeh perpustakaan sing kasedhiya lan utilitas sing dipilih.

Instalasi driver

Sawise modul disambungake menyang PC, sampeyan kudu nginstal driver. Iki bisa dijaluk saka distributor sampeyan (disaranake). Aku ora nyaranake nggoleki Internet dhewe, amarga ... Perlu wektu akeh kanggo nemokake apa sing nyebabake konflik piranti.

OpenLinux minangka bagéan saka modul SIM7600E-H

Ing antarane port sing dipilih, kita bisa ndeleng ing ngisor iki:

Windows
Linux
Description

SimTech HS-USB Diagnostik
Serial USB
Antarmuka diagnostik

SimTech HS-USB NMEA
Serial USB
Antarmuka GPS NMEA

SimTech HS-USB AT Port
Serial USB
Antarmuka AT port

SimTech HS-USB Modem
Serial USB
Antarmuka port modem

SimTech HS-USB Audio
Serial USB
Antarmuka Audio USB

SimTech HS-USB WWAN Adapter
USB Net
Antarmuka NDIS WWAN

Antarmuka ADB Komposit Android
USB ADB
Android nambah port debug

Kaya sing sampeyan ngerteni, ora ana USB ADB ing antarane port ing gambar, iki amarga port ADB ing modul ditutup kanthi standar lan sampeyan kudu ngaktifake kanthi ngirim perintah 'AT+CUSBADB=1' menyang AT port modul lan urip maneh (iki bisa ditindakake kanthi printah 'AT + CRESET').

Akibaté, kita entuk antarmuka sing dikarepake ing manajer piranti:

OpenLinux minangka bagéan saka modul SIM7600E-H

Wis rampung karo driver, ayo pindhah menyang ADB.

Nginstal ADB

Pindhah menyang situs web Pangembang Android resmi link. Kita ora bakal ndownload Android Studio sing gedhe banget; kita mung butuh baris perintah, kasedhiya kanggo diundhuh liwat tautan "Download SDK Platform-Tools for Windows".

OpenLinux minangka bagéan saka modul SIM7600E-H

Ngundhuh lan mbongkar arsip sing diasilake menyang root drive C.

Variabel Lingkungan

Sawise nginstal Cygwin, sampeyan kudu nambah path Cygwin / bin / menyang variabel lingkungan pangembangan (Panel Kontrol Klasik → Sistem → Setelan sistem lanjut → Lanjut → Variabel Lingkungan → Variabel Sistem → Path → Edit) kaya sing ditampilake ing gambar ing ngisor iki:

OpenLinux minangka bagéan saka modul SIM7600E-H

Kajaba iku, tambahake path menyang arsip ADB sing diundhuh lan ora dibungkus menyang oyod drive C.

OpenLinux minangka bagéan saka modul SIM7600E-H

Klik OK kaping pirang-pirang lan miwiti maneh komputer.

Sawise urip maneh, sampeyan bisa kanthi gampang mriksa apa ADB bisa digunakake kanthi bener kanthi mbukak baris perintah (Win + R → cmd) lan ketik printah 'versi adb'. Kita entuk kaya iki:

OpenLinux minangka bagéan saka modul SIM7600E-H

Sambungake modul kasebut menyang PC (yen kedadeyan kasebut pedhot) lan priksa manawa ADB ndeleng karo perintah 'perangkat adb':

OpenLinux minangka bagéan saka modul SIM7600E-H

Rampung, iki ngrampungake konfigurasi sambungan menyang modul lan kita bisa miwiti cangkang kanggo nggarap modul kasebut.

OpenLinux minangka bagéan saka modul SIM7600E-H

Mbukak lan ngumpulake SDK

Saiki kita duwe akses menyang cangkang lan bisa miwiti nggarap baris printah modul, ayo nyoba kanggo ngumpulake aplikasi pisanan kanggo mbukak menyang modul.

Akeh wong bisa ngalami kangelan karo iki! Amarga Modul kasebut mlaku ing sistem operasi Linux; supaya ora tabrakan nalika nyusun kode ing Windows, paling apik kanggo ngumpulake ing lingkungan asli - Linux.

Kita ora bakal manggon kanthi rinci babagan carane, yen ora ana Linux lan kepinginan kanggo nginstal ing mesin sampeyan, sampeyan bisa nginstal ing mesin virtual. Kita bakal nggunakake VirtualBox, nginstal versi Ubuntu 20.04 (versi saiki nalika nulis) lan ing ngisor iki kita bakal miwiti nggarap kompiler, SDK, lsp.

Ayo menyang lingkungan Linux lan mbongkar arsip sing ditampa saka distributor.

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

Pindhah menyang direktori sim_open_sdk lan tambahake 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 

Kita tetep ing folder sing padha lan nglakokake perintah sakteruse nalika ana.
Instal perpustakaan libncurses5-dev yen durung diinstal:

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

Python, yen durung diinstal:

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

lan gcc:

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

kompilasi:

Saiki kita kudu ngumpulake sawetara file, kita mbukak printah ing ngisor iki kanthi urutan.

Yen jendhela konfigurasi kernel muncul nalika kompilasi, pilih Metu lan bali menyang konsol; kita ora perlu ngatur kernel saiki.

Kita nindakake:

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

Kompilasi bootloader:

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

Kompilasi 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

Kanggo pangguna Linux bakal cocog kanggo ngumpulake driver modul:

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

Ayo ngumpulake demo:

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

Sawise sawetara file anyar bakal katon ing direktori sim_open_sdk/output:

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

Demo

Ayo nyoba mbukak demo menyang modul kita lan ndeleng apa sing metu saka iku.

Unduh

Ing direktori sim_open_sdk kita bisa ndeleng file demo_app. Kita njupuk lan transfer menyang ROOT drive C ing PC sing modul disambungake. Banjur bukak baris perintah Windows (Win + R -> cmd) lan ketik:

C:>adb push C:demo_app /data/

Konsol bakal ngandhani:

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

Iki tegese file wis kasil dikirim menyang modul lan kita mung kudu mbukak. Ayo ora ragu-ragu.

Kita nindakake:

C:>adb shell

Kita nggedhekake hak file sing diundhuh:

/ # cdhmod 777 /data/demo_app

Lan kita mbukak:

/ # /data/demo_app

Ing konsol sing padha, modul kasebut bakal menehi katrangan ing ngisor iki:

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 >   

Ayo goleki IMEI modul, ketik 7 (ngalih menyang mode perintah) banjur ketik 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 >

Kanthi cara iki kita bakal weruh IMEI modul.

Minangka kesimpulan

Muga-muga kita bisa entuk ide umum babagan cara miwiti modul kasebut. Ing artikel ing ngisor iki, kita bakal nliti kemampuan sing kasedhiya ing platform SIM7600E-H, uga carane sampeyan bisa nganyari aplikasi dhewe ing modul kasebut.

Aku ngajak sampeyan takon ing komentar, lan uga nuduhake aspek kapabilitas modul sing kudu dibayangke ing artikel sabanjure.

Source: www.habr.com

Add a comment