OpenLinux sem hluti af SIM7600E-H einingum

OpenLinux sem hluti af SIM7600E-H einingum

Aðgerðin til að þróa sérsniðið forrit og hlaða því inn í eininguna er fáanlegt bæði undir Linux og Windows stýrikerfum. Í þessari grein munum við skoða hvernig, með því að nota dæmi frá SDK sem fylgir SIMCom þráðlausar lausnir setja saman og hlaða sérsniðnu forriti í einingu.

Áður en ég skrifaði greinina bað einn kunningi minn, sem er langt frá því að þróa fyrir Linux, mig að nálgast málið að lýsa ferlinu við að þróa mitt eigið forrit fyrir SIM7600E-H eininguna eins ítarlega og mögulegt er. Viðmiðið við mat á aðgengi að framsetningu efnis var setningin „svo ég skilji“.

Ég býð þér að kynna þér hvað gerðist.

Greinin er reglulega bætt við og uppfærð

Aðdragandi

Venjulega eru farsímasamskiptaeiningar eingöngu notaðar fyrir gagnaflutning, símtöl, SMS sendingu og þess háttar. Allt þetta er gert með AT skipunum sem sendar eru frá ytri stýrisörstýringu. En það er flokkur eininga sem gerir þér kleift að framkvæma sérsniðinn kóða hlaðinn utan frá. Í sumum tilfellum dregur þetta verulega úr heildarkostnaði tækisins, sem gerir þér kleift að setja upp einfaldari (og jafn fjárhagslegan) örstýringu á borðið eða yfirgefa hann alveg. Með tilkomu LTE eininga sem stjórnað er af Android eða Linux OS og öflugum auðlindum þeirra er hægt að leysa öll verkefni sem eru í boði fyrir vinsæla örgjörva. Þessi grein mun tala um SIM7600E-H, stjórnað af Linux OS. Við munum skoða hvernig á að hlaða niður og keyra keyrsluforrit.

Að mörgu leyti er efnið byggt á skjalinu „SIM7600 Open Linux development quide“, en nokkrar viðbætur og fyrst og fremst rússneska útgáfan munu nýtast vel. Greinin mun hjálpa þeim sem eru að byrja að ná tökum á einingunni að skilja hvernig á að hlaða niður kynningarforritinu og veita nauðsynlega færni fyrir síðari vinnu.

Stuttlega um hver SIM7600E-H er

SIM7600E-H er eining byggð á ARM Cortex-A7 1.3GHz örgjörva frá Qualcomm, með Linux stýrikerfinu (kjarna 3.18.20) inni, sem getur unnið með evrópskum (þar á meðal rússneskum) tíðnisviðum 2G/3G/ LTE sem styður Cat. .4, sem veitir hámarks niðurhalshraða allt að 150Mbps og upphleðsluhraða allt að 50Mbps. Ríkuleg jaðartæki, iðnaðarhitasvið og tilvist innbyggðrar GPS/GLONASS siglingar ná yfir allar kröfur um nútímalega einingalausn á M2M sviðinu.

Kerfisyfirlit

SIM7600E-H einingin er byggð á Linux stýrikerfinu (kjarna 3.18.20). Aftur á móti er skráarkerfið byggt á grunni dagbókarskráakerfisins UBIFS (Unsorted Block Image File System).

Mikilvægir eiginleikar þessa skráarkerfis eru:

  • vinnur með skiptingum, gerir þér kleift að búa til, eyða eða breyta stærð þeirra;
  • tryggir upptökuröðun yfir allt hljóðstyrk fjölmiðla;
  • vinnur með slæmum kubbum;
  • lágmarkar líkur á gagnatapi við rafmagnsleysi eða aðrar bilanir;
  • halda skrár.

Lýsing tekin þess vegna, það er líka ítarlegri lýsing á slíku skráarkerfi.

Þeir. Þessi tegund af skráarkerfi er tilvalin fyrir erfiðar rekstrarskilyrði einingarinnar og hugsanleg rafmagnsvandamál. En þetta þýðir ekki að óstöðug aflskilyrði séu væntanleg notkunaraðferð einingarinnar; það gefur aðeins til kynna meiri hagkvæmni tækisins.

minni

Dreifing minnisvæða er byggð upp sem hér segir:

OpenLinux sem hluti af SIM7600E-H einingum

Það eru þrjú meginsvið til að draga fram:

