ОпенЛинук као део СИМ7600Е-Х модула

ОпенЛинук као део СИМ7600Е-Х модула

Механизам за развој прилагођене апликације и њено учитавање у модул доступан је и под оперативним системима Линук и Виндовс. У овом чланку ћемо детаљно погледати како, користећи примере из обезбеђеног СДК-а СИМЦом бежична решења компајлирајте и учитајте прилагођену апликацију у модул.

Пре писања чланка, један од мојих познаника, далеко од развоја за Линук, замолио ме је да што детаљније приступим питању описивања процеса развоја сопствене апликације за модул СИМ7600Е-Х. Критеријум за процену приступачности презентације материјала био је израз „да разумем“.

Позивам вас да се упознате са оним што се догодило.

Чланак се редовно допуњује и ажурира

Прелуде

Типично, модули мобилне комуникације се користе само за пренос података, гласовне позиве, СМС пренос и слично. Све ово се ради преко АТ команди послатих са екстерног контролног микроконтролера. Али постоји категорија модула који вам омогућавају да извршите прилагођени код учитан споља. У неким случајевима, ово значајно смањује укупан буџет уређаја, омогућавајући вам да инсталирате једноставнији (и једнако прорачунат) микроконтролер на плочу или га потпуно напустите. Са појавом ЛТЕ модула које контролише Андроид или Линук ОС и њихових моћних ресурса, могуће је решити све задатке који су доступни популарним процесорима. Овај чланак ће говорити о СИМ7600Е-Х, који контролише Линук ОС. Погледаћемо како да преузмете и покренете извршну апликацију.

На много начина, материјал је заснован на документу „СИМ7600 Опен Линук девелопмент куиде“, али неки додаци и, пре свега, руска верзија ће бити корисни. Чланак ће помоћи онима који тек почињу да савладавају модул да разумеју како да преузму демо апликацију и обезбеде неопходне вештине за каснији рад.

Укратко о томе ко је СИМ7600Е-Х

СИМ7600Е-Х је модул изграђен на АРМ Цортек-А7 1.3ГХз процесору компаније Куалцомм, који има Линук оперативни систем (кернел 3.18.20) унутра, способан да ради са европским (укључујући руски) фреквентним опсезима 2Г/3Г/ ЛТЕ који подржава Цат .4, пружајући максималну брзину преузимања до 150Мбпс и брзину отпремања до 50Мбпс. Богати периферни уређаји, индустријски температурни опсег и присуство уграђене ГПС/ГЛОНАСС навигације покривају све захтеве за модерно модуларно решење у М2М пољу.

Преглед система

СИМ7600Е-Х модул је базиран на Линук оперативном систему (кернел 3.18.20). Заузврат, систем датотека је изграђен на основу система датотека са дневником УБИФС (Унсортед Блоцк Имаге Филе Систем).

Важне карактеристике овог система датотека укључују:

  • ради са партицијама, омогућава вам да креирате, избришете или промените њихову величину;
  • обезбеђује поравнање снимања по целом волумену медија;
  • ради са лошим блоковима;
  • минимизира вероватноћу губитка података током нестанка струје или других кварова;
  • вођење дневника.

Опис преузет стога, постоји и детаљнији опис таквог система датотека.

Оне. Овај тип система датотека је идеалан за тешке услове рада модула и могуће проблеме са напајањем. Али то не значи да ће нестабилни услови напајања бити очекивани начин рада модула, то само указује на већу одрживост уређаја.

меморија

Дистрибуција меморијских области је конструисана на следећи начин:

ОпенЛинук као део СИМ7600Е-Х модула

Постоје три главне области које треба истаћи:

уби0:роотфс – само за читање и садржи сам Линук кернел
уби0:усрфс – користи се првенствено за складиштење корисничких програма и података
уби0:цахцефс – резервисано за ФОТА ажурирања. Ако расположиви простор није довољан за преузимање ажурирања, систем ће избрисати неискоришћене датотеке и тако ослободити простор. Али из безбедносних разлога, не би требало да постављате своје датотеке тамо.

Сва три одељка су распоређена на следећи начин:

Систем датотека
veličina
Употребљен
На располагању
Користи%
Постављена на

уби0:роотфс
КСНУМКСМ
КСНУМКСМ
КСНУМКСМ
100%
/

уби0:усрфс
КСНУМКСМ
КСНУМКСК
КСНУМКСМ
3%
/ подаци

уби0:цацхефс
КСНУМКСМ
КСНУМКСК
КСНУМКСМ
0%
/ цацхе

Доступна функционалност

