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
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
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:
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)
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:
- Lisénsi / Linux Ubuntu
- Cygwin
- Supir
- 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
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.
- Kami nampi perjanjian lisénsi
- Sebutkeun folder instalasi
- Urang ninggalkeun komponén perlu unchanged
- Ninggalkeun sakumaha anu kasebut
- Sababaraha kali "Salajengna", "Pasang" sareng dasarna éta
Masang Cygwin
Salajengna, pikeun pangwangunan, anjeun peryogi sakumpulan perpustakaan sareng utilitas tina set anu disayogikeun
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.
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:
Kami parantos réngsé sareng supir, hayu urang teraskeun kana ADB.
Masang ADB
Pindah ka situs wéb pamekar Android resmi
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:
Nya kitu, tambahkeun jalur kana arsip ADB anu diunduh sareng dibongkar kana akar drive C.
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:
Hayu urang sambungkeun modul ka PC (upami kajantenan éta dipegatkeun) sareng pariksa naha ADB ningali éta nganggo paréntah 'adb devices':
Rengse, ieu ngalengkepan konfigurasi sambungan kana modul jeung urang tiasa ngajalankeun cangkang pikeun digawe sareng modul.
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