用Eclipse和GDB構建ARM交叉編譯和在線調試環境


環境介紹

  • 主機:ubuntu 16.04 虛擬機
  • 板卡:hisi3559A

安裝Eclipse

安裝jdk

sudo add-apt-repository ppa:openjdk-r/ppa  
sudo apt-get update  
sudo apt-get install openjdk-8-jdk 

判斷JDK是否安裝成功:

java
javac

安裝eclipse、eclipse-cdt

sudo apt-get install eclipse
sudo apt-get install eclipse-cdt

創建交叉應用工程

在 Eclipse 主界面點擊菜單 File > New > C/C++ Project,在彈出的“C/C++ Project”對話框中,輸入項目名稱。選擇一個項目類型(如Executable/Empty Project),在 Toolchains 中一定要選** Cross GCC**,這是CDT對交叉環境的支持,提供了額外的功能,以方便嵌入式應用程序的開發。
點擊下一步,來到“Select Configurations”頁面,我們采用默認,直接下一步,來到“Cross GCC Command”的設置。這里我們可以填寫交叉編譯工具鏈的交綴和路徑,如:

aarch64-himix100-linux-
/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin

上面的配置應該根據自己的實際情況進行。
最后點擊完成,一個交叉項目就創建好了。關於交叉編譯前綴和路徑的設置,在項目創建后,可以在項目的屬性中改變它。

測試

#include <iostream>
using namespace std;

int main(int argc, char ** argv)
{
    cout<<"This is a message !\n";
    return 0;
}

點擊構建,對它進行編譯。編譯后,我們可以在左側的“Project Explorer”中,項目目錄下的Binaries中看到編譯出來的程序。把它拷貝到目標開發板上,運行,結果正確。

搭建遠程調試環境

編譯gdb 和 gdbserver

首選需要編譯gdb 和 gdbserver。可以參考:

安裝gdb-multiarch

sudo apt-get install gdb-multiarch

gdb添加C++ STL的打印支持

開發板端准備

將編譯好的文件和gdbserver拷貝到開發板上,執行:

./gdbserver 192.168.199.101:1234 filename

注意,192.168.199.101是主機的ip,filename 是可執行文件的名稱。

Eclipse設置

在Eclipse中選擇一個項目,點擊菜單 Run > Debug Configurations,在左側的Dubug類型中找到“C/C++ Remote Application”,右擊點“New”,創建一個遠程調試配置,如下圖:




之后就可以進行調試了。

附錄

取消語法檢查

通常如果我們的都是使用makefile進行編譯的,而Eclipse只是作為一個GUI調試工具,但是使用Eclipse打開源碼時,側邊欄會提示很多的語法錯誤,取消這些顯示的方法是:
Windows->Perferces->C/C++:

快捷鍵

【F5】:跟蹤到方法中,當程序執行到某方法時,可以按【F5】鍵跟蹤到方法中。
【F6】:單步執行程序。
【F7】:執行完方法,返回到調用此方法的后一條語句。
【F8】:繼續執行,到下一個斷點或程序結束。
【F11】:調試最后一次執行的程序。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM