【轉】 交叉編譯arm gdb


原文:http://blog.chinaunix.net/uid-21977330-id-3761022.html

 

1. 安裝依賴文件

sudo apt-get install texinfo 
sudo apt-get install libncurses5-dev 
sudo apt-get install m4
sudo apt-get install flex 
sudo apt-get install bison
為了支持python腳本擴展功能
apt-get install python-dev

確定XML support 是否使能,如果libexpat-dev被安裝是默認是能的,
如果不支持XML, openocd->gdb  memory map transfer 不能夠工作

2. 編譯gdb for arm

 

# It's actually quite straightforward:
wget http://ftp.gnu.org/gnu/gdb/gdb-7.0.1a.tar.bz2
tar jvxf gdb-7.2.tar.bz2
cd gdb-7.2
./configure --target=arm-none-linux-gnueabi --program-prefix=arm-none-linux-gnueabi-  --prefix=/home/enzo --with-python
其中:
--target i指明目標系統類型
--prefix 指生成的可執行文件安裝在哪個目錄
--program-prefix  指生成的可執行文件的前綴

make
幸運的話,會在--prefix指定的目錄下生成三個子目錄:bin、lib、share,我們需要的arm-none-linux-gnueabi-gdb就在其中的bin目錄下。

進入gdb目錄,對生成的elf文件進行strip,不然又12M左右
strip gdb -o arm-none-linux-gnueabi-gdb
裁剪后大小
-rwxr-xr-x 1 root root 2.7M  6月  9 21:14 arm-none-linux-gnueabi-gdb
拷貝arm-none-linux-gnueabi-gdb 到目標位置即可

3. 編譯gdbserver
cd gdb/gdbservver
CC=arm-hisiv100nptl-linux-gcc ./configure --host=arm-hisiv100nptl-linux --target=arm-hisiv100nptl-linux
這里的--host指定了生成可執行文件運行的平台和系統:運行於ARM平台的Linux系統
make
檢查生成的gdbserver
$ file gdbserver
gdbserver: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), not stripped

4. 去除符號信息
$ arm-hisiv100nptl-linux-strip gdbserver -o gdbserver
enzo@debian:~/Downloads/gdb-7.3.1/gdb/gdbserver$ file gdbserver
gdbserver: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), stripped

可能出現的錯誤:
xml-builtin.o: could not read symbols: File in wrong format
出現此錯誤原因: 沒有指定交叉編譯器
./configure --host=arm-hisiv100nptl-linux --target=arm-hisiv100nptl-linux 

 

自己的開發板,

./configure --target=arm-none-linux-gnueabi --host=arm-none-linux-gnueabi --program-prefix=arm-none-linux-gnueabi- --prefix=/home/ljl/gdb

 

make install前先sudo -i,然后設置下環境變量,否則找不到編譯器


免責聲明!

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



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