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
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
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:
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)
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:
- GNU / Linux
- Cygwin
- Pembalap
- 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
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.
- Kita nampa perjanjian lisensi
- Nemtokake folder instalasi
- Kita ninggalake komponen sing perlu ora diganti
- Ninggalake minangka
- Kaping pirang-pirang "Sabanjure", "Pasang" lan dhasare
Nginstal Cygwin
Salajengipun, kanggo pangembangan, sampeyan butuh sakumpulan perpustakaan lan utilitas saka set sing kasedhiya
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.
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:
Wis rampung karo driver, ayo pindhah menyang ADB.
Nginstal ADB
Pindhah menyang situs web Pangembang Android resmi
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:
Kajaba iku, tambahake path menyang arsip ADB sing diundhuh lan ora dibungkus menyang oyod drive C.
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:
Sambungake modul kasebut menyang PC (yen kedadeyan kasebut pedhot) lan priksa manawa ADB ndeleng karo perintah 'perangkat adb':
Rampung, iki ngrampungake konfigurasi sambungan menyang modul lan kita bisa miwiti cangkang kanggo nggarap modul kasebut.
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