天天看點

如何移植gdb到freescale i.MX6?

一,預備知識

交叉編譯工具路徑在/opt/fsl-imx-x11/3.14.52-1.1.1/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi。

交叉編譯工具預設尋找的靜态庫位置:/opt/fsl-imx-x11/3.14.52-1.1.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib。

i.MX6的交叉編譯工具沒有封裝好,使用gcc的時候,必須加上指令參數,如下面所示:

arm-poky-linux-gnueabi-gcc  -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=/opt/fsl-imx-x11/3.14.52-1.1.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi test.c -o test

二,開始編譯

1,老規矩,因為gdb依賴libtermcap,是以先編譯libtermcap。

這邊要注意,需要把在hisi3716上編譯過的termcap-1.3.1裡的configure拷貝過來,再進行修改。

原因是termcap在configure的時候不會檢查交叉編譯,在make的時候會recheck,然後修改configure腳本,

生成新的configure。針對i.MX6需要加上字尾的特殊性,我們可以跳過recheck,直接拿新的configure來用。

修改時,把ac_link和ac_compile的定義加上該交叉編譯gcc的指令參數。

configure過後,生成Makefile,

修改該Makefile,把CC定義後面加上該交叉編譯gcc的指令參數。

make & make install即可。

2,将編譯好的libtermcap.a放到交叉編譯工具鍊預設尋找的靜态庫位置。開始編譯gdb,

先修改configure腳本,将ac_link,ac_compile,we_are_ok這三處地方都加上該交叉

編譯gcc的指令參數。

執行configure時,加上--disable-werror。

順利生成Makefile後,修改它,在CC和CXX定義的地方加上該交叉編譯gcc的指令參數,

然後make & make install即可。

下面是傳送門,需要我上述修改的腳本可以到這裡下載下傳哦,

http://download.csdn.net/download/yuhengyue/10105503

祝君好運。