嵌入式項目開發中的問題及解決方法

High-precisionmeasurement

司南板卡串口阻塞讀(select)超時(timeout)原因:

1、波特率設置不正確,出廠時爲115200.因爲BSP設計時加入的uartlite模塊波特率爲9600。解決方法:

【1】通過CRU將司南板卡波特率修改爲9600.(有一些其它的設置也需要注意,比如設置採樣數據直接從串口輸出保存到核心板的存儲設備(如eMMC)中,不保存在司南板卡內存中)。

【2】在Vivado工程設計時將對應uartlite模塊模塊波特率修改爲115200.

方法1比較簡單,方法2一勞永逸。

2、電阻沒有拆(有可能是485或232轉串口的芯片沒有拆掉,或者是一些電阻沒有拆除的原因)

解決方法:

【1】交由硬件開發人員測試並調整。

 

4G撥號撥不通,即無法上網的原因:

1、 部分元器件沒有焊接或者焊接不緊密,虛焊等

解決方法:

【1】交由硬件開發人員測試。排查硬件可以通過更換4G模塊、4G卡、4G天線。調換主板和核心板的位置等

2、 設備樹的問題

解決方法:

【1】對照主芯片標準設備樹文件,或者詢問BSP開發人員,對照原有項目中已經應用的設備樹文件並進行修改測試。

3、 撥號程序本身的問題

【1】 檢查撥號程序,debug調試,或者復位4G模塊後重試。

 

注意備份BSP工程文件,燒錄的BSP工程文件如果是相同的,但是有一些設備運行不正常,出現故障多是因爲硬件的原因。

 

司南小板卡發熱導致黑盒子溫度高的原因:

1、 板卡一直是上電的狀態,並且一直在進行衛星數據採樣。

解決方法

【1】需要在硬件上控制給司南小板卡上電斷電。引出GPIO,設置引腳電平使能,可以拉高拉低。

【2】可以在不進行數據採集的時候設置司南板卡工作模式爲unlogall,並且關閉串口設備文件句柄。

 

WinSCP連接到嵌入式Linux文件系統出現文件讀寫錯誤或有時文件拷貝進去再次登錄發現未拷貝成功的原因:

1、固件程序出現內存問題(如讀寫衝突)

解決方法:

【1】sync刷新寫入EMMC。

【2】winscp,putty跳出SD卡目錄,再關機,防止出現文件系統只讀錯誤。


問題:燒錄BOOT.BIN到Flash的時候,提示找不到Jtag cable

原因1:硬件問題,主板上沒有焊上保險絲或者其他的元器件,或者是管腳順序連接不對。

原因2:SDK的問題,需要重啓Xilinx SDK即可解決該問題

原因3:Jtag燒寫器的問題,比如連接器中間連接點鬆動或者與PC連接鬆動


問題:Read-only file system的錯誤,涉及到系統存儲設備(eMMC)的寫操作,都會報錯"Read-only file system" 
原因:這種情況通常都是由於系統發現磁盤硬件故障或文件系統中文件被損壞之後而採取的保護機制導致的。爲了保護數據不破壞分區中已有內容,Linux在掛載文件系統時就只用read-only只讀方式加載了。
解決方法:
1、將系統重要的文件備份到遠程主機中
    scp -r  文件路徑  遠程主機用戶名@遠程主機IP地址:遠程目錄(文件名不變)或指定文件路徑及文件名
    通過scp -r 可以避免對系統有寫操作
    然後重啓系統。
2、以讀寫方式重新掛載文件系統  mount -o remount rw /
3、使用fsck手動修復,具體操作如下:
    fsck.ext4 -y  /dev/vda1(根分區對應的磁盤分區,可通過df -h 命令獲取)
友情提示:根據不同的文件系統試用不同的fsck版本,如果是ext3文件系統,應該使用fsck.ext3對文件系統進行修復。在修復的過程中可能花費時間較長,請耐心等待,不要輕易手動重啓服務器。修復完成之後可以通過命令“shutdown -r now"  reboot重啓服務器

問題延伸:
scp是secure copy的簡寫,用於在Linux下進行遠程拷貝文件的命令,和它類似的命令有cp,不過cp只是在本機進行拷貝不能跨服務器,而且scp傳輸是加密的。可能會稍微影響一下速度。當你服務器硬盤變爲只讀 read only system時,用scp可以幫你把文件移出來。另外,scp還非常不佔資源,不會提高多少系統負荷,在這一點上,rsync就遠遠不及它了。雖然 rsync比scp會快一點,但當小文件衆多的情況下,rsync會導致硬盤I/O非常高,而scp基本不影響系統正常使用。


問題:4G撥號程序出現Ndis disconnect錯誤

原因:物聯網卡與設備一一對應,一旦激活,則被鎖定,準確的說,應該是與4G模塊一一對應。如果更換需要在運營商平臺重新激活物聯網卡。若未重新激活,則物聯網卡會禁用從而撥號不成功。總之,這種情況就是需要在物聯網卡管理平臺重新激活物聯網卡。


問題:NB-IoT模塊通過串口連接到主芯片,在Linux操作系統下echo AT指令無輸出。

原因:硬件原因,元器件(關鍵電阻)漏焊

           軟件原因:設備文件描述符不正確,根據Vivado工程中的約束文件查找對應的文件句柄。


問題:USB接口問題,插上U盤,無法識別,在/dev下無對應文件句柄(正常情況下USB3.0對應sda4、USB2.0對應sda1)

原因:元器件(USB口)虛焊


問題:4G撥號程序打印信息太多,影響正常調試查看系統運行狀態,可以進行輸出重定向。

解決方法示例:./lteconnect  1>/dev/null 2>/dev/null & 或 1>/dev/null 2>&1 表示將stdout標準輸出重定向到空設備文件/dev/null,同時將stderr標準錯誤輸出的重定向跟stdout標準輸出重定向一致,也輸出到空設備件/dev/null。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章