
Mekanisme kanggo ngembangake aplikasi khusus lan ngunggah menyang modul kasedhiya ing sistem operasi Linuxlan WindowsIng artikel iki, kita bakal nliti kanthi rinci babagan carane nggunakake conto saka SDK sing diwenehake. ngumpulake lan mbukak aplikasi khusus menyang modul.
Sadurunge nulis artikel iki, salah sawijining kancaku, sing isih adoh saka perkembangan Linux, njaluk katrangan rinci babagan proses ngembangake aplikasi khusus kanggo modul SIM7600E-H. Kriteria kanggo netepake aksesibilitas presentasi yaiku ukara "supaya aku bisa ngerti."
Aku ngajak sampeyan kenalan karo kedadeyan kasebut.
Artikel kasebut kanthi rutin ditambah lan dianyari
Pambuka
Lumrahé, modul seluler mung digunakaké kanggo transfer data, telpon swara, pesen SMS, lan liya-liyané. KabÚh iki ditindakaké liwat printah AT sing dikirim saka mikrokontroler kontrol eksternal. Nanging, ana kategori modul sing ngidini eksekusi kode panganggo sing dimuat sacara eksternal. Ing sawetara kasus, iki nyuda biaya sakabÚhé piranti kanthi signifikan, saéngga mikrokontroler sing luwih prasaja (lan padha-padha efektif biaya) bisa dipasang ing papan, utawa ngilangi kabÚh. Kanthi anané modul LTE sing dikontrol OS Android utawa Linux Kanthi sumber daya sing kuat, sampeyan bisa ngatasi tugas apa wae sing bisa diakses dening prosesor populer. Artikel iki bakal ngrembug SIM7600E-H, sing dikelola dening OS. LinuxKita bakal ngrembug babagan carane ndownload lan mbukak aplikasi sing bisa dieksekusi.
Materi iki umumé adhedhasar dokumen "SIM7600 Open Linux "Pandhuan Pangembangan," nanging sawetara tambahan, utamane versi basa Rusia, bakal migunani. Artikel iki bakal mbantu wong-wong sing lagi miwiti nggunakake modul iki navigasi liwat undhuhan aplikasi demo lan nyedhiyakake katrampilan sing dibutuhake kanggo karya sabanjure.
Sedhela babagan sing SIM7600E-H
SIM7600E-H kuwi modul sing dibangun adhedhasar prosesor ARM Cortex-A7 1.3GHz saka Qualcomm, sing nduweni sistem operasi Linux (kernel 3.18.20) ing njero, bisa beroperasi ing pita frekuensi 2G/3G/LTE Eropa (kalebu Rusia), ndhukung Cat.4, lan nyedhiyakake kecepatan download maksimal nganti 150 Mbps lan kecepatan upload nganti 50 Mbps. Periferal sing ekstensif, kisaran suhu industri, lan navigasi GPS/GLONASS internal nyukupi kabeh syarat kanggo solusi M2M modular modern.
Ringkesan sistem
Modul SIM7600E-H adhedhasar sistem operasi Linux (kernel 3.18.20). Sistem berkas iki, sabanjure, dibangun ing sistem berkas jurnal 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 , 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:

Ana telung wilayah utama kanggo nyorot:
ubi0:rootfs â mung bisa diwaca lan ngemot kernel kasebut dhewe Linux
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)
menehi kesempatan kanggo para pangembang milih lingkungan pangembangan sing paling akrab kanggo awake dhewe Linux utawa WindowsYen kita ngomong babagan siji aplikasi sing bisa dieksekusi ing modul, mula luwih becik milih Windows, bakal luwih cepet lan luwih gampang. Yen sampeyan ngarepake arsitektur aplikasi sing kompleks lan peningkatan sabanjure, luwih becik nggunakake LinuxKita uga bakal butuh Linux Kanggo ngompilasi file sing bisa dieksekusi kanggo dimuat menyang modul sabanjure, mesin virtual cukup kanggo kompilasi.
Apa sing dibutuhake ora kasedhiya kanggo diundhuh - SDK, sing bisa dijaluk saka distributor sampeyan.
Nginstal utilitas kanggo nggarap modul
Saka kene kita bakal kerja ing sangisore Windows minangka OS sing paling dikenal dening 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 platform apa wae sing kompatibel karo ARM.Linux kompiler. Kita bakal nggunakake SourceryCodeBenchLiteARM GNU/Linuxpenerjemah kasedhiya kanggo diunduh 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 . 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.

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
Android Antarmuka ADB Komposit
USB ADB
Android tambahake 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
Bukak situs web resmi Android Pangembang dening Ayo aja ndownload sing gedhe-gedhe. Android Studio, kita mung butuh baris printah, sing kasedhiya kanggo diunduh ing link "Download SDK Platform-Tools for Windows".

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.
Iki bisa dadi tantangan kanggo akeh wong! Amarga modul iki mlaku ing sistem operasi. Linux, kanggo nyegah tabrakan nalika kompilasi kode ing ngisor iki Windows â paling apik dikompilasi ing lingkungan asli â Linux.
Kita ora bakal nerangake kanthi rinci babagan kepiye yen ora ana Linux lan yen sampeyan ora pengin nginstal ing mesin sampeyan, sampeyan bisa nginstal ing mesin virtual. Kita bakal nggunakake VirtualBox, nginstal Ubuntu versi 20.04 (versi saiki nalika iki ditulis) lan kita bakal miwiti nggarap kompiler, SDK, lan liya-liyane ing sangisore.
Pindah menyang Rebo Linux lan mbukak 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 -yPython, yen durung diinstal:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install python -ylan gcc:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install gcckompilasi:
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$ makeKompilasi bootloader:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make abootKompilasi 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 rootfsKanggo pangguna Linux Bakal relevan kanggo ngompilasi driver modul:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_moduleAyo ngumpulake demo:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make demoSawise 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. Ekstrak lan pindhah menyang root drive C ing PC sing disambungake modul kasebut. Banjur, bukak baris perintah. Windows (Win+R -> cmd) banjur 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 shellKita nggedhekake hak file sing diundhuh:
/ # cdhmod 777 /data/demo_appLan kita mbukak:
/ # /data/demo_appIng 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





