文章目录 1. 配置编译框架简介 2. Linux 下的编译 2.1 安装 GNU Arm Embedded Toolchain 2.2 安装 GNU Make 4.3 2.3 安装 Python3、pip、kconfiglib 2.4 编译流
文章目录
- 1. 配置&编译框架简介
- 2. Linux 下的编译
- 2.1 安装 GNU Arm Embedded Toolchain
- 2.2 安装 GNU Make 4.3
- 2.3 安装 Python3、pip、kconfiglib
- 2.4 编译流程
- 问题解决
- QEMU模拟器realview-pbx-a9
realview-pbx-a9工程就是使用QEMU模拟Cortex-A9处理器,以运行Huawei LiteOS操作系统。
1. 配置&编译框架简介
/.config + tools/menuconfig/config.in(包含各个模块的Kconfig文件) -> 在开发板的 include 文件夹下生成menuconfig.h- scripts 文件夹存放与 make menuconfig 配置界面的图形绘制相关的文件;
- config.in:文件决定了要展示的配置项,由 Kconfig 语言(一种菜单配置语言)编写而成;
- Makefile:文件决定了工程的编译链接规则;
- .mk:包含了子配置的依赖关系以及界面要素;
- .config:配置结果;
- make 命令根据 .config 中的参数选项,执行 Makefile 脚本;
2. Linux 下的编译
2.1 安装 GNU Arm Embedded Toolchain
32bit-GNU Arm Embedded Toolchain Downloads
建议安装 gcc-arm-none-eabi-9-2019-q4-major,最新版本貌似不可以,解压后,添加到环境变量:
vim ~/.bashrcexport PATH=$PATH:YOUR_PATH/gcc-arm-none-eabi-9-2019-q4-major/bin/
source ~/.bashrc
2.2 安装 GNU Make 4.3
Make
2.3 安装 Python3、pip、kconfiglib
sudo pip install kconfiglib # 注意python2下安装2.4 编译流程
LiteOS-master
默认支持的开发板,拷贝到顶层目录命名为 .config 即可,亦可 make menuconfig。
这里使用 realview-pbx-a9.config 来使用 QEMU 模拟 Cortex-A9 处理器,以运行 Huawei LiteOS 操作系统。
jiaming@ubuntu:~/Documents/LiteOS-LiteOS-master/LiteOS$ ls tools/build/config/CB2201.config GD32VF103V_Eval.config STM32F072_Nucleo.config STM32L431_BearPi.config
Cloud_STM32F429IGTx_FIRE.config HiFive1_Rev1_B01.config STM32F103_FIRE_Arbitrary.config STM32L476_NB476.config
FM33LC0XX_DEMO.config qemu-virt-a53.config STM32F407_ATK_Explorer.config STM32L496_Nucleo.config
GD32E103C_START.config Raspberry_Pi2B.config STM32F769IDISCOVERY.config STM32L4R9I_Discovery.config
GD32F303RGT6_BearPi.config realview-pbx-a9.config STM32L073_Nucleo.config STM32L552_Nucleo.config$ apt-get install qemu
$ apt-get install qemu-system1. make clean && make distclean
2. cp tools/build/config/realview-pbx-a9.config .config
3. make menuconfig
4. make
+ 生成的系统镜像文件、反汇编等文件在out/realview-pbx-a9目录中;
+ 库文件在out/realview-pbx-a9/lib目录中;
+ 中间文件在out/realview-pbx-a9/obj目录中;
5. qemu-system-arm -machine realview-pbx-a9 -smp 4 -m 512M -kernel out/realview-pbx-a9/Huawei_LiteOS.bin -nographic
Huawei LiteOS Shell 使用教程
问题解决
问题 1
jiaming@ubuntu:~/Documents/LiteOS-LiteOS-master/LiteOS$ make menuconfig/home/jiaming/Documents/LiteOS-LiteOS-master/LiteOS/build/mk/compiler_gcc.mk:133: *** path /opt/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux/gcc-arm-none-eabi-10-2020-q4-major/bin//arm-none-eabi-gcc/lib/gcc/arm-none-eabi/10.2.1 is not exist. Stop.
安装 gcc-arm-none-eabi-9-2019-q4-major。
问题 2
jiaming@ubuntu:~/Documents/LiteOS$ make menuconfigpython /home/jiaming/Documents/LiteOS/tools/menuconfig/usr_config.py
make: python: No such file or directory
make: *** [tools/menuconfig/Makefile.kconfig:7: menuconfig] Error 127
是否将 kconfiglib 安装到了 python2 下?
sudo pip install kconfiglib # 注意python2下安装