Utaratibu wa kuunda programu maalum na kuipakia kwenye moduli inapatikana chini ya mifumo ya uendeshaji ya Linux na Windows. Katika makala hii tutaangalia kwa kina jinsi, kwa kutumia mifano kutoka kwa SDK iliyotolewa
Kabla ya kuandika makala hiyo, mmoja wa marafiki zangu, mbali na kuendeleza Linux, aliniuliza nifikie suala la kuelezea mchakato wa kuendeleza maombi yangu ya moduli ya SIM7600E-H kwa undani iwezekanavyo. Kigezo cha kutathmini ufikiaji wa uwasilishaji wa nyenzo kilikuwa kifungu cha maneno "ili nielewe."
Ninakualika upate kufahamu kilichotokea.
Nakala hiyo huongezewa mara kwa mara na kusasishwa
Uonyesho
Kawaida, moduli za mawasiliano ya rununu hutumiwa tu kwa usambazaji wa data, simu za sauti, utumaji SMS na kadhalika. Yote hii inafanywa kupitia amri za AT zilizotumwa kutoka kwa udhibiti mdogo wa udhibiti wa nje. Lakini kuna kategoria ya moduli zinazokuruhusu kutekeleza nambari maalum iliyopakiwa kutoka nje. Katika baadhi ya matukio, hii inapunguza kwa kiasi kikubwa bajeti ya jumla ya kifaa, kukuwezesha kusakinisha microcontroller rahisi (na kwa usawa) kwenye ubao au kuachana nayo kabisa. Pamoja na ujio wa moduli za LTE zinazodhibitiwa na Android au Linux OS na rasilimali zao zenye nguvu, inawezekana kutatua kazi zozote zinazopatikana kwa wasindikaji maarufu. Nakala hii itazungumza juu ya SIM7600E-H, inayodhibitiwa na Linux OS. Tutaangalia jinsi ya kupakua na kuendesha programu inayoweza kutekelezwa.
Kwa njia nyingi, nyenzo zinategemea hati "SIM7600 Open Linux development quide", lakini baadhi ya nyongeza na, kwanza kabisa, toleo la Kirusi litakuwa muhimu. Nakala hiyo itasaidia wale ambao wanaanza kusoma moduli kuelewa jinsi ya kupakua programu ya onyesho na kutoa ujuzi muhimu kwa kazi inayofuata.
Kwa kifupi kuhusu SIM7600E-H ni nani
SIM7600E-H ni moduli iliyojengwa kwenye kichakataji cha ARM Cortex-A7 1.3GHz kutoka Qualcomm, iliyo na mfumo wa uendeshaji wa Linux (kernel 3.18.20) ndani, yenye uwezo wa kufanya kazi na bendi za Ulaya (ikiwa ni pamoja na Kirusi) za 2G/3G/ LTE zinazounga mkono Paka. .4, ikitoa kasi ya juu zaidi ya upakuaji ya hadi 150Mbps na kasi ya upakiaji ya hadi 50Mbps. Vifaa vingi vya pembeni, anuwai ya halijoto ya viwandani na uwepo wa urambazaji uliojengewa ndani wa GPS/GLONASS hufunika mahitaji yoyote ya suluhu ya kisasa ya moduli katika uga wa M2M.
Muhtasari wa mfumo
Moduli ya SIM7600E-H inategemea mfumo wa uendeshaji wa Linux (kernel 3.18.20). Kwa upande wake, mfumo wa faili umejengwa kwa misingi ya mfumo wa faili uliochapishwa UBIFS (Mfumo wa Faili ya Picha ya Kuzuia Isiyochaguliwa).
Vipengele muhimu vya mfumo huu wa faili ni pamoja na:
- inafanya kazi na partitions, inakuwezesha kuunda, kufuta, au kubadilisha ukubwa wao;
- inahakikisha upatanishi wa kurekodi kwa sauti nzima ya media;
- inafanya kazi na vitalu vibaya;
- hupunguza uwezekano wa kupoteza data wakati wa kukatika kwa umeme au hitilafu nyinginezo;
- kutunza kumbukumbu.
Maelezo yamechukuliwa
Wale. Aina hii ya mfumo wa faili ni bora kwa hali mbaya ya uendeshaji wa moduli na matatizo ya nguvu iwezekanavyo. Lakini hii haimaanishi kuwa hali ya nguvu isiyo na utulivu itakuwa njia inayotarajiwa ya uendeshaji wa moduli; inaonyesha tu uwezekano mkubwa wa kifaa.
kumbukumbu
Usambazaji wa maeneo ya kumbukumbu umeundwa kama ifuatavyo:
Kuna maeneo matatu kuu ya kuangazia:
ubi0:mizizi - soma tu na ina kernel ya Linux yenyewe
ubi0:usrfs - hutumika kimsingi kwa programu ya mtumiaji na uhifadhi wa data
ubi0:cahcefs - zimehifadhiwa kwa sasisho za FOTA. Ikiwa nafasi inayopatikana haitoshi kupakua sasisho, mfumo utafuta faili ambazo hazijatumiwa na hivyo kutoa nafasi. Lakini kwa sababu za usalama, hupaswi kuweka faili zako hapo.
Sehemu zote tatu zimegawanywa kama ifuatavyo:
Mfumo wa Files
ukubwa
Kutumika
Available
Tumia%
Imewekwa juu
ubi0:mizizi
40.7M
36.2M
4.4M
89%
/
ubi0:usrfs
10.5M
360K
10.1M
3%
/ data
ubi0:kachef
50.3M
20K
47.7M
0%
/ cache
Utendaji unaopatikana
Kama ilivyoelezwa hapo juu, moduli imejengwa kwenye chipset ya Cortex A7 kutoka Qualcomm. Itakuwa vibaya kutotoa msingi wa utendakazi wa hali ya juu ili kuchakata programu ya mtumiaji na kupakua kichakataji kikuu cha kifaa kwa kupakua sehemu fulani ya programu kwenye moduli.
Kwa programu ya mtumiaji, njia zifuatazo za uendeshaji za pembeni zitapatikana kwetu:
Pina Hapana.
jina
Sys GPIO No.
Kitendo chaguomsingi
Funzo1
Funzo2
Kuvuta
Kukatiza kwa kuamka
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-Kadi
-
-
B-PD
-
22
SD_DATA0
-
SD-Kadi
-
-
B-PD
-
23
SD_DATA1
-
SD-Kadi
-
-
B-PD
-
24
SD_DATA2
-
SD-Kadi
-
-
B-PD
-
25
SD_DATA3
-
SD-Kadi
-
-
B-PD
-
26
SD_CLK
-
SD-Kadi
-
-
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
AD2
-
ADC
-
-
-
-
47
AD1
-
ADC
-
-
B-PU
-
48
SD_DET
GPIO_26
GPIO
GPIO
SD_DET
B-PD
X
49
HALI
GPIO_52
Hali ya Oda
GPIO
Hali ya Oda
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
SDA
-
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
DAWA ZA KULEVYA
-
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
-
Kubali, orodha ni ya kuvutia na kumbuka: sehemu ya vifaa vya pembeni hutumiwa kuendesha moduli kama kipanga njia. Wale. Kulingana na moduli hiyo, unaweza kufanya router ndogo ambayo itasambaza mtandao kupitia Wi-Fi. Kwa njia, kuna suluhisho iliyopangwa tayari inayoitwa SIM7600E-H-MIFI na ni kadi ya miniPCIE yenye moduli ya soldered SIM7600E-H na pini kadhaa za antenna, mmoja wao ni antenna ya Wi-Fi. Walakini, hii ni mada ya nakala tofauti.
Jumatano (sio siku ya juma)
Unachohitaji hakipatikani bila malipo kwa kupakuliwa - SDK, ambayo unaweza kuomba kutoka kwa msambazaji wako.
Kufunga huduma za kufanya kazi na moduli
Baadaye, tutafanya kazi chini ya Windows kama OS inayojulikana zaidi kwa watumiaji wengi.
Tutahitaji kusakinisha programu muhimu katika hatua chache rahisi ili kuweza kufanya kazi vizuri na moduli:
- GNU / Linux
- Cygwin
- Madereva
- ADB
Inasakinisha GNU/Linux
Ili kuunda programu, unaweza kutumia kikusanyaji chochote kinacholingana na ARM-Linux. Tutatumia SourceryCodeBenchLiteARM GNU/Linuxtranslater inayopatikana kwa kupakuliwa
Ili kuhakikisha kuwa vipengele vyote vimewekwa kwa usahihi, nitaacha viwambo vichache vya mchakato wa ufungaji. Kimsingi, hakuna chochote ngumu katika ufungaji.
Ili kuhakikisha kuwa vipengele vyote vimewekwa kwa usahihi, nitaacha viwambo vichache vya mchakato wa ufungaji. Kimsingi, hakuna chochote ngumu katika ufungaji.
- Tunakubali makubaliano ya leseni
- Taja folda ya usakinishaji
- Tunaacha vipengele muhimu bila kubadilika
- Wacha kama ilivyo
- Mara kadhaa "Ijayo", "Sakinisha" na kimsingi ndivyo hivyo
Inaweka Cygwin
Zaidi ya hayo, kwa maendeleo, utahitaji seti ya maktaba na huduma kutoka kwa seti iliyotolewa
Hakuna chochote ngumu katika kusakinisha Cygwin, kitu pekee unachohitaji kuchagua ni kioo ambacho kisakinishi kitapakua faili zinazohitajika, chagua yoyote na kuiweka, pamoja na seti ya huduma na maktaba, na kuacha maktaba zote zinazopatikana. huduma zilizochaguliwa.
Ufungaji wa dereva
Baada ya moduli kushikamana na PC, utahitaji kufunga madereva. Hizi zinaweza kuombwa kutoka kwa msambazaji wako (inapendekezwa). Siipendekezi kutafuta mtandao peke yako, kwa sababu ... Inaweza kuchukua muda mrefu kupata kilichosababisha mgongano wa kifaa.
Kati ya bandari zilizochaguliwa tunaona zifuatazo:
Windows
Linux
Description
Uchunguzi wa SimTech HS-USB
Msururu wa USB
Kiolesura cha Utambuzi
SimTech HS-USB NMEA
Msururu wa USB
Kiolesura cha GPS NMEA
SimTech HS-USB AT Port
Msururu wa USB
AT bandari Interface
SimTech HS-USB Modem
Msururu wa USB
Kiolesura cha bandari ya Modem
Sauti ya SimTech HS-USB
Msururu wa USB
Interface ya Audio ya USB
Adapta ya SimTech HS-USB WWAN
USB Net
Kiolesura cha NDIS WWAN
Kiolesura cha ADB cha Mchanganyiko wa Android
USB ADB
Android ongeza mlango wa utatuzi
Kama labda umegundua, hakuna USB ADB kati ya bandari kwenye skrini, hii ni kwa sababu bandari ya ADB kwenye moduli imefungwa kwa chaguo-msingi na unahitaji kuiwezesha kwa kutuma amri 'AT+CUSBADB=1' kwa AT. bandari ya moduli na uwashe upya ( hii inaweza kufanywa kwa amri 'AT+CRESET').
Kama matokeo, tunapata kiolesura tunachotaka katika meneja wa kifaa:
Tumemaliza na madereva, wacha tuendelee kwenye ADB.
Inasakinisha ADB
Nenda kwenye tovuti rasmi ya Msanidi Programu wa Android
Pakua na upakue kumbukumbu inayotokana na mzizi wa kiendeshi C.
Vigezo vya Mazingira
Baada ya kusakinisha Cygwin, utahitaji kuongeza njia Cygwin/bin/ kwa anuwai ya mazingira ya ukuzaji (Jopo la Udhibiti wa Kimsingi β Mfumo β Mipangilio ya mfumo wa hali ya juu β Advanced β Vigezo vya Mazingira β Vigezo vya Mfumo β Njia β Hariri) kama inavyoonyeshwa kwenye picha ya skrini hapa chini:
Vile vile, ongeza njia ya kumbukumbu ya ADB iliyopakuliwa na isiyopakiwa kwenye mzizi wa kiendeshi C.
Bonyeza OK mara kadhaa na uanze upya kompyuta.
Baada ya kuwasha upya, unaweza kuangalia kwa urahisi ikiwa ADB inafanya kazi kwa usahihi kwa kufungua mstari wa amri (Win+R β cmd) na kuandika amri 'toleo la adb'. Tunapata kitu kama hiki:
Wacha tuunganishe moduli kwenye Kompyuta (ikiwa ilifanyika kwamba ilikatwa) na angalia ikiwa ADB inaiona na amri ya 'vifaa vya adb':
Imefanywa, hii inakamilisha usanidi wa uunganisho kwenye moduli na tunaweza kuzindua shell ili kufanya kazi na moduli.
Kufungua na kuandaa SDK
Sasa kwa kuwa tuna ufikiaji wa ganda na tunaweza kuanza kufanya kazi na safu ya amri ya moduli, wacha tujaribu kukusanya programu yetu ya kwanza kupakia kwenye moduli.
Watu wengi wanaweza kuwa na shida na hii! Kwa sababu Moduli inaendeshwa kwenye mfumo wa uendeshaji wa Linux; ili kuzuia migongano wakati wa kuunda nambari chini ya Windows, ni bora kujumuisha katika mazingira asilia - Linux.
Hatutakaa kwa undani juu ya jinsi, kwa kukosekana kwa Linux na hamu ya kuiweka kwenye mashine yako, unaweza kuiweka kwenye mashine ya kawaida. Tutatumia VirtualBox, kusakinisha toleo la Ubuntu 20.04 (toleo la sasa wakati wa kuandika) na chini yake tutaanza kufanya kazi na wakusanyaji, SDK, nk.
Wacha tuende kwenye mazingira ya Linux na tufungue kumbukumbu iliyopokelewa kutoka kwa msambazaji.
simcom@VirtualBox:~/Desktop/OpenLinux$ sudo tar -xzf MDM9x07_OL_2U_22_V1.12_191227.tar.gz
Nenda kwenye saraka ya sim_open_sdk na uongeze mazingira:
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
Tunabaki kwenye folda moja na kutekeleza amri zinazofuata tukiwa ndani yake.
Sakinisha maktaba ya libncurses5-dev ikiwa haijasakinishwa:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get update && sudo apt-get install libncurses5-dev -y
Python, ikiwa haikuwekwa pia:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install python -y
na gcc:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install gcc
Mkusanyiko:
Sasa tunahitaji kukusanya faili kadhaa, tunaendesha amri zifuatazo sequentially.
Ikiwa dirisha la usanidi wa kernel litatokea wakati wa ujumuishaji, chagua tu Toka na urudi kwenye koni; hatuitaji kusanidi kernel sasa.
Tunafanya:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make
Kukusanya bootloader:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make aboot
Kukusanya kernel:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_menuconfig
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel
Kusanya mfumo wa faili wa mizizi:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make rootfs
Kwa watumiaji wa Linux itakuwa muhimu kuunda kiendesha moduli:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_module
Wacha tukusanye onyesho:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make demo
Baada ya hapo faili kadhaa mpya zitaonekana kwenye saraka ya sim_open_sdk/output:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ ls output/
appsboot.mbn boot.img demo_app helloworld system.img
NI
Hebu tujaribu kupakia onyesho kwenye moduli yetu na tuone kinachotoka humo.
Shusha
Katika saraka ya sim_open_sdk tunaweza kuona demo_app ya faili. Tunachukua na kuhamisha kwenye mizizi ya gari C kwenye PC ambayo moduli imeunganishwa. Kisha uzindua mstari wa amri ya Windows (Win + R -> cmd) na uingie:
C:>adb push C:demo_app /data/
Console itatuambia:
C:demo_app: 1 file pushed, 0 skipped. 151.4 MB/s (838900 bytes in 0.005s)
Hii ina maana kwamba faili ilitumwa kwa ufanisi kwa moduli na tunachopaswa kufanya ni kuiendesha. Tusisite.
Tunafanya:
C:>adb shell
Tunapanua haki za faili iliyopakuliwa:
/ # cdhmod 777 /data/demo_app
Na tunaendesha:
/ # /data/demo_app
Katika console sawa, moduli itatuambia yafuatayo:
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 >
Wacha tuangalie IMEI ya moduli, ingiza 7 (badilisha kwa hali ya amri) kisha ingiza 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 >
Kwa njia hii tutaona IMEI ya moduli.
Kama hitimisho
Natumai tuliweza kupata wazo la jumla la jinsi ya kuanza na moduli. Katika makala zifuatazo, tutaangalia kwa karibu uwezo ambao jukwaa la SIM7600E-H hutoa, pamoja na jinsi unaweza kusasisha programu yako mwenyewe kwa mbali kwenye moduli.
Ninakualika uulize maswali katika maoni, na pia uonyeshe ni sehemu gani ya uwezo wa moduli inapaswa kuonyeshwa katika nakala zinazofuata.
Chanzo: mapenzi.com