OpenLinux 作為 SIM7600E-H 模組的一部分

OpenLinux 作為 SIM7600E-H 模組的一部分

開發自訂應用程式並將其載入到模組中的機制在 Linux 和 Windows 作業系統下均可使用。 在本文中,我們將詳細了解如何使用提供的 SDK 中的範例 芯訊通無線解決方案 編譯自訂應用程式並將其載入到模組中。

在撰寫本文之前,我的一位熟人(遠非 Linux 開發人員)要求我盡可能詳細地描述為 SIM7600E-H 模組開發自己的應用程式的過程。 評估材料呈現的可訪問性的標準是“以便我理解”這句話。

我邀請您來了解一下發生的事情。

文章定期補充和更新

序幕

通常,蜂窩通訊模組僅用於數據傳輸、語音通話、SMS傳輸等。 所有這一切都是透過外部控制微控制器發送的 AT 命令來完成的。 但是有一類模組允許您執行從外部載入的自訂程式碼。 在某些情況下,這會顯著降低設備的總體預算,使您可以在板上安裝更簡單(且預算相同)的微控制器或完全放棄它。 隨著由 Android 或 Linux 作業系統控制的 LTE 模組及其強大資源的出現,可以解決流行處理器可以完成的任何任務。 本文將討論SIM7600E-H,由Linux作業系統控制。 我們將了解如何下載並運行可執行應用程式。

在很多方面,該資料都基於文件“SIM7600 Open Linuxdevelopment quide”,但添加了一些內容,首先,俄語版本將很有用。 本文將幫助那些剛開始掌握該模組的人了解如何下載演示應用程序,並為後續工作提供必要的技能。

簡單介紹一下SIM7600E-H是誰

SIM7600E-H是一款基於高通ARM Cortex-A7 1.3GHz處理器建構的模組,內建Linux作業系統(核心3.18.20),能夠工作於歐洲(包括俄羅斯)頻段2G/3G/LTE,支援Cat .4 、提供最高可達150Mbps的下載速度及最高可達50Mbps的上傳速度。 豐富的周邊、工業溫度範圍以及內建 GPS/GLONASS 導航功能可滿足 M2M 領域現代化模組化解決方案的任何要求。

系統總覽

SIM7600E-H模組是基於Linux作業系統(核心3.18.20)。 反過來,檔案系統是建立在日誌檔案系統UBIFS(未排序區塊映像檔案系統)的基礎上的。

此檔案系統的重要功能包括:

  • 使用分割區,允許您建立、刪除或變更其大小;
  • 確保整個媒體卷上的記錄對齊;
  • 與壞塊一起使用;
  • 最大限度地減少斷電或其他故障期間資料遺失的可能性;
  • 保存日誌。

描述已採取 ,對於這樣的檔案系統也有更詳細的描述。

那些。 這種類型的檔案系統非常適合模組的惡劣運作條件和可能的電源問題。 但這並不意味著不穩定的電源條件將是模組的預期運作模式;它僅表明設備具有更大的生存能力。

Память

記憶體區域的分佈構造如下:

OpenLinux 作為 SIM7600E-H 模組的一部分

主要有以下三個面向需要強調:

ubi0:根檔案系統 – 唯讀並包含 Linux 核心本身
ubi0:usrfs – 主要用於使用者程式和資料存儲
ubi0:cahcefs – 保留用於 FOTA 更新。 如果可用空間不足以下載更新,系統將刪除未使用的文件,從而釋放空間。 但出於安全原因,您不應將文件放在那裡。

所有三個部分的分佈如下:

文件系統
尺寸
使用
可用的
利用%
鑲嵌在

ubi0:根檔案系統
40.7M
36.2M
4.4M
企業排放佔全球 89%
/

ubi0:usrfs
10.5M
360K
10.1M
3%
/數據

ubi0:cachefs
50.3M
20K
47.7M
0%
/緩存

可用功能

如上所述,此模組基於高通的 Cortex A7 晶片組建構。 如果不提供如此高效能的核心來處理使用者程式並透過將部分程式卸載到模組來卸載裝置的主處理器,那將是錯誤的。

對於使用者程序,我們可以使用以下週邊操作模式:

銷號
姓名
系統 GPIO 編號
默認操作
功能1
功能2

喚醒中斷

6
SPI_時鐘
-
UART1_RTS
-
-
B-PD
-

7
SPI_味噌
-
UART1_接收
-
-
B-PD
-

8
SPI_MOSI
-
串口1_發送
-
-
B-PD
-

9
SPI_CS
-
UART1_CTS
-
-
B-PD
-

21
SD_CMD
-
SD卡
-
-
B-PD
-

22
SD數據0
-
SD卡
-
-
B-PD
-

23
SD數據1
-
SD卡
-
-
B-PD
-

24
SD數據2
-
SD卡
-
-
B-PD
-

25
SD數據3
-
SD卡
-
-
B-PD
-

26
SD_CLK
-
SD卡
-
-
PN
-