Као што је горе поменуто, модул је изграђен на Цортек А7 чипсету компаније Куалцомм. Било би погрешно не обезбедити језгро тако високих перформанси за обраду корисничког програма и растерећење главног процесора уређаја тако што се неки део програма пребацује на модул.

За кориснички програм биће нам доступни следећи режими рада периферије:

Пин Но.
Име
Сис ГПИО бр.
Подразумевана радња
Фунц1
Фунц2
Вуци
Прекид буђења

6
СПИ_ЦЛК
-
УАРТ1_РТС
-
-
Б-ПД
-

7
СПИ_МИСО
-
УАРТ1_Рк
-
-
Б-ПД
-

8
СПИ_МОСИ
-
УАРТ1_Тк
-
-
Б-ПД
-

9
СПИ_ЦС
-
УАРТ1_ЦТС
-
-
Б-ПД
-

21
СД_ЦМД
-
СД картица
-
-
Б-ПД
-

22
СД_ДАТА0
-
СД картица
-
-
Б-ПД
-

23
СД_ДАТА1
-
СД картица
-
-
Б-ПД
-

24
СД_ДАТА2
-
СД картица
-
-
Б-ПД
-

25
СД_ДАТА3
-
СД картица
-
-
Б-ПД
-

26
СД_ЦЛК
-
СД картица
-
-
Б-ПН
-

27
СДИО_ДАТА1
-
ВЛАН
-
-
Б-ПД
-

28
СДИО_ДАТА2
-
ВЛАН
-
-
Б-ПД
-

29
СДИО_ЦМД
-
ВЛАН
-
-
Б-ПД
-

30
СДИО_ДАТА0
-
ВЛАН
-
-
Б-ПД
-

31
СДИО_ДАТА3
-
ВЛАН
-
-
Б-ПД
-

32
СДИО_ЦЛК
-
ВЛАН
-
-
Б-ПН
-

33
ГПИО3
ГПИО_1020
МИФИ_ПОВЕР_ЕН
ГПИО
МИФИ_ПОВЕР_ЕН
Б-ПУ
-

34
ГПИО6
ГПИО_1023
МИФИ_СЛЕЕП_ЦЛК
ГПИО
МИФИ_СЛЕЕП_ЦЛК
Б-ПД
-

46
АДЦ2
-
АДЦ
-
-
-
-

47
АДЦ1
-
АДЦ
-
-
Б-ПУ
-

48
СД_ДЕТ
ГПИО_26
ГПИО
ГПИО
СД_ДЕТ
Б-ПД
X

49
СТАТУС
ГПИО_52
статус
ГПИО
статус
Б-ПД
X

50
ГПИО43
ГПИО_36
МИФИ_ЦОЕКС
ГПИО
МИФИ_ЦОЕКС
Б-ПД
-

52
ГПИО41
ГПИО_79
BT
ГПИО
BT
Б-ПД
X

55
СЦЛ
-
И2Ц_СЦЛ
-
-
Б-ПД
-

56
СДА је
-
И2Ц_СДА
-
-
Б-ПУ
-

66
РТС
-
УАРТ2_РТС
-
-
Б-ПД
-

67
ЦТС
-
УАРТ2_ЦТС
-
-
Б-ПД
-

68
РкД
-
УАРТ2_Рк
-
-
Б-ПД
-

69
RI
-
ГПИО(РИ)
-
-
Б-ПД
-

70
ДЦД
-
ГПИО
-
-
Б-ПД
-

71
ТкД
-
УАРТ2_Тк
-
-
Б-ПД
-

72
ДТР
-
ГПИО (ДТР)
-
-
Б-ПД
X

73
ПЦМ_ОУТ
-
ПЦМ
-
-
Б-ПД
-

74
ПЦМ_ИН
-
ПЦМ
-
-
Б-ПД
-

75
ПЦМ_СИНЦ
-
ПЦМ
-
-
Б-ПД
-

76
ПЦМ_ЦЛК
-
ПЦМ
-
-
Б-ПУ
-

87
ГПИО77
ГПИО77
BT
ГПИО
BT
Б-ПД
-

Слажем се, листа је импресивна и имајте на уму: део периферије се користи за рад модула као рутера. Оне. На основу таквог модула можете направити мали рутер који ће дистрибуирати Интернет преко Ви-Фи-ја. Иначе, постоји готово решење под називом СИМ7600Е-Х-МИФИ и то је миниПЦИЕ картица са залемљеним СИМ7600Е-Х модулом и неколико антенских пинова, један од њих је Ви-Фи антена. Међутим, ово је тема за посебан чланак.

среда (није дан у недељи)

