当前位置 : 主页 > 编程语言 > java >

【LiteOS】第 1 章

来源:互联网 收集:自由互联 发布时间:2022-06-23
文章目录 ​​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 脚本;
    【LiteOS】第 1 章_linux

2. Linux 下的编译

2.1 安装 GNU Arm Embedded Toolchain

​​32bit-GNU Arm Embedded Toolchain Downloads​​

建议安装 gcc-arm-none-eabi-9-2019-q4-major,最新版本貌似不可以,解压后,添加到环境变量:

vim ~/.bashrc
export 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

【LiteOS】第 1 章_d3_02

​​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 menuconfig
python /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下安装




网友评论