[Linuxの]チュートリアルリモート開発とデバッグアプリケーションをスタート

[Linuxの]チュートリアルリモート開発とデバッグアプリケーションをスタート

  1. 開発環境のセットアップ

1.1ファイルのダウンロード

1.1.1 Linuxの

  • アームなし - のlinux-gnueabi-gccの
下载链接:https://pan.baidu.com/s/1hXVuWw3NIPnEYVtrXXxlnw
提取码:zk1z
  • GDB
下载链接:https://pan.baidu.com/s/1vSBpdKJyQ_uNHxZKIgkQkQ
提取码:2ryc

1.1.2 Windowsの

  • アームなし - のlinux-gnueabi-gcc.exe
下载链接:https://pan.baidu.com/s/1zTMUFvXUpFjVCh5Uri5OUQ
提取码:n9lq

1.2インストール

1.2.1 Linuxの

  • インストールツールチェーン
# 解压工具链到/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-、コンパイルするには、この接頭辞ubootlinuxそしてbusyboxそこには問題はありませんが、ときgdbのために必要arm-linux-なプレフィックスは、ソフトリンクを作成する必要があります。
リンクを作成するには、次のスクリプトファイル。

#!/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、スクリプトファイルをファイルに上記の内容をコピーし、それを実行します。

# 进入工具链路径
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のコンパイル

入力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である)、ファイルに次をコピーします。

#!/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ディレクトリには、コンパイルするために、次のコマンドを使用して、

./makegdbserver.sh
  • 開発は、ターゲットボードにコピーgdbserverを

ターゲットボードの開発にコピーされたFTPのgdbserverを使用して/usr/binディレクトリを、とパーミッションの変更を実行するには、次のコマンドを使用して。

chmod 777 gdbserver

------ ------継続するには

おすすめ

転載: www.cnblogs.com/drobot/p/10962425.html