OpenLinux kama sehemu ya moduli za SIM7600E-H

OpenLinux kama sehemu ya moduli za SIM7600E-H

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 SIMCom Wireless Solutions kukusanya na kupakia programu maalum katika moduli.

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 hivyo, pia kuna maelezo ya kina zaidi ya mfumo huo wa faili.

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:

OpenLinux kama sehemu ya moduli za SIM7600E-H

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)

SIMCom Wireless Solutions kutoa fursa kwa wasanidi kuchagua mazingira yanayojulikana zaidi ya ukuzaji kwa Linux au Windows. Ikiwa tunazungumza juu ya programu moja inayoweza kutekelezwa kwenye moduli, basi ni bora kuchagua Windows, itakuwa haraka na rahisi. Ikiwa usanifu tata wa programu na uboreshaji unaofuata unatarajiwa, ni bora kutumia Linux. Tunahitaji pia Linux kukusanya faili zinazoweza kutekelezwa kwa ajili ya upakiaji unaofuata kwenye moduli; mashine pepe inatosha kukusanywa.

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:

  1. GNU / Linux
  2. Cygwin
  3. Madereva
  4. ADB

Inasakinisha GNU/Linux

Ili kuunda programu, unaweza kutumia kikusanyaji chochote kinacholingana na ARM-Linux. Tutatumia SourceryCodeBenchLiteARM GNU/Linuxtranslater inayopatikana kwa kupakuliwa kiungo.

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.

  1. Tunakubali makubaliano ya leseni
    OpenLinux kama sehemu ya moduli za SIM7600E-H
  2. Taja folda ya usakinishaji
    OpenLinux kama sehemu ya moduli za SIM7600E-H
  3. Tunaacha vipengele muhimu bila kubadilika
    OpenLinux kama sehemu ya moduli za SIM7600E-H
  4. Wacha kama ilivyo
    OpenLinux kama sehemu ya moduli za SIM7600E-H
  5. Mara kadhaa "Ijayo", "Sakinisha" na kimsingi ndivyo hivyo
    OpenLinux kama sehemu ya moduli za SIM7600E-H

Inaweka Cygwin

Zaidi ya hayo, kwa maendeleo, utahitaji seti ya maktaba na huduma kutoka kwa seti iliyotolewa Cygwin. Kila kitu ni rahisi hapa, toleo la sasa la Cygwin linaweza kupakuliwa bure kwenye tovuti rasmi ya mradi; wakati wa kuandika, toleo la 3.1.5 lilipatikana, ambalo ndilo tulilotumia wakati wa kuandaa nyenzo.

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.

OpenLinux kama sehemu ya moduli za SIM7600E-H

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:

OpenLinux kama sehemu ya moduli za SIM7600E-H

Tumemaliza na madereva, wacha tuendelee kwenye ADB.

Inasakinisha ADB

Nenda kwenye tovuti rasmi ya Msanidi Programu wa Android kiungo. Hatutapakua Studio kubwa ya Android; tunahitaji tu mstari wa amri, unaopatikana kwa kupakuliwa kupitia kiungo cha "Pakua SDK Platform-Tools for Windows".

OpenLinux kama sehemu ya moduli za SIM7600E-H

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:

OpenLinux kama sehemu ya moduli za SIM7600E-H

Vile vile, ongeza njia ya kumbukumbu ya ADB iliyopakuliwa na isiyopakiwa kwenye mzizi wa kiendeshi C.

OpenLinux kama sehemu ya moduli za SIM7600E-H

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:

OpenLinux kama sehemu ya moduli za SIM7600E-H

Wacha tuunganishe moduli kwenye Kompyuta (ikiwa ilifanyika kwamba ilikatwa) na angalia ikiwa ADB inaiona na amri ya 'vifaa vya adb':

OpenLinux kama sehemu ya moduli za SIM7600E-H

Imefanywa, hii inakamilisha usanidi wa uunganisho kwenye moduli na tunaweza kuzindua shell ili kufanya kazi na moduli.

OpenLinux kama sehemu ya moduli za SIM7600E-H

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

Kuongeza maoni