SIM7100在AM335X上移植

2021-09-27 12:34:35 字數 1224 閱讀 7160

有了前面的理論作為基礎,這次移植sim7100到am335x上非常順利, sim7100只是乙個例子,其實只要是高通方案的4g模組,估計移植過程都差不多,

sim7100是高通的方案,現在階段 在linux上,有2種途徑,gobinet 和qmi-wwan,我的am335x linux核心是3.2版本的,根據蒐集到的文件,只有3.4之後的才能使用qmi-wwan,或者我把am335x的核心公升級到最新的,但公升級核心的工作量也是相當大,這個板子即使調好了,公司也不一定用。

這時我找到乙個官方文件《sim7100 linux ndis user guide.pdf》,這上面介紹的方法,全是用qmi-wwan,文件上說3.4之後的,直接配置menuconfig 把qmi配置進去;   3.4之前的需要把qmi_wwan.c.  cdc‐wdm.c兩個檔案新增到工程中,重新編譯核心也可以使用qmi_wwan的方法。

本來我都準備使用gobinet ,看到這個文件之後,我就猶豫了,既然是simcom官方出品的,應該有可信度的,況且這種方法是現階段最簡單的方法,於是我就按文件上的方法一步一步進行。過程雖然有點坎坷,但還是弄出來了。

核心需要配置下面2項,由於對核心不熟悉,usb_wdm這個讓我找好半天,原來wdm()無線驅動模型,就在acm下面。

* config_usb_wdm=y 

* config_usb_usbnet=y 

qmi_wwan.c. 還需要修改,直接編譯就可以通過。 cdc‐wdm.c這個檔案需要按編譯提示的錯誤來修改,難度也一般,但是有個linux知識相關的問題,我不熟悉,比葫蘆畫飄,也搞定了,

原版是module_usb_driver(wdm_driver);

編譯不通過,我找了個其它版本的cdc‐wdm.c文件,對比發現,這個是這個寫的,

/* --- low level module stuff --- */

static int __init wdm_init(void)

static void __exit wdm_exit(void)

module_init(wdm_init);

module_exit(wdm_exit);

於是我修改如上,居然編譯很順利的通過了,

#撥號上網,字串內的符號需要轉義

echo "at\$qcrmcall=1,1" > /dev/ttyusb2

udhcpc -i wwan0 #獲取ip

#通過ping www.baidu.com檢視是否連線到網際網路

一切正常。

Am335x 啟動過程

啟動順序 針對ti oma3 evm linux一般的啟動順序是 上電的時候,omap裝置最開始的boot是從cpu內部的boot rom起來,這部分的 是出廠的時候固化的,不能被改變的。boot rom通過讀取外部boot pin的配置來尋找第乙個外部bootloader。可以尋找的裝置有nand...

在linux下使用am335x的DMA

這幾天在弄am3358的dma,簡化應用環境如下 am3358的fsmc接了一片fpga fpga上接adc am3358通過fpga以dma方式讀取adc資料。事先在網上查詢過相關資料,發現關於這方面工作的文章極少,即使ti官網上也沒什麼可靠資料,心裡還是有些忐忑的,結果在實現過程中發現意外的簡單...

Am335X編譯除錯環境搭建

am335x編譯除錯環境搭建 可以參考 1,配置伺服器端的編譯環境,參見sitara linuxsdk sdg 05.04.01.00.pdf p239 sitara linux sdk gcc toolchain 這裡由於是同事已經搭好環境,所以沒法確認細節問題 2,寫一段測試c include ...