ubi0:rætur – skrifvarinn og inniheldur sjálfan Linux kjarnann
ubi0:usrfs - notað fyrst og fremst fyrir notendaforrit og gagnageymslu
ubi0:cahcefs – frátekin fyrir FOTA uppfærslur. Ef laust pláss er ekki nóg til að hlaða niður uppfærslunni mun kerfið eyða ónotuðum skrám og losa þannig um pláss. En af öryggisástæðum ættir þú ekki að setja skrárnar þínar þar.

Öllum þremur hlutum er dreift sem hér segir:

Skráarkerfi
Size
Notað
Laus
Nota%
Fest á

ubi0:rætur
40.7M
36.2M
4.4M
89%
/

ubi0:usrfs
10.5M
360K
10.1M
3%
/ gögn

ubi0: cachefs
50.3M
20K
47.7M
0%
/ skyndiminni

Laus virkni

Eins og getið er hér að ofan er einingin byggð á Cortex A7 kubbasettinu frá Qualcomm. Það væri rangt að útvega ekki svona afkastamikinn kjarna til að vinna úr notendaforritinu og afhlaða aðalörgjörva tækisins með því að losa einhvern hluta forritsins í eininguna.

Fyrir notendaforritið verða eftirfarandi jaðaraðgerðastillingar í boði fyrir okkur:

Pin nr.
heiti
Sys GPIO nr.
Sjálfgefin aðgerð
Func1
Func2
Pull
Truflun á vöku

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-kort
-
-
B-PD
-

22
SD_DATA0
-
SD-kort
-
-
B-PD
-

23
SD_DATA1
-
SD-kort
-
-
B-PD
-

24
SD_DATA2
-
SD-kort
-
-
B-PD
-

25
SD_DATA3
-
SD-kort
-
-
B-PD
-

26
SD_CLK
-
SD-kort
-
-
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
Staða
GPIO
Staða
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
náttúruauðlindir
-
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
DTRMore
-
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
-

Sammála, listinn er áhrifamikill og athugið: hluti af jaðarbúnaði er notaður til að stjórna einingunni sem leið. Þeir. Byggt á slíkri einingu geturðu búið til lítinn bein sem mun dreifa internetinu í gegnum Wi-Fi. Við the vegur, það er tilbúin lausn sem heitir SIM7600E-H-MIFI og er miniPCIE kort með lóðaðri SIM7600E-H mát og nokkrum loftnetspinnum, einn þeirra er Wi-Fi loftnet. Hins vegar er þetta efni fyrir sérstaka grein.

Miðvikudagur (ekki vikudagur)

SIMCom þráðlausar lausnir veita forriturum tækifæri til að velja kunnuglegasta þróunarumhverfið fyrir Linux eða Windows. Ef við erum að tala um eitt keyranlegt forrit á einingu, þá er betra að velja Windows, það verður fljótlegra og auðveldara. Ef búist er við flóknum forritaarkitektúr og síðari uppfærslum er betra að nota Linux. Við þurfum líka Linux til að setja saman keyranlegar skrár fyrir síðari hleðslu í eininguna; sýndarvél nægir til að safna saman.

Það sem þú þarft er ekki ókeypis til niðurhals - SDK, sem þú getur beðið um frá dreifingaraðila þínum.

Að setja upp tól til að vinna með eininguna

Hér á eftir munum við vinna undir Windows sem best þekkta stýrikerfið fyrir flesta notendur.

Við þurfum að setja upp nauðsynlegan hugbúnað í nokkrum einföldum skrefum til að ná tökum á því að vinna með einingunni:

  1. GNU / Linux
  2. Cygwin
  3. Ökumenn
  4. ADB

Setur upp GNU/Linux

Til að byggja forritið geturðu notað hvaða ARM-Linux samhæfðan þýðanda sem er. Við munum nota SourceryCodeBenchLiteARM GNU/Linuxtranslater sem hægt er að hlaða niður á tengill.

Til að tryggja að allir íhlutir séu rétt settir upp mun ég skilja eftir nokkrar skjámyndir af uppsetningarferlinu. Í grundvallaratriðum er ekkert flókið við uppsetninguna.

Til að tryggja að allir íhlutir séu rétt settir upp mun ég skilja eftir nokkrar skjámyndir af uppsetningarferlinu. Í grundvallaratriðum er ekkert flókið við uppsetninguna.

  1. Við samþykkjum leyfissamninginn
    OpenLinux sem hluti af SIM7600E-H einingum
  2. Tilgreindu uppsetningarmöppuna
    OpenLinux sem hluti af SIM7600E-H einingum
  3. Við látum nauðsynlega hluti óbreytta
    OpenLinux sem hluti af SIM7600E-H einingum
  4. Láttu það vera eins og það er
    OpenLinux sem hluti af SIM7600E-H einingum
  5. Nokkrum sinnum „Næsta“, „Setja upp“ og í rauninni er það það
    OpenLinux sem hluti af SIM7600E-H einingum

