上层应用程序调试阶段添加方法
1. 客户应用编译说明
1.1 编译无依赖的库或应用(通常是算法库)
- x2000 m300 以及后续的xburst2系列芯片
请使用
tools/toolchains/mips-gcc720-glibc229/bin/
目录下的工具链进行编译 - x1000 x1830 x1520 x1021 等xburst系列芯片
请使用
tools/toolchains/mips-gcc520-glibc222/bin/
目录下的工具链进行编译
1.2 编译有依赖的库或应用
- 请先按照工程编译文档说明,编译好buildroot 和 apps
- 请使用
buildroot/buildroot/output/host/usr/bin/
目录下的工具链进行编译 举个例子cd ~/wordrd/linux # 进入到linux工程目录
cd build # 进入到linux工程编译目录
make x2000_darwin_v20_debug_nand_defconfig # 假设从未编译过,这里选择x2000作说明
make # 从未编译过,之前需要进行一次完整的编译,不然会导致apps编不过
# buildroot 或app有更新时,编译buildroot和apps
make buildroot # 编译buildroot
make apps # 编译 apps,君正提供的库和应用程序
# 编译应用
cd ../test_app # 进入客户自己的目录
CC=$PWD/../buildroot/buildroot/output/host/usr/bin/mips-linux-gnu-gcc
$CC hello_word.c -lhardware2 -o hello_word
# 测试应用
adb push hello_word /tmp
adb shell /tmp/hello_word
2. 打包应用到文件系统
- 请先按照工程编译文档说明,编译好buildroot 和 apps
- 按照上述说明编译好应用或者库文件
- 将编译好的应用或者库文件拷贝到打包的根目录中
buildroot/buildroot/output/target/
- 重新编译buildroot即完成打包的操作
举个例子
cd ~/wordrd/linux # 进入到linux工程目录
cd build # 进入到linux工程编译目录
make x2000_darwin_v20_debug_nand_defconfig # 假设从未编译过,这里选择x2000作说明
make # 从未编译过,之前需要进行一次完整的编译,不然会导致apps编不过
# buildroot 或app有更新时,编译buildroot和apps
make buildroot # 编译buildroot
make apps # 编译 apps,君正提供的库和应用程序
# 编译应用
cd ../test_app # 进入客户自己的目录
CC=$PWD/../buildroot/buildroot/output/host/usr/bin/mips-linux-gnu-gcc
$CC hello_word.c -lhardware2 -o hello_word
# 拷贝应用
cp hello_word ../buildroot/buildroot/output/target/usr/bin/
# 重新编译buildroot进行打包
cd ../build/
make buildroot
ls output/
3. buildroot 目录简单说明
buildroot 在工程中的目录在buildroot/buildroot/ 以下目录均是buildroot中相对路径 从如下表可以看出: 使用output/host/usr/bin/ 下的工具链进行编译可以直接使用到buildroot中编译完成库和头文件
编译相关路径 | 功能 |
---|---|
output/host/usr/bin/ | 存放生成的交叉工具链,以及其它工具 |
output/staging/ | 交叉工具链的sysroot |
output/staging/usr/include/ | 交叉工具链的头文件目录,buildroot中的库安装于此 |
output/staging/usr/lib/ | 交叉工具链的库目录,buildroot中的库安装于此 |
output/staging/lib/ | 交叉工具链的库目录,工具链自带 |
打包相关路径 | 功能 |
---|---|
output/images/ | 存放生成的rootfs镜像 |
output/target/ | 打包成rootfs镜像的目录 |
output/target/usr/bin | rootfs 的可执行文件目录,buildroot中的应用安装于此 |
output/target/bin | rootfs 的可执行文件目录,buildroot中的应用安装于此 |
output/target/usr/lib | rootfs 的库目录,buildroot中的库安装于此 |
output/target/lib | rootfs 的库目录,工具链,buildroot中的库安装于此 |
output/target/etc/inittab | rootfs 启动脚本,开机自动被执行 |
output/target/etc/init.d/ | rootfs 启动脚本目录,开机被 /etc/inittab 执行 |