Mekanisme untuk membangunkan aplikasi tersuai dan memuatkannya ke dalam modul tersedia di bawah kedua-dua sistem pengendalian Linux dan Windows. Dalam artikel ini kita akan melihat secara terperinci bagaimana, menggunakan contoh daripada SDK yang disediakan
Sebelum menulis artikel itu, salah seorang kenalan saya, jauh dari membangun untuk Linux, meminta saya untuk mendekati isu menerangkan proses membangunkan aplikasi saya sendiri untuk modul SIM7600E-H dengan seberapa terperinci yang mungkin. Kriteria untuk menilai kebolehcapaian pembentangan bahan ialah frasa "supaya saya faham."
Saya menjemput anda untuk berkenalan dengan apa yang berlaku.
Artikel itu sentiasa ditambah dan dikemas kini
Foreplay
Lazimnya, modul komunikasi selular hanya digunakan untuk penghantaran data, panggilan suara, penghantaran SMS dan seumpamanya. Semua ini dilakukan melalui arahan AT yang dihantar dari mikropengawal kawalan luaran. Tetapi terdapat kategori modul yang membolehkan anda melaksanakan kod tersuai yang dimuatkan dari luar. Dalam sesetengah kes, ini mengurangkan belanjawan keseluruhan peranti dengan ketara, membolehkan anda memasang mikropengawal yang lebih mudah (dan sama bajet) pada papan atau meninggalkannya sama sekali. Dengan kemunculan modul LTE yang dikawal oleh Android atau Linux OS dan sumber berkuasa mereka, adalah mungkin untuk menyelesaikan sebarang tugas yang tersedia untuk pemproses popular. Artikel ini akan bercakap tentang SIM7600E-H, dikawal oleh OS Linux. Kami akan melihat cara memuat turun dan menjalankan aplikasi boleh laku.
Dalam banyak cara, bahan itu berdasarkan dokumen "SIM7600 Open Linux development quide", tetapi beberapa penambahan dan, pertama sekali, versi Rusia akan berguna. Artikel itu akan membantu mereka yang baru mula menguasai modul memahami cara memuat turun aplikasi demo dan menyediakan kemahiran yang diperlukan untuk kerja seterusnya.
Secara ringkas tentang siapa SIM7600E-H
SIM7600E-H ialah modul yang dibina pada pemproses ARM Cortex-A7 1.3GHz daripada Qualcomm, mempunyai sistem pengendalian Linux (kernel 3.18.20) di dalam, mampu berfungsi dengan jalur frekuensi Eropah (termasuk Rusia) 2G/3G/ LTE yang menyokong Cat .4, menyediakan kelajuan muat turun maksimum sehingga 150Mbps dan kelajuan muat naik sehingga 50Mbps. Peranti yang kaya, julat suhu industri dan kehadiran navigasi GPS/GLONASS terbina dalam meliputi sebarang keperluan untuk penyelesaian modular moden dalam bidang M2M.
Gambaran keseluruhan sistem
Modul SIM7600E-H adalah berdasarkan sistem pengendalian Linux (kernel 3.18.20). Sebaliknya, sistem fail dibina berdasarkan sistem fail berjurnal UBIFS (Sistem Fail Imej Blok Tidak Disortir).
Ciri penting sistem fail ini termasuk:
- berfungsi dengan partition, membolehkan anda membuat, memadam atau menukar saiznya;
- memastikan penjajaran rakaman merentas keseluruhan volum media;
- berfungsi dengan blok Buruk;
- meminimumkan kemungkinan kehilangan data semasa gangguan bekalan elektrik atau kegagalan lain;
- menyimpan log.
Penerangan diambil
Itu. Sistem fail jenis ini sesuai untuk keadaan operasi modul yang keras dan kemungkinan masalah kuasa. Tetapi ini tidak bermakna bahawa keadaan kuasa yang tidak stabil akan menjadi mod operasi modul yang dijangkakan; ia hanya menunjukkan daya maju peranti yang lebih besar.
memori
Pengagihan kawasan ingatan dibina seperti berikut:
Terdapat tiga bidang utama untuk diketengahkan:
ubi0:rootfs β baca sahaja dan mengandungi kernel Linux itu sendiri
ubi0:usrfs β digunakan terutamanya untuk program pengguna dan penyimpanan data
ubi0:cahcefs β dikhaskan untuk kemas kini FOTA. Jika ruang yang ada tidak mencukupi untuk memuat turun kemas kini, sistem akan memadamkan fail yang tidak digunakan dan dengan itu mengosongkan ruang. Tetapi atas sebab keselamatan, anda tidak sepatutnya meletakkan fail anda di sana.
Ketiga-tiga bahagian diedarkan seperti berikut:
Sistem fail
Saiz
Digunakan
Boleh didapati
Gunakan%
Dipasang pada
ubi0:rootfs
40.7M
36.2M
4.4M
89%
/
ubi0:usrfs
10.5M
360K
10.1M
3%
/ data
ubi0:cachefs
50.3M
20K
47.7M
0%
/ cache
Fungsi yang tersedia
Seperti yang dinyatakan di atas, modul ini dibina pada cipset Cortex A7 daripada Qualcomm. Adalah salah untuk tidak menyediakan teras berprestasi tinggi sedemikian untuk memproses program pengguna dan memunggah pemproses utama peranti dengan memunggah beberapa bahagian program ke modul.
Untuk program pengguna, mod pengendalian persisian berikut akan tersedia kepada kami:
Pin no.
Nama
Sys GPIO No.
Tindakan lalai
Keseronokan1
Keseronokan2
Tarik
Gangguan bangun
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
-
Kad SD
-
-
B-PD
-
22
SD_DATA0
-
Kad SD
-
-
B-PD
-
23
SD_DATA1
-
Kad SD
-
-
B-PD
-
24
SD_DATA2
-
Kad SD
-
-
B-PD
-
25
SD_DATA3
-
Kad SD
-
-
B-PD
-
26
SD_CLK
-
Kad 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
sumber semula jadi
-
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, senarai itu mengagumkan dan ambil perhatian: sebahagian daripada peranti digunakan untuk mengendalikan modul sebagai penghala. Itu. Berdasarkan modul sedemikian, anda boleh membuat penghala kecil yang akan mengedarkan Internet melalui Wi-Fi. Dengan cara ini, terdapat penyelesaian siap pakai yang dipanggil SIM7600E-H-MIFI dan merupakan kad miniPCIE dengan modul SIM7600E-H yang dipateri dan beberapa pin antena, salah satunya ialah antena Wi-Fi. Walau bagaimanapun, ini adalah topik untuk artikel berasingan.
Rabu (bukan hari dalam seminggu)
Perkara yang anda perlukan tidak tersedia secara percuma untuk dimuat turun - SDK, yang boleh anda minta daripada pengedar anda.
Memasang utiliti untuk bekerja dengan modul
Selepas ini, kami akan bekerja di bawah Windows sebagai OS yang paling biasa kepada kebanyakan pengguna.
Kami perlu memasang perisian yang diperlukan dalam beberapa langkah mudah untuk kemudiannya menguasai kerja dengan modul:
- GNU / Linux
- Cygwin
- Pemandu
- ADB
Memasang GNU/Linux
Untuk membina aplikasi, anda boleh menggunakan mana-mana pengkompil serasi ARM-Linux. Kami akan menggunakan SourceryCodeBenchLiteARM GNU/Linuxtranslater tersedia untuk dimuat turun di
Untuk memastikan semua komponen dipasang dengan betul, saya akan meninggalkan beberapa tangkapan skrin proses pemasangan. Pada dasarnya, tidak ada yang rumit dalam pemasangan.
Untuk memastikan semua komponen dipasang dengan betul, saya akan meninggalkan beberapa tangkapan skrin proses pemasangan. Pada dasarnya, tidak ada yang rumit dalam pemasangan.
- Kami menerima perjanjian lesen
- Tentukan folder pemasangan
- Kami membiarkan komponen yang diperlukan tidak berubah
- Biarkan seadanya
- Beberapa kali "Seterusnya", "Pasang" dan pada dasarnya itu sahaja
Memasang Cygwin
Selanjutnya, untuk pembangunan, anda memerlukan satu set perpustakaan dan utiliti daripada set yang disediakan
Tidak ada yang rumit dalam memasang Cygwin, satu-satunya perkara yang anda perlu pilih ialah cermin dari mana pemasang akan memuat turun fail yang diperlukan, pilih mana-mana satu dan pasangkannya, serta satu set utiliti dan perpustakaan, meninggalkan semua perpustakaan yang tersedia dan utiliti yang dipilih.
Pemasangan pemandu
Selepas modul disambungkan ke PC, anda perlu memasang pemacu. Ini boleh diminta daripada pengedar anda (disyorkan). Saya tidak mengesyorkan mencari sendiri di Internet, kerana... Ia mungkin mengambil banyak masa untuk mencari punca konflik peranti.
Antara port yang dipilih kita lihat perkara berikut:
Windows
Linux
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
Diagnostik HS-USB SimTech
Serial USB
Antara Muka Diagnostik
SimTech HS-USB NMEA
Serial USB
Antara Muka GPS NMEA
SimTech HS-USB AT Port
Serial USB
Antaramuka pelabuhan AT
Modem HS-USB SimTech
Serial USB
Antara muka port modem
SimTech HS-USB Audio
Serial USB
USB Audio Interface
Penyesuai WWAN HS-USB SimTech
USB Net
Antara Muka NDIS WWAN
Antara Muka ADB Komposit Android
USB ADB
Android menambah port nyahpepijat
Seperti yang mungkin anda perhatikan, tiada USB ADB antara port dalam tangkapan skrin, ini kerana port ADB dalam modul ditutup secara lalai dan anda perlu mendayakannya dengan menghantar arahan 'AT+CUSBADB=1' kepada AT port modul dan but semula (ini boleh dilakukan dengan arahan 'AT+CRESET').
Akibatnya, kami mendapat antara muka yang diingini dalam pengurus peranti:
Kita sudah selesai dengan pemandu, mari kita beralih kepada ADB.
Memasang ADB
Pergi ke tapak web rasmi Pembangun Android
Muat turun dan bongkar arkib yang terhasil ke akar pemacu C.
Pembolehubah Persekitaran
Selepas memasang Cygwin, anda perlu menambah laluan Cygwin/bin/ kepada pembolehubah persekitaran pembangunan (Panel Kawalan Klasik β Sistem β Tetapan sistem lanjutan β Lanjutan β Pembolehubah Persekitaran β Pembolehubah Sistem β Laluan β Edit) seperti yang ditunjukkan dalam tangkapan skrin di bawah:
Begitu juga, tambahkan laluan ke arkib ADB yang dimuat turun dan dibongkar pada akar pemacu C.
Klik OK beberapa kali dan mulakan semula komputer.
Selepas but semula, anda boleh menyemak dengan mudah sama ada ADB berfungsi dengan betul dengan membuka baris arahan (Win+R β cmd) dan menaip arahan 'adb version'. Kami mendapat sesuatu seperti ini:
Mari sambungkan modul ke PC (jika kebetulan ia terputus) dan semak sama ada ADB melihatnya dengan arahan 'peranti adb':
Selesai, ini melengkapkan konfigurasi sambungan ke modul dan kami boleh melancarkan shell untuk berfungsi dengan modul.
Membongkar dan menyusun SDK
Sekarang kita mempunyai akses kepada shell dan boleh mula bekerja dengan baris arahan modul, mari cuba menyusun aplikasi pertama kami untuk dimuatkan ke dalam modul.
Ramai orang mungkin mengalami kesukaran dengan ini! Kerana Modul ini berjalan pada sistem pengendalian Linux; untuk mengelakkan perlanggaran semasa menyusun kod di bawah Windows, yang terbaik adalah untuk menyusun dalam persekitaran asli - Linux.
Kami tidak akan membincangkan secara terperinci tentang bagaimana, jika tiada Linux dan keinginan untuk memasangnya pada mesin anda, anda boleh memasangnya pada mesin maya. Kami akan menggunakan VirtualBox, memasang Ubuntu versi 20.04 (versi semasa pada masa penulisan) dan di bawahnya kami akan mula bekerja dengan penyusun, SDK, dll.
Mari pergi ke persekitaran Linux dan bongkar arkib yang diterima daripada pengedar.
simcom@VirtualBox:~/Desktop/OpenLinux$ sudo tar -xzf MDM9x07_OL_2U_22_V1.12_191227.tar.gz
Pergi ke direktori sim_open_sdk dan tambahkan persekitaran:
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 kekal dalam folder yang sama dan melaksanakan arahan seterusnya semasa berada di dalamnya.
Pasang perpustakaan libncurses5-dev jika ia belum dipasang:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get update && sudo apt-get install libncurses5-dev -y
Python, jika ia tidak dipasang sama ada:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install python -y
dan gcc:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install gcc
Kompilasi:
Sekarang kita perlu menyusun beberapa fail, kita menjalankan arahan berikut secara berurutan.
Jika tetingkap konfigurasi kernel muncul semasa penyusunan, cuma pilih Keluar dan kembali ke konsol; kita tidak perlu mengkonfigurasi kernel sekarang.
Kami buat:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make
Susun pemuat but:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make aboot
Menyusun kernel:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_menuconfig
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel
Susun sistem fail akar:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make rootfs
Untuk pengguna Linux adalah relevan untuk menyusun pemacu modul:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_module
Mari kita susun demo:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make demo
Selepas itu beberapa fail baharu akan muncul dalam direktori sim_open_sdk/output:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ ls output/
appsboot.mbn boot.img demo_app helloworld system.img
Demo
Mari cuba memuatkan demo ke dalam modul kami dan lihat apa yang terhasil daripadanya.
Memuatkan
Dalam direktori sim_open_sdk kita boleh melihat fail demo_app. Kami mengambilnya dan memindahkannya ke akar pemacu C pada PC yang modul itu disambungkan. Kemudian lancarkan baris arahan Windows (Win+R -> cmd) dan masukkan:
C:>adb push C:demo_app /data/
Konsol akan memberitahu kami:
C:demo_app: 1 file pushed, 0 skipped. 151.4 MB/s (838900 bytes in 0.005s)
Ini bermakna fail telah berjaya dihantar ke modul dan kita hanya perlu menjalankannya. Jangan teragak-agak.
Kami buat:
C:>adb shell
Kami mengembangkan hak fail yang dimuat turun:
/ # cdhmod 777 /data/demo_app
Dan kami menjalankan:
/ # /data/demo_app
Dalam konsol yang sama, modul akan memberitahu kami perkara berikut:
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 >
Mari lihat IMEI modul, masukkan 7 (tukar ke mod arahan) dan kemudian masukkan 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 >
Dengan cara ini kita akan melihat IMEI modul.
Sebagai kesimpulan
Saya harap kami dapat memperoleh idea umum tentang cara memulakan modul. Dalam artikel berikut, kami akan melihat dengan lebih dekat keupayaan yang disediakan oleh platform SIM7600E-H, serta cara anda boleh mengemas kini aplikasi anda sendiri dari jauh dalam modul.
Saya menjemput anda untuk bertanya soalan dalam ulasan, dan juga menunjukkan aspek keupayaan modul yang harus ditunjukkan dalam artikel berikutnya.
Sumber: www.habr.com