Er að setja upp Cygwin

Ennfremur, fyrir þróun, þarftu safn af bókasöfnum og tólum úr settinu sem fylgir Cygwin. Allt er einfalt hér, núverandi útgáfu af Cygwin er hægt að hlaða niður ókeypis á opinberu vefsíðu verkefnisins; þegar þetta var skrifað var útgáfa 3.1.5 fáanleg, sem er það sem við notuðum við undirbúning efnið.

Það er ekkert flókið við að setja upp Cygwin, það eina sem þú þarft að velja er spegill þar sem uppsetningarforritið mun hlaða niður nauðsynlegum skrám, velja hvaða sem er og setja það upp, svo og safn af tólum og bókasöfnum, sem skilur eftir öll tiltæk bókasöfn og veitur valin.

Uppsetning bílstjóri

Eftir að einingin er tengd við tölvuna þarftu að setja upp rekla. Hægt er að biðja um þetta hjá dreifingaraðilanum þínum (mælt með). Ég mæli ekki með því að leita á netinu á eigin spýtur, því... Það getur tekið langan tíma að finna hvað olli árekstri tækisins.

OpenLinux sem hluti af SIM7600E-H einingum

Meðal valinna hafna sjáum við eftirfarandi:

Windows
Linux
Lýsing

SimTech HS-USB greining
USB raðnúmer
Greiningarviðmót

SimTech HS-USB NMEA
USB raðnúmer
GPS NMEA tengi

SimTech HS-USB AT tengi
USB raðnúmer
AT tengi

SimTech HS-USB mótald
USB raðnúmer
Mótaldstengi tengi

SimTech HS-USB hljóð
USB raðnúmer
USB hljóðviðmót

SimTech HS-USB WWAN millistykki
USB net
NDIS WWAN tengi

Android samsett ADB tengi
USB ADB
Android bæta við kembiforrit

Eins og þú hefur sennilega tekið eftir, þá er ekkert USB ADB á milli portanna á skjámyndinni, þetta er vegna þess að ADB tengið í einingunni er sjálfgefið lokað og þú þarft að virkja það með því að senda skipunina 'AT+CUSBADB=1' til AT tengi einingarinnar og endurræstu hana (þetta er hægt að gera með skipuninni 'AT+CRESET').

Fyrir vikið fáum við viðeigandi viðmót í tækjastjóranum:

OpenLinux sem hluti af SIM7600E-H einingum

Við erum búin með ökumennina, förum yfir í ADB.

Að setja upp ADB

Farðu á opinberu Android Developer vefsíðu tengill. Við munum ekki hlaða niður fyrirferðarmiklu Android stúdíóinu; við þurfum bara skipanalínuna, sem hægt er að hlaða niður í gegnum tengilinn „Hlaða niður SDK Platform-Tools for Windows“.

OpenLinux sem hluti af SIM7600E-H einingum

Sæktu og pakkaðu skjalasafninu sem myndast niður í rót drifsins C.

Umhverfisbreytur

Eftir að Cygwin hefur verið sett upp þarftu að bæta slóðinni Cygwin/bin/ við þróunarumhverfisbreyturnar (klassískt stjórnborð → Kerfi → Ítarlegar kerfisstillingar → Ítarlegar → Umhverfisbreytur → Kerfisbreytur → Path → Breyta) eins og sýnt er á skjámyndinni hér að neðan:

OpenLinux sem hluti af SIM7600E-H einingum

Á sama hátt skaltu bæta slóðinni við niðurhalaða og ópakkaða ADB skjalasafnið við rót drifsins C.

OpenLinux sem hluti af SIM7600E-H einingum

Smelltu á OK nokkrum sinnum og endurræstu tölvuna.

Eftir endurræsingu geturðu auðveldlega athugað hvort ADB virkar rétt með því að opna skipanalínuna (Win+R → cmd) og slá inn skipunina 'adb version'. Við fáum eitthvað á þessa leið:

OpenLinux sem hluti af SIM7600E-H einingum

Tengjum eininguna við tölvuna (ef það gerðist að hún var aftengd) og athugaðu hvort ADB sjái hana með 'adb devices' skipuninni:

