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
Áð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
Þ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:
Þ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)
Þ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:
- GNU / Linux
- Cygwin
- Ökumenn
- 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 á
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.
- Við samþykkjum leyfissamninginn
- Tilgreindu uppsetningarmöppuna
- Við látum nauðsynlega hluti óbreytta
- Láttu það vera eins og það er
- Nokkrum sinnum „Næsta“, „Setja upp“ og í rauninni er það það
Er að setja upp Cygwin
Ennfremur, fyrir þróun, þarftu safn af bókasöfnum og tólum úr settinu sem fylgir
Þ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.
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:
Við erum búin með ökumennina, förum yfir í ADB.
Að setja upp ADB
Farðu á opinberu Android Developer vefsíðu
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:
Á sama hátt skaltu bæta slóðinni við niðurhalaða og ópakkaða ADB skjalasafnið við rót drifsins C.
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ð:
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:
Lokið, þetta lýkur uppsetningu tengingarinnar við eininguna og við getum ræst skelina til að vinna með einingunni.
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