СИМЦом бежична решења пружају могућност програмерима да изаберу најпознатије развојно окружење за Линук или Виндовс. Ако говоримо о једној извршној апликацији на модулу, онда је боље изабрати Виндовс, то ће бити брже и лакше. Ако се очекује сложена архитектура апликације и накнадне надоградње, боље је користити Линук. Такође нам је потребан Линук за компајлирање извршних датотека за накнадно учитавање у модул виртуелна машина је довољна за компилацију.

Оно што вам је потребно није бесплатно доступно за преузимање – СДК, који можете затражити од свог дистрибутера.

Инсталирање услужних програма за рад са модулом

У даљем тексту ћемо радити под Виндовс-ом као оперативним системом који је најпознатији већини корисника.

Мораћемо да инсталирамо потребан софтвер у неколико једноставних корака да бисмо касније савладали рад са модулом:

  1. ГНУ / Линук
  2. Цигвин
  3. Возачи
  4. АДБ

Инсталирање ГНУ/Линук-а

Да бисте направили апликацију, можете користити било који АРМ-Линук компатибилан компајлер. Користићемо СоурцериЦодеБенцхЛитеАРМ ГНУ/Линуктранслатер доступан за преузимање на веза.

Да бих осигурао да су све компоненте исправно инсталиране, оставићу неколико снимака екрана процеса инсталације. У принципу, у инсталацији нема ништа компликовано.

Да бих осигурао да су све компоненте исправно инсталиране, оставићу неколико снимака екрана процеса инсталације. У принципу, у инсталацији нема ништа компликовано.

  1. Принимаем опоравак лиценце
    ОпенЛинук као део СИМ7600Е-Х модула
  2. Одредите инсталациони фолдер
    ОпенЛинук као део СИМ7600Е-Х модула
  3. Неопходне компоненте остављамо непромењене
    ОпенЛинук као део СИМ7600Е-Х модула
  4. Оставите како јесте
    ОпенЛинук као део СИМ7600Е-Х модула
  5. Неколико пута „Даље“, „Инсталирај“ и у суштини то је то
    ОпенЛинук као део СИМ7600Е-Х модула

Инсталирање Цигвин-а

Даље, за развој ће вам требати скуп библиотека и услужних програма из приложеног скупа Цигвин. Овде је све једноставно, актуелна верзија Цигвин-а се може бесплатно преузети на званичном сајту пројекта у време писања, верзија 3.1.5, што смо користили приликом припреме материјала;

Нема ништа компликовано у инсталирању Цигвин-а, једино што треба да изаберете је огледало из којег ће инсталатер преузети потребне датотеке, изабрати било коју и инсталирати, као и скуп услужних програма и библиотека, остављајући све доступне библиотеке и одабрани услужни програми.

Инсталирање управљачких

Након што је модул повезан са рачунаром, мораћете да инсталирате драјвере. Ово можете затражити од вашег дистрибутера (препоручено). Не препоручујем да сами претражујете интернет, јер... Може потрајати доста времена да се пронађе шта је изазвало сукоб уређаја.

ОпенЛинук као део СИМ7600Е-Х модула

Међу изабраним портовима видимо следеће:

виндовс
линук
Опис

СимТецх ХС-УСБ Диагностицс
УСБ серијски
Дијагностички интерфејс

СимТецх ХС-УСБ НМЕА
УСБ серијски
ГПС НМЕА интерфејс

СимТецх ХС-УСБ АТ порт
УСБ серијски
Интерфејс АТ порта

СимТецх ХС-УСБ модем
УСБ серијски
Интерфејс порта модема

СимТецх ХС-УСБ аудио
УСБ серијски
УСБ Аудио Интерфаце

СимТецх ХС-УСБ ВВАН адаптер
УСБ Нет
НДИС ВВАН интерфејс

Андроид композитни АДБ интерфејс
УСБ АДБ
Андроид додаје порт за отклањање грешака

Као што сте вероватно приметили, нема УСБ АДБ међу портовима на снимку екрана, то је зато што је АДБ порт у модулу подразумевано затворен и морате да га омогућите слањем команде 'АТ+ЦУСБАДБ=1' на АТ порт модула и поново га покрените (ово се може урадити командом 'АТ+ЦРЕСЕТ').

Као резултат, добијамо жељени интерфејс у ​​менаџеру уређаја:

ОпенЛинук као део СИМ7600Е-Х модула

Завршили смо са драјверима, пређимо на АДБ.

Инсталирање АДБ-а

Идите на званичну веб локацију Андроид програмера веза. Нећемо преузимати гломазни Андроид Студио, само нам је потребна командна линија, доступна за преузимање преко везе „Преузми СДК Платформ-Тоолс за Виндовс“.

