Fərdi proqramın hazırlanması və modula yüklənməsi mexanizmi həm Linux, həm də Windows əməliyyat sistemlərində mövcuddur. Bu yazıda təqdim olunan SDK-dan nümunələrdən istifadə edərək necə edildiyini ətraflı nəzərdən keçirəcəyik
Məqaləni yazmazdan əvvəl, Linux üçün inkişafdan uzaq tanışlarımdan biri, SIM7600E-H modulu üçün öz ərizəmi hazırlamaq prosesini mümkün qədər ətraflı təsvir etmək məsələsinə yanaşmağı xahiş etdi. Materialın təqdimatının əlçatanlığını qiymətləndirmək üçün meyarı "başa düşməyim üçün" ifadəsi idi.
Sizi baş verənlərlə tanış olmağa dəvət edirəm.
Məqalə müntəzəm olaraq əlavə olunur və yenilənir
Müqəddimə
Tipik olaraq, mobil rabitə modulları yalnız məlumatların ötürülməsi, səsli zənglər, SMS ötürülməsi və sair üçün istifadə olunur. Bütün bunlar xarici idarəetmə mikrokontrolöründən göndərilən AT əmrləri vasitəsilə həyata keçirilir. Ancaq xaricdən yüklənmiş xüsusi kodu icra etməyə imkan verən modullar kateqoriyası var. Bəzi hallarda, bu, cihazın ümumi büdcəsini əhəmiyyətli dərəcədə azaldır, lövhədə daha sadə (və eyni dərəcədə büdcəli) mikrokontroller quraşdırmağa və ya ondan tamamilə imtina etməyə imkan verir. Android və ya Linux ƏS ilə idarə olunan LTE modullarının və onların güclü resurslarının meydana çıxması ilə məşhur prosessorlar üçün mövcud olan istənilən tapşırıqları həll etmək mümkündür. Bu yazıda Linux OS tərəfindən idarə olunan SIM7600E-H haqqında danışılacaq. İcra oluna bilən proqramın necə endirilməsi və işə salınacağına baxacağıq.
Bir çox cəhətdən material "SIM7600 Open Linux develop quide" sənədinə əsaslanır, lakin bəzi əlavələr və ilk növbədə rus versiyası faydalı olacaqdır. Məqalə modulu yenicə mənimsəməyə başlayanlara demo tətbiqini necə yükləməyi başa düşməyə və sonrakı iş üçün lazımi bacarıqları təmin etməyə kömək edəcəkdir.
SIM7600E-H-nin kim olduğu haqqında qısaca
SIM7600E-H, Qualcomm-dan ARM Cortex-A7 1.3GHz prosessoru üzərində qurulmuş moduldur, daxilində Linux əməliyyat sisteminə (kernel 3.18.20) malikdir, Cat-ı dəstəkləyən Avropa (Rusiya daxil olmaqla) 2G/3G/ LTE tezlik diapazonları ilə işləmək qabiliyyətinə malikdir. .4, 150Mbps-ə qədər maksimum yükləmə sürətini və 50Mbps-ə qədər yükləmə sürətini təmin edir. Zəngin periferiya qurğuları, sənaye temperatur diapazonu və quraşdırılmış GPS/QLONASS naviqasiyasının mövcudluğu M2M sahəsində müasir modul həll üçün istənilən tələbləri əhatə edir.
Sistemə ümumi baxış
SIM7600E-H modulu Linux əməliyyat sisteminə (kernel 3.18.20) əsaslanır. Öz növbəsində, fayl sistemi jurnallı fayl sistemi UBIFS (Unsorted Block Image File System) əsasında qurulur.
Bu fayl sisteminin mühüm xüsusiyyətlərinə aşağıdakılar daxildir:
- arakəsmələrlə işləyir, onların ölçüsünü yaratmağa, silməyə və ya dəyişdirməyə imkan verir;
- bütün media həcmi üzrə qeydin uyğunlaşdırılmasını təmin edir;
- Bad blokları ilə işləyir;
- elektrik kəsilməsi və ya digər nasazlıqlar zamanı məlumat itkisi ehtimalını minimuma endirir;
- logların aparılması.
Təsvir alınıb
Bunlar. Bu tip fayl sistemi modulun ağır iş şəraiti və mümkün enerji problemləri üçün idealdır. Ancaq bu, qeyri-sabit güc şəraitinin modulun gözlənilən iş rejimi olacağı demək deyil, bu, yalnız cihazın daha çox canlılığını göstərir.
yaddaş
Yaddaş sahələrinin paylanması aşağıdakı kimi qurulur:
Üç əsas sahəni vurğulamaq lazımdır:
ubi0:rootfs – yalnız oxunur və Linux nüvəsinin özündən ibarətdir
ubi0:usrfs – əsasən istifadəçi proqramı və məlumatların saxlanması üçün istifadə olunur
ubi0:cahcefs – FOTA yeniləmələri üçün qorunur. Mövcud yer yeniləməni yükləmək üçün kifayət deyilsə, sistem istifadə olunmamış faylları siləcək və bununla da yer boşaldacaq. Ancaq təhlükəsizlik səbəbi ilə fayllarınızı orada yerləşdirməməlisiniz.
Hər üç bölmə aşağıdakı kimi paylanır:
Fayl sistemi
boy
Istifadə
Mövcud
% istifadə edin
Üzərinə quraşdırılmışdır
ubi0:rootfs
40.7M
36.2M
4.4M
89%
/
ubi0:usrfs
10.5M
360K
10.1M
3%
/ məlumat
ubi0:keflər
50.3M
20K
47.7M
0%
/gizli yer
Mövcud funksionallıq
Yuxarıda qeyd edildiyi kimi, modul Qualcomm-dan Cortex A7 çipsetində qurulub. İstifadəçi proqramını emal etmək və proqramın bir hissəsini modula yükləməklə cihazın əsas prosessorunu boşaltmaq üçün belə yüksək performanslı nüvəni təmin etməmək düzgün olmazdı.
İstifadəçi proqramı üçün aşağıdakı periferik iş rejimləri bizim üçün əlçatan olacaq:
Pin nömrəsi
ad
Sys GPIO nömrəsi.
Defolt fəaliyyət
Func1
Func2
Çəkmək
Oyanma fasiləsi
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 kart
-
-
B-PD
-
22
SD_DATA0
-
SD kart
-
-
B-PD
-
23
SD_DATA1
-
SD kart
-
-
B-PD
-
24
SD_DATA2
-
SD kart
-
-
B-PD
-
25
SD_DATA3
-
SD kart
-
-
B-PD
-
26
SD_CLK
-
SD kart
-
-
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
Status
GPIO
Status
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
D.C.D.
-
GPIO
-
-
B-PD
-
71
TxD
-
UART2_Tx
-
-
B-PD
-
72
DTR
-
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
-
Razılaşın, siyahı təsir edicidir və qeyd edin: periferik hissələrin bir hissəsi modulu marşrutlaşdırıcı kimi idarə etmək üçün istifadə olunur. Bunlar. Belə bir modul əsasında İnterneti Wi-Fi vasitəsilə yayacaq kiçik bir marşrutlaşdırıcı edə bilərsiniz. Yeri gəlmişkən, SIM7600E-H-MIFI adlı hazır bir həll var və lehimli SIM7600E-H modulu və bir neçə antenna pinləri olan miniPCIE kartıdır, onlardan biri Wi-Fi antenasıdır. Ancaq bu ayrı bir məqalənin mövzusudur.
çərşənbə (həftənin bir günü deyil)
Sizə lazım olanı yükləmək üçün sərbəst mövcud deyil - distribyutorunuzdan tələb edə biləcəyiniz SDK.
Modulla işləmək üçün utilitlərin quraşdırılması
Bundan sonra biz əksər istifadəçilər üçün ən tanış əməliyyat sistemi kimi Windows altında işləyəcəyik.
Sonradan modulla işləməyi mənimsəmək üçün lazımi proqramı bir neçə sadə addımda quraşdırmalıyıq:
- GNU / Linux
- Cygwin
- Sürücülər
- AİB
GNU/Linux quraşdırılması
Tətbiqi yaratmaq üçün hər hansı ARM-Linux uyğun kompilyatordan istifadə edə bilərsiniz. Biz yükləmək üçün SourceryCodeBenchLiteARM GNU/Linuxtranslater istifadə edəcəyik.
Bütün komponentlərin düzgün quraşdırılmasını təmin etmək üçün quraşdırma prosesinin bir neçə ekran görüntüsünü buraxacağam. Prinsipcə, quraşdırmada mürəkkəb bir şey yoxdur.
Bütün komponentlərin düzgün quraşdırılmasını təmin etmək üçün quraşdırma prosesinin bir neçə ekran görüntüsünü buraxacağam. Prinsipcə, quraşdırmada mürəkkəb bir şey yoxdur.
- Lisenziya müqaviləsini qəbul edirik
- Quraşdırma qovluğunu təyin edin
- Lazımi komponentləri dəyişmədən buraxırıq
- Olduğu kimi buraxın
- Bir neçə dəfə "Növbəti", "Quraşdır" və əsasən budur
Cygwin quraşdırılması
Bundan əlavə, inkişaf üçün sizə təqdim olunan dəstdən bir sıra kitabxanalar və kommunal proqramlar lazımdır
Cygwin-i quraşdırmaqda mürəkkəb bir şey yoxdur, seçməli olduğunuz yeganə şey, quraşdırıcının lazımi faylları endirəcəyi, hər hansı birini seçəcəyi və quraşdıracağı güzgüdür, həmçinin bütün mövcud kitabxanaları tərk edərək bir sıra kommunal və kitabxanalar. kommunallar seçildi.
Sürücülərin quraşdırılması
Modul kompüterə qoşulduqdan sonra sürücüləri quraşdırmalı olacaqsınız. Bunlar distribyutorunuzdan tələb oluna bilər (tövsiyə olunur). İnternetdə təkbaşına axtarış etməyi məsləhət görmürəm, çünki... Cihaz münaqişəsinə səbəb olanı tapmaq çox vaxt apara bilər.
Seçilmiş portlar arasında aşağıdakıları görürük:
Windows
Linux
Təsvir
SimTech HS-USB Diaqnostikası
USB Seriyası
Diaqnostik interfeys
SimTech HS-USB NMEA
USB Seriyası
GPS NMEA interfeysi
SimTech HS-USB AT Port
USB Seriyası
AT port interfeysi
SimTech HS-USB Modem
USB Seriyası
Modem port interfeysi
SimTech HS-USB Audio
USB Seriyası
USB Audio Interface
SimTech HS-USB WWAN Adapteri
USB Net
NDIS WWAN interfeysi
Android Kompozit ADB İnterfeysi
USB ADB
Android əlavə debug portu
Yəqin ki, qeyd etdiyiniz kimi, ekran görüntüsündəki portlar arasında USB ADB yoxdur, çünki moduldakı AİB portu standart olaraq bağlıdır və AT+CUSBADB=1' əmrini göndərərək onu aktivləşdirməlisiniz. modulun portunu açın və onu yenidən başladın (bu, 'AT+CRESET' əmri ilə edilə bilər).
Nəticədə cihaz menecerində istədiyiniz interfeysi əldə edirik:
Sürücülərlə işimiz bitdi, keçək AİB-ə.
ADB quraşdırılması
Rəsmi Android Developer veb saytına keçin
Yaranan arxivi C sürücüsünün kökünə endirin və açın.
Ətraf Mühit Dəyişənləri
Cygwin-i quraşdırdıqdan sonra aşağıdakı ekran görüntüsündə göstərildiyi kimi inkişaf mühiti dəyişənlərinə (Klassik İdarəetmə Paneli → Sistem → Qabaqcıl sistem parametrləri → Qabaqcıl → Ətraf Mühit Dəyişənləri → Sistem Dəyişənləri → Yol → Redaktə) Cygwin/bin/ yolunu əlavə etməlisiniz:
Eynilə, yüklənmiş və açılmamış AİB arxivinin yolunu C sürücüsünün kökünə əlavə edin.
Bir neçə dəfə OK düyməsini basın və kompüteri yenidən başladın.
Yenidən yüklədikdən sonra, komanda xəttini (Win+R → cmd) açıb 'adb version' əmrini yazmaqla ADB-nin düzgün işlədiyini asanlıqla yoxlaya bilərsiniz. Bu kimi bir şey alırıq:
Gəlin modulu PC-yə qoşaq (əgər o, əlaqəni kəsibsə) və ADB-nin onu görüb-görmədiyini 'adb devices' əmri ilə yoxlayaq:
Tamamlandı, bu, modulla əlaqənin konfiqurasiyasını tamamlayır və biz modulla işləmək üçün qabığı işə sala bilərik.
SDK-nın açılması və tərtib edilməsi
İndi qabığa çıxışımız var və modulun əmr xətti ilə işə başlaya bildik, gəlin modula yükləmək üçün ilk tətbiqimizi tərtib etməyə çalışaq.
Bir çox insan bununla çətinlik çəkə bilər! Çünki Modul Linux əməliyyat sistemində işləyir; Windows altında kodu tərtib edərkən toqquşmaların qarşısını almaq üçün yerli mühitdə - Linux-da tərtib etmək yaxşıdır.
Linux olmadıqda və onu maşınınıza quraşdırmaq istəyiniz olmadığı təqdirdə onu virtual maşına necə quraşdıra biləcəyiniz barədə ətraflı danışmayacağıq. VirtualBox-dan istifadə edəcəyik, Ubuntu 20.04 versiyasını quraşdıracağıq (yazı zamanı hazırkı versiya) və onun altında kompilyatorlar, SDK-lar və s. ilə işləməyə başlayacağıq.
Linux mühitinə keçək və distribyutordan alınan arxivi açaq.
simcom@VirtualBox:~/Desktop/OpenLinux$ sudo tar -xzf MDM9x07_OL_2U_22_V1.12_191227.tar.gz
Sim_open_sdk qovluğuna gedin və mühiti əlavə edin:
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
Biz eyni qovluqda qalırıq və orada olarkən sonrakı əmrləri yerinə yetiririk.
Əgər quraşdırılmayıbsa, libncurses5-dev kitabxanasını quraşdırın:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get update && sudo apt-get install libncurses5-dev -y
Python, əgər o da quraşdırılmayıbsa:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install python -y
və gcc:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install gcc
Tərtib:
İndi bir neçə faylı tərtib etməliyik, aşağıdakı əmrləri ardıcıl olaraq yerinə yetiririk.
Kompilyasiya zamanı nüvənin konfiqurasiyası pəncərəsi açılırsa, sadəcə Exit seçin və konsola qayıdın; indi nüvəni konfiqurasiya etməyə ehtiyacımız yoxdur.
Biz həyata keçiririk:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make
Yükləyicinin tərtib edilməsi:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make aboot
Kernelin tərtib edilməsi:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_menuconfig
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel
Kök fayl sistemini tərtib edin:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make rootfs
Linux istifadəçiləri üçün modul drayverini tərtib etmək aktual olacaq:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_module
Demo tərtib edək:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make demo
Bundan sonra sim_open_sdk/output qovluğunda bir neçə yeni fayl görünəcək:
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ ls output/
appsboot.mbn boot.img demo_app helloworld system.img
Demo
Demonu modulumuza yükləməyə çalışaq və ondan nə çıxdığını görək.
Download
sim_open_sdk qovluğunda biz demo_app faylını görə bilərik. Biz onu götürürük və modulun qoşulduğu PC-də C sürücüsünün kökünə köçürürük. Sonra Windows əmr satırını işə salın (Win+R -> cmd) və daxil edin:
C:>adb push C:demo_app /data/
Konsol bizə deyəcək:
C:demo_app: 1 file pushed, 0 skipped. 151.4 MB/s (838900 bytes in 0.005s)
Bu o deməkdir ki, fayl modula uğurla göndərilib və bizə sadəcə onu işə salmaq qalır. Gəlin tərəddüd etməyək.
Biz həyata keçiririk:
C:>adb shell
Yüklənmiş faylın hüquqlarını genişləndiririk:
/ # cdhmod 777 /data/demo_app
Və qaçırıq:
/ # /data/demo_app
Eyni konsolda modul bizə aşağıdakıları deyəcək:
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 >
Modulun IMEI-inə baxaq, 7-ni daxil edin (komanda rejiminə keçin) və sonra 5-i daxil edin:
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 >
Bu şəkildə modulun IMEI-ni görəcəyik.
Nəticə olaraq
Ümid edirəm ki, modula necə başlamaq barədə ümumi fikir əldə edə bildik. Növbəti məqalələrdə SIM7600E-H platformasının təmin etdiyi imkanları, həmçinin modulda öz tətbiqinizi uzaqdan necə yeniləyə biləcəyinizi daha yaxından nəzərdən keçirəcəyik.
Sizi şərhlərdə suallar verməyə, həmçinin modulun imkanlarının hansı aspektinin sonrakı məqalələrdə əks etdirilməli olduğunu göstərməyə dəvət edirəm.
Mənbə: www.habr.com