OpenLinux sem hluti af SIM7600E-H einingum

Lokið, þetta lýkur uppsetningu tengingarinnar við eininguna og við getum ræst skelina til að vinna með einingunni.

OpenLinux sem hluti af SIM7600E-H einingum

Að taka upp og setja saman SDK

Nú þegar við höfum aðgang að skelinni og getum byrjað að vinna með skipanalínu einingarinnar, skulum við reyna að setja saman fyrsta forritið okkar til að hlaða inn í eininguna.

Margir gætu átt í erfiðleikum með þetta! Vegna þess að Einingin keyrir á Linux stýrikerfinu; til að forðast árekstra þegar kóða er safnað undir Windows er best að safna saman í innfæddu umhverfi - Linux.

Við munum ekki dvelja í smáatriðum um hvernig þú getur sett það upp á sýndarvél, ef Linux er ekki til staðar og löngun til að setja það upp á vélinni þinni. Við munum nota VirtualBox, setja upp Ubuntu útgáfu 20.04 (núverandi útgáfa þegar þetta er skrifað) og undir henni munum við byrja að vinna með þýðendur, SDK o.s.frv.

Við skulum fara í Linux umhverfið og taka upp skjalasafnið sem berast frá dreifingaraðilanum.

simcom@VirtualBox:~/Desktop/OpenLinux$ sudo tar -xzf MDM9x07_OL_2U_22_V1.12_191227.tar.gz 

Farðu í sim_open_sdk skrána og bættu umhverfinu við:

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 

Við höldum áfram í sömu möppu og framkvæmum síðari skipanir meðan á henni stendur.
Settu upp libncurses5-dev bókasafnið ef það hefur ekki verið sett upp:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get update && sudo apt-get install libncurses5-dev -y

Python, ef það var ekki sett upp heldur:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install python -y

og gcc:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install gcc

Samantekt:

Nú þurfum við að setja saman nokkrar skrár, við keyrum eftirfarandi skipanir í röð.

Ef kjarnastillingarglugginn birtist við söfnun skaltu bara velja Hætta og fara aftur í stjórnborðið; við þurfum ekki að stilla kjarnann núna.

Við gerum:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make

Að setja saman ræsiforrit:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make aboot

Að setja saman kjarnann:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_menuconfig
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel

Settu saman rótarskráarkerfið:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make rootfs

Fyrir Linux notendur mun skipta máli að setja saman einingar rekla:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_module

Við skulum setja saman kynninguna:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make demo

Eftir það munu nokkrar nýjar skrár birtast í sim_open_sdk/output möppunni:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ ls output/
appsboot.mbn  boot.img  demo_app  helloworld  system.img

Демо

Prófum að hlaða kynninguna inn í eininguna okkar og sjáum hvað kemur út úr því.

Download

Í sim_open_sdk skránni getum við séð skrána demo_app. Við tökum það og flytjum það í rót drifs C á tölvunni sem einingin er tengd við. Ræstu síðan Windows skipanalínuna (Win+R -> cmd) og sláðu inn:

C:>adb push C:demo_app /data/

Stjórnborðið mun segja okkur:

C:demo_app: 1 file pushed, 0 skipped. 151.4 MB/s (838900 bytes in 0.005s)

Þetta þýðir að skráin var send í eininguna og allt sem við þurfum að gera er að keyra hana. Við skulum ekki hika.

Við gerum:

C:>adb shell

Við útvíkkum réttindi niðurhalaðrar skráar:

/ # cdhmod 777 /data/demo_app

Og við keyrum:

/ # /data/demo_app

Í sömu stjórnborði mun einingin segja okkur eftirfarandi:

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 >   

Við skulum skoða IMEI einingarinnar, sláðu inn 7 (skipta yfir í stjórnunarham) og sláðu síðan inn 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 >

Þannig munum við sjá IMEI einingarinnar.

Sem niðurstaða

Ég vona að okkur hafi tekist að fá almenna hugmynd um hvernig eigi að byrja með eininguna. Í eftirfarandi greinum munum við skoða nánar möguleikana sem SIM7600E-H pallurinn býður upp á, svo og hvernig þú getur fjaruppfært eigið forrit í einingunni.

Ég býð þér að spyrja spurninga í athugasemdunum og einnig gefa til kynna hvaða þáttur getu einingarinnar ætti að endurspeglast í síðari greinum.

Heimild: www.habr.com

Bæta við athugasemd