Skip to main content

上层应用程序调试阶段添加方法

1. 客户应用编译说明

1.1 编译无依赖的库或应用(通常是算法库)

  1. x2000 m300 以及后续的xburst2系列芯片 请使用 tools/toolchains/mips-gcc720-glibc229/bin/ 目录下的工具链进行编译
  2. 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/binrootfs 的可执行文件目录,buildroot中的应用安装于此
output/target/binrootfs 的可执行文件目录,buildroot中的应用安装于此
output/target/usr/librootfs 的库目录,buildroot中的库安装于此
output/target/librootfs 的库目录,工具链,buildroot中的库安装于此
output/target/etc/inittabrootfs 启动脚本,开机自动被执行
output/target/etc/init.d/rootfs 启动脚本目录,开机被 /etc/inittab 执行