27
SDIO_數據1
-
無線局域網
-
-
B-PD
-

28
SDIO_數據2
-
無線局域網
-
-
B-PD
-

29
SDIO_CMD
-
無線局域網
-
-
B-PD
-

30
SDIO_數據0
-
無線局域網
-
-
B-PD
-

31
SDIO_數據3
-
無線局域網
-
-
B-PD
-

32
SDIO_時鐘
-
無線局域網
-
-
PN
-

33
通用輸入輸出口3
GPIO_1020
MIFI_POWER_EN
GPIO
MIFI_POWER_EN
B-PU
-

34
通用輸入輸出口6
GPIO_1023
MIFI_SLEEP_CLK
GPIO
MIFI_SLEEP_CLK
B-PD
-

46
模數轉換器2
-
ADC
-
-
-
-

47
模數轉換器1
-
ADC
-
-
B-PU
-

48
SD_DET
GPIO_26
GPIO
GPIO
SD_DET
B-PD
X

49
狀態
GPIO_52
Status
GPIO
Status
B-PD
X

50
通用輸入輸出口43
GPIO_36
MIFI_COEX
GPIO
MIFI_COEX
B-PD
-

52
通用輸入輸出口41
GPIO_79
BT
GPIO
BT
B-PD
X

55
SCL
-
I2C_SCL
-
-
B-PD
-

56
SDA
-
I2C_SDA
-
-
B-PU
-

66
轉運站
-
UART2_RTS
-
-
B-PD
-

67
CTS
-
UART2_CTS
-
-
B-PD
-

68
接收器
-
UART2_接收
-
-
B-PD
-

69
RI
-
GPIO(RI)
-
-
B-PD
-

70
DCD
-
GPIO
-
-
B-PD
-

71
發送端
-
串口2_發送
-
-
B-PD
-

72
數據傳輸率
-
GPIO(DTR)
-
-
B-PD
X

73
PCM_輸出
-
PCM
-
-
B-PD
-

74
PCM_輸入
-
PCM
-
-
B-PD
-

75
PCM_同步
-
PCM
-
-
B-PD
-

76
PCM時鐘
-
PCM
-
-
B-PU
-

87
通用輸入輸出口77
通用輸入輸出口77
BT
GPIO
BT
B-PD
-

同意,該列​​表令人印象深刻,並注意:部分外圍設備用於將模組作為路由器進行操作。 那些。 基於這樣的模組,您可以製作一個小型路由器,透過 Wi-Fi 分配網路。 順便說一下,有一個現成的解決方案,稱為SIM7600E-H-MIFI,是一張miniPCIE卡,帶有焊接的SIM7600E-H模組和多個天線引腳,其中一個是Wi-Fi天線。 不過,這是另一篇文章的主題。

星期三(不是一週中的某一天)

芯訊通無線解決方案 為開發人員提供選擇最熟悉的 Linux 或 Windows 開發環境的機會。 如果我們談論的是模組上的可執行應用程序,那麼最好選擇Windows,它會更快、更容易。 如果期望有複雜的應用架構和後續升級,最好使用Linux。 我們還需要Linux來編譯可執行檔以便隨後載入到模組中;虛擬機器足以進行編譯。

您需要的 SDK 無法免費下載,您可以向經銷商索取。

安裝用於使用模組的實用程式

下面我們將在大多數使用者最熟悉的作業系統 Windows 下進行操作。

我們需要透過幾個簡單的步驟安裝必要的軟體,以便隨後掌握該模組的使用:

  1. GNU / Linux的
  2. Cygwin的
  3. 司機
  4. 亞行

安裝 GNU/Linux

要建立應用程序,您可以使用任何 ARM-Linux 相容編譯器。 我們將使用 SourceryCodeBenchLiteARM GNU/Linux 轉換器,可從下列位置下載: 鏈接.

為了確保所有組件都正確安裝,我將留下一些安裝過程的螢幕截圖。 原則上,安裝沒有什麼複雜的。

為了確保所有組件都正確安裝,我將留下一些安裝過程的螢幕截圖。 原則上,安裝沒有什麼複雜的。

  1. 我們接受許可協議
    OpenLinux 作為 SIM7600E-H 模組的一部分
  2. 指定安裝資料夾
    OpenLinux 作為 SIM7600E-H 模組的一部分
  3. 我們保留必要的組件不變
    OpenLinux 作為 SIM7600E-H 模組的一部分
  4. 保持原樣
    OpenLinux 作為 SIM7600E-H 模組的一部分
  5. 幾次「下一步」、「安裝」基本上就這樣了
    OpenLinux 作為 SIM7600E-H 模組的一部分

安裝 Cygwin

此外,為了進行開發,您將需要提供的一組庫和實用程序 Cygwin的。 這裡一切都很簡單,目前版本的 Cygwin 可以在專案的官方網站上免費下載;在撰寫本文時,版本 3.1.5 已經可用,這就是我們在準備材料時使用的版本。

