OpenLinux sebagai sebahagian daripada modul SIM7600E-H

OpenLinux sebagai sebahagian daripada modul SIM7600E-H

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 Penyelesaian Tanpa Wayar SIMCom menyusun dan memuatkan aplikasi tersuai ke dalam modul.

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 oleh itu, terdapat juga penerangan yang lebih terperinci tentang sistem fail sedemikian.

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:

OpenLinux sebagai sebahagian daripada modul SIM7600E-H

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)

Penyelesaian Tanpa Wayar SIMCom memberi peluang kepada pembangun untuk memilih persekitaran pembangunan yang paling biasa untuk Linux atau Windows. Jika kita bercakap tentang satu aplikasi boleh laku pada modul, maka lebih baik memilih Windows, ia akan menjadi lebih cepat dan lebih mudah. Jika seni bina aplikasi yang kompleks dan peningkatan seterusnya dijangka, adalah lebih baik untuk menggunakan Linux. Kami juga memerlukan Linux untuk menyusun fail boleh laku untuk pemuatan seterusnya ke dalam modul; mesin maya adalah mencukupi untuk penyusunan.

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:

  1. GNU / Linux
  2. Cygwin
  3. Pemandu
  4. 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 pautan.

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.

  1. Kami menerima perjanjian lesen
    OpenLinux sebagai sebahagian daripada modul SIM7600E-H
  2. Tentukan folder pemasangan
    OpenLinux sebagai sebahagian daripada modul SIM7600E-H
  3. Kami membiarkan komponen yang diperlukan tidak berubah
    OpenLinux sebagai sebahagian daripada modul SIM7600E-H
  4. Biarkan seadanya
    OpenLinux sebagai sebahagian daripada modul SIM7600E-H
  5. Beberapa kali "Seterusnya", "Pasang" dan pada dasarnya itu sahaja
    OpenLinux sebagai sebahagian daripada modul SIM7600E-H

Memasang Cygwin

Selanjutnya, untuk pembangunan, anda memerlukan satu set perpustakaan dan utiliti daripada set yang disediakan Cygwin. Segala-galanya mudah di sini, versi semasa Cygwin boleh dimuat turun secara percuma di laman web rasmi projek; pada masa penulisan, versi 3.1.5 tersedia, iaitu yang kami gunakan semasa menyediakan bahan.

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.

OpenLinux sebagai sebahagian daripada modul SIM7600E-H

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:

OpenLinux sebagai sebahagian daripada modul SIM7600E-H

Kita sudah selesai dengan pemandu, mari kita beralih kepada ADB.

Memasang ADB

Pergi ke tapak web rasmi Pembangun Android pautan. Kami tidak akan memuat turun Android Studio yang besar; kami hanya memerlukan baris arahan, tersedia untuk dimuat turun melalui pautan "Muat turun SDK Platform-Tools untuk Windows".

OpenLinux sebagai sebahagian daripada modul SIM7600E-H

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:

OpenLinux sebagai sebahagian daripada modul SIM7600E-H

Begitu juga, tambahkan laluan ke arkib ADB yang dimuat turun dan dibongkar pada akar pemacu C.

OpenLinux sebagai sebahagian daripada modul SIM7600E-H

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:

OpenLinux sebagai sebahagian daripada modul SIM7600E-H

Mari sambungkan modul ke PC (jika kebetulan ia terputus) dan semak sama ada ADB melihatnya dengan arahan 'peranti adb':

OpenLinux sebagai sebahagian daripada modul SIM7600E-H

Selesai, ini melengkapkan konfigurasi sambungan ke modul dan kami boleh melancarkan shell untuk berfungsi dengan modul.

OpenLinux sebagai sebahagian daripada modul SIM7600E-H

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

Tambah komen