新竹勞倫斯
生於斯 長於斯 故鄉土地永遠是令人安心的所在
首頁
如何設定Code::Blocks遠端除錯Raspberry Pi
這篇文章的Host是Ubuntu 16.04 LTS,Target是Raspberry Pi 2 B-Type。主要說明如何在Code::Blocks 16.01上設定Coross Compiler及Remote Debug的相關選項。當設定成功後可以在Host上開發Target的Applications,充份利用Host的運算能力不再受限於開發板的速度。
1.在Host下載RPi官方提供的
GitHub's Tools
套件。
2.在C::B的Settings\Compiler\開啟如下視窗,並依照相關Step操作設定。
Step1:設定一個新的Compiler選項。
Step2:從項1下載回來的Tools裏選定一個路徑,本例是使用4.9.3這個路徑下的工具組。
Step3:選好各個相關Program的名稱。
3.
在C::B的Settings\Debugger\開啟如下視窗,並依照相關Step做操作設定。
Step1:選擇GDB/CDB Default項目,出現如下畫面。
Step2:選擇要執行的gdb程式完整路徑與名稱(預設完整路徑名稱是/usr/bin/gdb)。
4.產生新的C++ Project並寫好程式碼後,在Code::Blocks的Project\Properties\ 開啟如下視窗, 並依照相關Step做操作設定。
Step 1:切到Debugger頁面。
Step2:選擇Debug項目。
Step3:設定Target的IP與工作Port,未來Host Port要和此Port相匹配才能除錯。
5.基本上;上述4項動作完成也沒有發生錯誤的話,應該能在Host上Compiler出Target可執行的程式。
6.Host和Target的NFS分享與掛載可以參考
此篇
說明。當掛載完成後,Target可以直接在Console執行位於Host上的程式。
7.若Host有設防火牆,可利用其GUI程式將之關閉,以方便兩機間除錯。
8.將Host上;項1剛下載回來的Tools相關路徑下的gdbserver程式,拷貝到Target的/usr/bin/gdbserver下。如不知位置可以用sudo find / -name 'gdbserver'搜尋查找(我沒有copy過去也能正常除錯)。
9.先在Target上執行如下命令。
sudo gdbserver IP:Port ./程式名稱
接著就等Host的C::B連線進行除錯動作。
用cat /proc/5882/maps 可看到AP使用記憶體狀況。
10.Step 1:在C::B按F5設置斷點。
Step 2:在Watches視窗設定要看的變數,此例為i。按F8開始除錯,程式會停在斷點上。
Step 3:按F7即可單步追踪,Shift+F7可Step Into 。
Step 4:Shift+F8停止除錯。
目前這樣的設定可以除錯一般的Application,至於Kernel或Library或OpenCL的除錯還沒試,不曉得可不可行?到時再補充相關資訊。
沒有留言:
張貼留言
較新的文章
較舊的文章
首頁
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言