1.1 下載文件html
1.1.1 Linuxlinux
下載連接:https://pan.baidu.com/s/1hXVuWw3NIPnEYVtrXXxlnw 提取碼:zk1z
下載連接:https://pan.baidu.com/s/1vSBpdKJyQ_uNHxZKIgkQkQ 提取碼:2ryc
1.1.2 Windowsc++
下載連接:https://pan.baidu.com/s/1zTMUFvXUpFjVCh5Uri5OUQ 提取碼:n9lq
1.2 安裝vim
1.2.1 Linuxbash
# 解壓工具鏈到/opt目錄下 sudo tar -xjf arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C /opt # 將工具鏈添加進環境變量中 sudo vi /etc/bash.bashrc # 在文件的最後一行將工具鏈添加進PATH變量中,以下所示 export PATH=$PATH:/opt/arm-2014.05/bin # 使環境變量當即生效 source /etc/bash.bashrc # 從新打開一個終端,在該終端中輸入以下命令 arm-none-linux-gnueabi-gcc -v # 若是有顯示以下內容,則表明成功 Using built-in specs. COLLECT_GCC=arm-none-linux-gnueabi-gcc COLLECT_LTO_WRAPPER=/opt/arm-2014.05/bin/../libexec/gcc/arm-none-linux-gnueabi/4.8.3/lto-wrapper Target: arm-none-linux-gnueabi Configured with: /scratch/maciej/arm-linux-2014.05-rel/src/gcc-4.8-2014.05/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --enable-extra-sgxxlite-multilibs --with-arch=armv5te --with-gnu-as --with-gnu-ld --with-specs='%{save-temps: -fverbose-asm} %{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables} -D__CS_SOURCERYGXX_MAJ__=2014 -D__CS_SOURCERYGXX_MIN__=5 -D__CS_SOURCERYGXX_REV__=29' --enable-languages=c,c++ --enable-shared --enable-lto --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery CodeBench Lite 2014.05-29' --with-bugurl=https://sourcery.mentor.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/maciej/arm-linux-2014.05-rel/install/opt/codesourcery/arm-none-linux-gnueabi/libc --with-gmp=/scratch/maciej/arm-linux-2014.05-rel/obj/pkg-2014.05-29-arm-none-linux-gnueabi/arm-2014.05-29-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-mpfr=/scratch/maciej/arm-linux-2014.05-rel/obj/pkg-2014.05-29-arm-none-linux-gnueabi/arm-2014.05-29-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-mpc=/scratch/maciej/arm-linux-2014.05-rel/obj/pkg-2014.05-29-arm-none-linux-gnueabi/arm-2014.05-29-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-isl=/scratch/maciej/arm-linux-2014.05-rel/obj/pkg-2014.05-29-arm-none-linux-gnueabi/arm-2014.05-29-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-cloog=/scratch/maciej/arm-linux-2014.05-rel/obj/pkg-
上述工具鏈的前綴爲arm-none-linux-gnueabi-
,這種前綴在編譯uboot
、linux
和busybox
時是沒有問題的,可是gdb
須要arm-linux-
這樣的前綴,因此須要製做軟連接。
以下爲製做連接的腳本文件。app
#!/bin/bash ln -s arm-none-linux-gnueabi-addr2line arm-linux-addr2line ln -s arm-none-linux-gnueabi-ar arm-linux-ar ln -s arm-none-linux-gnueabi-as arm-linux-as ln -s arm-none-linux-gnueabi-c++ arm-linux-c++ ln -s arm-none-linux-gnueabi-c++filt arm-linux-c++filt ln -s arm-none-linux-gnueabi-cpp arm-linux-cpp ln -s arm-none-linux-gnueabi-cs arm-linux-cs ln -s arm-none-linux-gnueabi-cs-daemon arm-linux-cs-daemon ln -s arm-none-linux-gnueabi-elfedit arm-linux-elfedit ln -s arm-none-linux-gnueabi-g++ arm-linux-g++ ln -s arm-none-linux-gnueabi-gcc arm-linux-gcc ln -s arm-none-linux-gnueabi-gcc-4.8.3 arm-linux-gcc-4.8.3 ln -s arm-none-linux-gnueabi-gcc-ar arm-linux-gcc-ar ln -s arm-none-linux-gnueabi-gcc-nm arm-linux-gcc-nm ln -s arm-none-linux-gnueabi-gcc-ranlib arm-linux-gcc-ranlib ln -s arm-none-linux-gnueabi-gcov arm-linux-gcov ln -s arm-none-linux-gnueabi-gdb arm-linux-gdb ln -s arm-none-linux-gnueabi-gprof arm-linux-gprof ln -s arm-none-linux-gnueabi-ld arm-linux-ld ln -s arm-none-linux-gnueabi-nm arm-linux-nm ln -s arm-none-linux-gnueabi-objcopy arm-linux-objcopy ln -s arm-none-linux-gnueabi-objdump arm-linux-objdump ln -s arm-none-linux-gnueabi-ranlib arm-linux-ranlib ln -s arm-none-linux-gnueabi-readelf arm-linux-readelf ln -s arm-none-linux-gnueabi-size arm-linux-size ln -s arm-none-linux-gnueabi-strings arm-linux-strings ln -s arm-none-linux-gnueabi-strip arm-linux-strip
以下所示,進入工具鏈的bin
目錄下,使用vim
建立makelink.sh
腳本文件,複製上面的內容到文件中,並執行。eclipse
# 進入工具鏈路徑 cd /opt/arm-2014.05/bin # 建立腳本文件,並拷貝上述內容 sudo vi makelink.sh # 改變腳本文件模式 sudo chmod 755 makelink.sh # 執行腳本文件 sudo ./makelink.sh # 驗證 arm-linux-gcc -v # 出現以下內容,則表明成功 Using built-in specs. COLLECT_GCC=arm-linux-gcc COLLECT_LTO_WRAPPER=/opt/arm-2014.05/bin/../libexec/gcc/arm-none-linux-gnueabi/4.8.3/lto-wrapper Target: arm-none-linux-gnueabi Configured with: /scratch/maciej/arm-linux-2014.05-rel/src/gcc-4.8-2014.05/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --enable-extra-sgxxlite-multilibs --with-arch=armv5te --with-gnu-as --with-gnu-ld --with-specs='%{save-temps: -fverbose-asm} %{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables} -D__CS_SOURCERYGXX_MAJ__=2014 -D__CS_SOURCERYGXX_MIN__=5 -D__CS_SOURCERYGXX_REV__=29' --enable-languages=c,c++ --enable-shared --enable-lto --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery CodeBench Lite 2014.05-29' --with-bugurl=https://sourcery.mentor.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/maciej/arm-linux-2014.05-rel/install/opt/codesourcery/arm-none-linux-gnueabi/libc --with-gmp=/scratch/maciej/arm-linux-2014.05-rel/obj/pkg-2014.05-29-arm-none-linux-gnueabi/arm-2014.05-29-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-mpfr=/scratch/maciej/arm-linux-2014.05-rel/obj/pkg-2014.05-29-arm-none-linux-gnueabi/arm-2014.05-29-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-mpc=/scratch/maciej/arm-linux-2014.05-rel/obj/pkg-2014.05-29-arm-none-linux-gnueabi/arm-2014.05-29-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-isl=/scratch/maciej/arm-linux-2014.05-rel/obj/pkg-2014.05-29-arm-none-linux-gnueabi/arm-2014.05-29-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-cloog=/scratch/maciej/arm-linux-2014.05-rel/obj/pkg-2014.05-29-arm-none-linux-gnueabi/arm-2014.05-29-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --disable-libgomp --disable-libitm --enable-libatomic --disable-libssp
進入gdb-8.3.tar.gz
文件所在目錄,執行以下命令。工具
# 建立u-gdb目錄 mkdir u-gdb # 將gdb-8.3.tar.gz解壓到u-gdb目錄下 tar -xzf gdb-8.3.tar.gz -C ./u-gdb
新建腳本文件,並放到u-gdb目錄下(文件名稱爲makegdbserver.sh),複製如下內容到文件中。ui
#!/bin/bash # 進入gdb源碼目錄下 cd gdb-8.3 # 配置gdb ./configure --target=arm-linux --host=arm-linux CC=arm-linux-gcc # 根據CPU個數進行編譯 CPU_NUM=$(grep processor /proc/cpuinfo | awk '{field=$NF};END{print field+1}') make -j$CPU_NUM # 進入gdbserver目錄 cd gdb/gdbserver/ # 刪除上次生成的gdbserver文件 rm -f ../../../gdbserver # 壓縮gdbserver文件,去掉沒必要要的信息 arm-linux-strip gdbserver # 拷貝gdbserver到u-gdb目錄下 cp gdbserver ../../../ # 返回到gdb-8.3目錄下 cd .. cd .. # 清除過程文件 make distclean
在u-gdb目錄下,使用下述命令,進行編譯atom
./makegdbserver.sh
使用FTP將gdbserver拷貝到目標開發板/usr/bin
目錄下,並使用下述命令改變其執行權限。
chmod 777 gdbserver
------ 未完待續 ------