日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

调试at91-sama5d27遇到的一些问题(3)

發布時間:2023/12/14 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 调试at91-sama5d27遇到的一些问题(3) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前兩篇請跳轉到
1:https://blog.csdn.net/qq_44766222/article/details/124164895
2:https://blog.csdn.net/qq_44766222/article/details/124172280

項目場景:

基于sama5d27的嵌入式產品的軟件開發,下面將描述一些我調試中遇到的一些問題,這個項目屬于是我第一個linux應用項目,調試中遇到了一些小白性的問題,整體的調試思路為:分析源碼-修改源碼-編譯源碼-運行-分析源碼。

編譯文件系統不能執行patchelf

查找原因是本機的庫文件鏈接出了,主要是 libstdc++.so.6這個庫問題,找到庫文件存放的地方,執行 sudo ln -s libstdc++.so.6.0.24 libstdc++.so.6鏈接庫文件后運行正確。

編譯工具問題

官方提供的buildroot默認使用網絡下載的編譯器,但是由于網絡問題下載不成功,編譯不通過,改用我們自己安裝的交叉編譯器,再修改menuconfig配置,紅色框內為本地交叉編譯器的路徑。

文件下載工具

由于設計的嵌入式板卡不帶有網絡通訊功能,故不能使用網口傳輸數據,僅有一個串口與外界通訊,我們可以利用lrz協議通過串口傳輸文件,例如傳輸庫文件、應用程序、調試數據等,在編譯文件系統的時候使能:br2_package_lrzsz=y.

根文件系統制作

我們使用的是spiflash,需要將buildroot編譯生成的文件系統制作成.jffs2格式的根文件系統,buildroot生成的文件在rootfs文件夾下面,下面我們將通過以下幾步實現根文件系統的生成;

sudo chown i rootfs/ -R sudo /usr/sbin/mkfs.jffs2 -d /home/i/work/developmentboard/fs-jffs2/rootfs -s 0x1000 -e 0x10000 -p 0xA00000 -o rootfs.jffs2 sudo chown i rootfs.jffs2 chmod 777 rootfs.jffs2

使用mkfs.jffs2 -h指令可以查看各個參數的含義,這里需要注意的是-e和-s參數,需要根據芯片手冊來配置,在uboot啟動的時候也可以看到具體的數值。

系統啟動問題

制作好文件系統后,下載到板卡,發現每次啟動后程序會停止在Initializing random number generator… done.這句話,不能進入系統,而接上仿真器啟動,系統卻能夠正常進入,最后閱讀內核源碼,發現程序只要一運行sleep函數,程序就會停止。最終定位是系統時鐘的問題,系統在運行sleep函數后,會將系統時鐘切換到慢時鐘工作,我們最開始在bootstrap里面配置的慢時鐘使用的是外部時鐘,而我們板卡實際沒有接外部時鐘,只能選擇系統內部時鐘,接仿真器的時候會提供一個外部的32k時鐘,所以接仿真器系統運行正確,修改bootstrap后系統能夠正常啟動。

應用程序串口使用

調試程序時,串口無法發送0x030x13等指令,原因是串口初始化的時候默認配置了流接收,對特殊字符進行了處理,按照以下配置后,程序運行正確:

options.c_iflag &= ~(BRKINT |ICRNL|INPCK|ISTRIP|IXON); options.c_oflag &= ~OPOST; options.c_cflag |= CLOCAL|CREAD; options.c_lflag &= ~(ICANON|ECHO|ECHOE|ISIG);

大家有問題可以相互討論,我也是小白,微信 yucaohua001

總結

以上是生活随笔為你收集整理的调试at91-sama5d27遇到的一些问题(3)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。