點擊上方「嵌入式大雜燴」,選擇「置頂公眾號」第一時間查看嵌入式筆記!
嵌入式軟體開發中,最常用的調試方法就是:log列印調試法及在線調試。log列印調試法相關文章:bug解決不了?使用日誌法。
開發STM32時,我們有IDE可以用,IDE中已經集成有調試器,配合仿真器使用起來很方便。而在Linux應用程式的開發中,常常直接在命令行使用gdb進行調試,或者可以使用VSCode+gdb進行調試。
gdb調試相關文章:GDB調試器原來那麼簡單
而在嵌入式Linux中,我們如何對開發板上的arm程序進行調試呢?
我們可以使用VSCode+gdb+gdbserver來調試我們arm開發板上的arm程序。下面簡單介紹一下使用方法,前提是開發板與PC可以進行無線/有線通信。相關文章:一次關於WiFi 驅動移植的總結復盤
1、準備arm格式的gdb及gdbserver工具一般交叉編譯工具鏈裡都包含有,如果沒有則需要自己下載gdb源碼進行交叉編譯,gdb下載源碼下載連結:
http://www.gnu.org/software/gdb/download/涉及到交叉編譯的文章:
乾貨 | protobuf-c之嵌入式平臺使用
實用 | 一個高性能通信庫的簡單使用分享
這裡我使用的是交叉編譯工具鏈裡的gdb及gdbserver,如:
2、創建launch.json文件並修改我們需要創建vscode的launch.json文件並進行一些修改:
其中需要修改"program",這是我們需要調試的程序,即我們交叉編譯好的程序。還需要添加如下兩個鍵值對:
"miDebuggerPath:"/opt/rv1126/bin/arm-linux-gnueabihf-gdb"
"miDebuggerServerAddress":"192.168.3.12:9001"其中,miDebuggerPath表示的是arm格式gdb的路徑;miDebuggerServerAddress表示的是我們server端的地址,如:192.168.3.12為開發板的ip,9001為埠號,可自行設置,其範圍為:0~65536,0~1023 的埠一般由系統分配給特定的服務程序。
3、把gdbserver傳到開發板上我們需要交叉編譯器路徑下的gdbserver傳到開發板上,如我這裡放到開發板的/usr/bin路徑下:
4、啟動gdbserver我們首先需要啟動開發板上的gdbserver,pc端才能連接進行調試,格式為:
gdbserver 開發板ip:埠號 要調試的程序如:
5、啟動vscode的gdb進行調試最後,啟動vscode的gdb即可進行調試。如:
以上就是本次的分享。
碼字不易,如過文章對你有幫助,麻煩幫忙三連支持,謝謝大家!
溫馨提示由於微信公眾號近期改變了推送規則,如果您想經常看到我們的文章,可以在每次閱讀後,在頁面下方點一個「贊」或「在看」,這樣每次推送的文章才會第一時間出現在您的訂閱列表裡。
猜你喜歡:
嵌入式大雜燴文章精選
分享10道有趣的C語言面試題及答案
一次關於WiFi 驅動移植的總結復盤
乾貨 | 淺析gcc、arm-linux-gcc和arm-elf-gcc的關係
晶片短缺,如何快速上手並替換一款MCU
分享一位嵌入式前輩的高效學習法
在公眾號聊天界面回復1024,可獲取嵌入式資源;回復 m ,可查看文章匯總。
文章都看完了不點個嗎
給ZhengN加個雞腿🍗