ОпенЛинук као део СИМ7600Е-Х модула

Преузмите и распакујте резултујућу архиву у корен диск јединице Ц.

Променљиве окружења

Након инсталирања Цигвин-а, мораћете да додате путању Цигвин/бин/ у променљиве развојног окружења (Класична контролна табла → Систем → Напредне системске поставке → Напредно → Променљиве окружења → Системске варијабле → Путања → Уреди) као што је приказано на слици испод:

ОпенЛинук као део СИМ7600Е-Х модула

Слично томе, додајте путању до преузете и распаковане АДБ архиве у корен диск јединице Ц.

ОпенЛинук као део СИМ7600Е-Х модула

Кликните на ОК неколико пута и поново покрените рачунар.

Након поновног покретања, можете лако да проверите да ли АДБ ради исправно тако што ћете отворити командну линију (Вин+Р → цмд) и укуцати команду 'адб версион'. Добијамо нешто овако:

ОпенЛинук као део СИМ7600Е-Х модула

Хајде да повежемо модул са рачунаром (ако се десило да је искључен) и проверимо да ли га АДБ види командом 'адб девицес':

ОпенЛинук као део СИМ7600Е-Х модула

Готово, овим је завршена конфигурација везе са модулом и можемо покренути љуску да ради са модулом.

ОпенЛинук као део СИМ7600Е-Х модула

Распакивање и компајлирање СДК-а

Сада када имамо приступ љусци и можемо да почнемо да радимо са командном линијом модула, хајде да покушамо да компајлирамо нашу прву апликацију за учитавање у модул.

Многи људи могу имати потешкоћа са овим! Јер Модул ради на Линук оперативном систему да би се избегле колизије при компајлирању кода под Виндовс-ом, најбоље је компајлирати у матичном окружењу - Линук-у;

Нећемо се детаљно задржавати на томе како, у недостатку Линука и жеље да га инсталирате на своју машину, можете га инсталирати на виртуелну машину. Користићемо ВиртуалБок, инсталирати Убунту верзију 20.04 (тренутну верзију у време писања) и под њим ћемо почети да радимо са компајлерима, СДК-овима итд.

Идемо у Линук окружење и распакујемо архиву добијену од дистрибутера.

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

Идите у директоријум сим_опен_сдк и додајте окружење:

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 

Остајемо у истој фасцикли и извршавамо следеће команде док смо у њој.
Инсталирајте библиотеку либнцурсес5-дев ако није инсталирана:

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

Питхон, ако ни он није инсталиран:

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

и гцц:

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

Компилација:

Сада треба да компајлирамо неколико датотека, покрећемо следеће команде узастопно.

Ако се прозор конфигурације језгра појави током компилације, само изаберите Изађи и вратите се на конзолу, не морамо сада да конфигуришемо језгро.

Радимо:

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

Компајлирање покретачког програма:

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

Компајлирање кернела:

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

Компилирајте основни систем датотека:

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

За кориснике Линук-а биће релевантно да компајлирају управљачки програм модула:

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

Хајде да саставимо демо:

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

Након чега ће се појавити неколико нових датотека у директоријуму сим_опен_сдк/оутпут:

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

Демо

Хајде да покушамо да учитамо демо у наш модул и видимо шта ће из тога произаћи.

Довнлоад

У директоријуму сим_опен_сдк можемо видети датотеку демо_апп. Узимамо га и преносимо у корен диск јединице Ц на рачунару на који је модул повезан. Затим покрените Виндовс командну линију (Вин+Р -> цмд) и унесите:

C:>adb push C:demo_app /data/

Конзола ће нам рећи:

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

То значи да је датотека успешно послата у модул и све што треба да урадимо је да је покренемо. немојмо оклевати.

Радимо:

C:>adb shell

Проширујемо права преузете датотеке:

/ # cdhmod 777 /data/demo_app

И трчимо:

/ # /data/demo_app

У истој конзоли, модул ће нам рећи следеће:

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 >   

Погледајмо ИМЕИ модула, унесите 7 (пређите на командни режим), а затим унесите 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 >

На овај начин ћемо видети ИМЕИ модула.

Као закључак

Надам се да смо успели да добијемо општу идеју о томе како да почнемо са модулом. У наредним чланцима ћемо детаљније погледати могућности које платформа СИМ7600Е-Х пружа, као и како можете даљински ажурирати сопствену апликацију у модулу.

Позивам вас да постављате питања у коментарима, а такође назначите који аспект могућности модула треба да се одрази у наредним чланцима.

Извор: ввв.хабр.цом

Додај коментар