rtt构建与系统配置
Kconfig
- c语言项目的裁剪配置本质上通过条件编译和宏展开
- Kconfig文件的配置项会映射至rtconfig.h中
- Kconfig文件随源码分散至各级子目录。
-
在Kconfig中编写相关代码,之后在env(menuconfig)中配置生成config.h中的相关宏定义
-
Kconfig文件形式
-
Kconfig在rtt中的常用语法
- 注释:
#
- config语句:定义一组新的配置选项
- 配置变量类型决定了配置选项 例如bool类型,配置变量的选择就是y/n
- menu/endmenu语句:用于生成菜单
- if/endif语句:条件判断语句
- menuconfig:带菜单的配置项
- depends on
- choice/endchoice语句:定义多选项,但是只可以单选
- comment语句:定义提示信息
- source语句:用于读取另一个文件中的kconfig文件
- 注释:
SCons
- 构建工具
构建工具是一种软件,可以根据一定的规则或者指令,将源代码编译成可执行的二进制程序
-
SCons:由python语言编写的开源构建系统,类似于GNU Make
-
IDE通过图形化工具完成构建,根据用户所添加的源码生成类似于Makefile和sconscript的脚本文件,在底层调用类似make或者scons的工具来构建源码
-
RT-Thread中的Scons的脚本结构
- 一个项目只有一个SConstruct,会有多个SConscript
-- rtconfig.py ---- 控制SCons构建的配置文件,存放了如工具链,构建参数等配置。
-- SConscript
-- SConstruct ---- SCons的入口脚本,初始化了SCons构建rt-thread所需的必要环境
-- Kconfig ---- 顶层Kconfig文件,menuconfig的入口Kconfig文件
-- rt-thread/
--- src/
---- SConscript ---- 各级源码的scons子脚本,控制当前级别下的源码构建行为
---- Kconfig ---- 各级源码的Kconfig子脚本,存放当前级别下的配置项
---- **.c
-
当bsp制作完成使用
scons --dist
生成目录之后要重新使用scons --target=mdk5
来生成工程 -
添加外设驱动基本步骤
- 1.通过stm32cubemx来配置生成驱动文件,这时候Drivers里面还没有驱动文件
- 2.编写Kconfig文件,可以先在hal库里面打开驱动文件,根据驱动文件里面相关的宏定义,来编写kconfig文件。
- 3.打开env menuconfig,通过编写的Kconfig文件来打开驱动