安裝 Cygwin 沒有什麼複雜的,您唯一需要選擇的是一個鏡像,安裝程式將從該鏡像下載必要的文件,選擇任何一個並安裝它,以及一組實用程式和庫,留下所有可用的庫和選擇的公用事業。

驅動安裝

模組與PC連接後,需要安裝驅動程式。 這些可以向您的經銷商索取(建議)。 我不建議你自己上網搜索,因為...... 可能需要花費大量時間來尋找導致設備衝突的原因。

OpenLinux 作為 SIM7600E-H 模組的一部分

在選定的連接埠中,我們看到以下內容:

Windows
Linux
描述

SimTech HS-USB 診斷
USB串口
診斷接口

SimTech HS-USB NMEA
USB串口
GPS NMEA 介面

SimTech HS-USB AT 端口
USB串口
AT埠介面

SimTech HS-USB 數據機
USB串口
數據機連接埠接口

SimTech HS-USB 音訊
USB串口
USB音頻接口

SimTech HS-USB WWAN 轉接器
USB網路
NDIS WWAN 介面

Android複合ADB界面
USB ADB
Android新增偵錯連接埠

你可能注意到了,截圖中的連接埠中沒有USB ADB,這是因為模組中的ADB連接埠預設是關閉的,需要透過向AT發送命令「AT+CUSBADB=1」來啟用它模組的連接埠並重新啟動它(這可以使用命令“AT+CRESET”來完成)。

結果,我們在裝置管理員中得到了想要的介面:

OpenLinux 作為 SIM7600E-H 模組的一部分

我們已經完成了驅動程序,讓我們繼續 ADB。

安裝亞銀

前往 Android 開發者官方網站 鏈接。 我們不會下載龐大的 Android Studio;我們只需要命令列,可以透過「下載 SDK Platform-Tools for Windows」連結下載。

OpenLinux 作為 SIM7600E-H 模組的一部分

下載產生的檔案並將其解壓縮到磁碟機 C 的根目錄。

環境變量

安裝Cygwin後,您需要將路徑Cygwin/bin/新增至開發環境變數(經典控制面板→系統→進階系統設定→進階→環境變數→系統變數→路徑→編輯),如下圖所示:

OpenLinux 作為 SIM7600E-H 模組的一部分

同樣,將下載並解壓縮的ADB存檔的路徑新增至C磁碟根目錄。

OpenLinux 作為 SIM7600E-H 模組的一部分

點擊“確定”幾次並重新啟動電腦。

重新啟動後,您可以透過開啟命令列(Win+R→cmd)並輸入命令「adb version」來輕鬆檢查ADB是否正常運作。 我們得到這樣的東西:

OpenLinux 作為 SIM7600E-H 模組的一部分

讓我們將模組連接到 PC(如果碰巧它已斷開連接)並使用“adb devices”命令檢查 ADB 是否看到它:

OpenLinux 作為 SIM7600E-H 模組的一部分

完成後,就完成了模組連接的配置,我們可以啟動 shell 來使用這個模組。

OpenLinux 作為 SIM7600E-H 模組的一部分

解壓縮並編譯SDK

現在我們已經可以存取 shell 並可以開始使用模組的命令列了,讓我們嘗試編譯第一個應用程式以載入到模組中。

很多人可能都會遇到這個困難! 因為此模組運行在Linux作業系統上;為了避免在Windows下編譯程式碼時發生衝突,最好在本機環境-Linux中進行編譯。

我們不會詳細討論在沒有 Linux 且希望將其安裝在您的電腦上的情況下如何將其安裝在虛擬機器上。 我們將使用 VirtualBox,安裝 Ubuntu 版本 20.04(撰寫本文時的當前版本),並在其下方開始使用編譯器、SDK 等。

讓我們進入 Linux 環境並解壓縮從發行商收到的存檔。

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

進入sim_open_sdk目錄,新增環境:

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 

我們保留在同一資料夾中並在其中執行後續命令。
如果尚未安裝,請安裝 libncurses5-dev 函式庫:

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

Python,如果也沒有安裝:

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

對於 Linux 用戶來說,編譯模組驅動程式是相關的:

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

讓我們編譯一下示範:

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

之後sim_open_sdk/output目錄中會出現幾個新檔案:

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

演示

讓我們嘗試將演示載入到我們的模組中,看看會產生什麼結果。

下載

在sim_open_sdk目錄中我們可以看到檔案demo_app. 我們將其轉移到模組所連接的 PC 上的磁碟機 C 的根目錄下。 然後啟動 Windows 命令列(Win+R -> cmd)並輸入:

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 >   

我們來看模組的IMEI,輸入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 >

這樣我們就可以看到模組的IMEI。

作為結論

我希望我們能夠大致了解如何開始使用該模組。 在接下來的文章中,我們將詳細介紹SIM7600E-H平台提供的功能,以及如何遠端更新模組中自己的應用程式。

我邀請您在評論中提出問題,並指出該模組的哪些方面的功能應該在後續文章中反映出來。

來源: www.habr.com

添加評論