代码编译
1.编译环境搭建
本章介绍 Linux SDK 的编译环境搭建
注意:
(1)推荐在 X86_64 Ubuntu 16.04 或者X86_64 Ubuntu 20.04系统环境下进行开发,不要使用X86_64 Ubuntu 20.04以上的版本,若使用其它系统版本,可能需要对编译环境做相应调整。(2)同步代码Python版本号的要求:电脑系统安装的 python 的版本要使用 Python 2.7,不然会导致同步代码报错。
(3)使用普通用户进行编译,不要使用 root 用户权限进行编译。
2. x2580_evb_v1.0 开发板编译方法
x2580_evb_v1.0 开发板使用的工程配置文件为: x2580_nor_defconfig
如果需要更改默认配置,可以使用工具 IConfigTool 进行配置(见2 开发板 IConfigTool 配置方法)
配置文件确定并保存后,编译方法可参考x2000 linux 工程编译方法
编译配置文件
xxx/build/$make x2580_nor_defconfig
全局编译
xxx/build/$make
编译通过后在build/output下生成uboot, kernel, rootfs的镜像文件
3. 编译以后,固件生成目录
build$ ls output/ -lh
total 16M
-rw-r--r-- 1 kenny kenny 12M 3月 9 17:41 rootfs.squashfs
-rw-rw-r-- 1 kenny kenny 24K 3月 9 17:41 u-boot-spl-pad.bin
-rw-rw-r-- 1 kenny kenny 3.6M 3月 9 17:41 xImage
4. 模块编译命令
执行工程编译流程后可执行以下命令
命令执行目录:build/ 目录下
4.1. 单独编译uboot
make uboot
作用:单独编译系统引导文件,并将生成引导文件u-boot-spl-pad.bin拷贝到output目录下(当编译以mmc为存储介质配置时,生成引导文件u-boot-with-spl-mbr-gpt.bin在uboot目录下)
make clean_uboot
作用:清除编译uboot生成的所有文件
4.2. 单独编译kernel
make kernel
作用:单独编译内核镜像文件,并将生成的内核镜像文件拷贝到output目录下
make clean_kernel
作用:清除编译内核生成的所有文件
4.3.单独编译buildroot
make buildroot
作用:单独编译文件系统,并将生成的文件系统拷贝到output目录下
make clean_buildroot
作用:清除编译文件系统生成的所有文件
4.4.单独编译app
make apps
作用:编译模块驱动module_driver以及库函数libhardware2、libutils2、libisp等
make clean_apps
作用:清除编译模块驱动以及库函数生成的所有文件
make apps、make app_module_driver、make app_libhardware2、make app_libisp、make app_libutils2等、后都需要执行make buildroot 命令将编译出来的文件打包到文件系统镜像中,并烧录到开发板
5. 编译app应用程序
编译app应用程序以编译app_module_driver和app_libhardware2为例
5.1.单独编译app_module_driver
make app_module_driver
作用:编译模块驱动并将模块安装脚本和ko文件拷贝到module_driver/output目录下。
make clean_app_module_driver
作用:清除编译模块驱动生成的所有文件
5.2.单独编译app_libhardware2
make app_libhardware2
作用:编译libhardware2目录下的函数并将生成的命令和库拷贝到libhardware2/output目录下
make clean_app_libhardware2
作用:清除编译libhardware2生成的所有文件