目录
摘要
本指南介绍在与Chibios分发版中提供的默认环境不同的构建环境中集成chibios/rt或chibios/nil所需的内容。
本指南不包括的内容
本指南的范围有限,以下主题在其他地方处理:
本指南不介绍将操作系统移植到不同的体系结构或不同的编译器,请参阅“chibios/rt port guide”一文。
本指南不描述任何特定的环境或开发工具,假定您已经详细了解了要使用的环境。
1.注意关于ChibiOS/NIL
本指南也适用于chibios/nil,只需在路径中将/rt/with/nil/替换,并将chconf.h替换为nilconf.h。
2.集成内核
本节介绍希望在现有应用程序中使用chibios/rt内核的场景。为了实现这一点,您需要在项目中导入两个组件:
- 便携式RT内核。(The portable RT kernel.)
- 您的微控制器的RT端口层。(The RT port layer for your microcontroller.)
您还需要考虑端口特定的要求,随机启动文件和链接器文件将不起作用。建议在尝试使用替代方案之前使用提供的支持文件。
1.Portable RT Kernel
您需要将以下文件添加到生成过程中:
- ./os/rt/src/*.c
在ardupilot中对应的文件内容
还将RT可移植头文件添加到搜索路径中:
-./os/rt/include
2.RT Port Layer
端口层可以彼此不同,但总体布局相同。您需要包括源代码:
- ./os/rt/ports//*.c (note some files could be optional here)
- ./os/rt/ports//compilers//*.c
- ./os/rt/ports//compilers//*.s
对应的头文件目录是: - /os/rt/ports/
- ./os/rt/ports//compilers/
端口层可以,通常也可以,有特定于体系结构的需求。通常,必须向包含特定于MCU参数的端口提供一个小的头段。此文件名为: - cmparams.h for the ARM Cortex-M port
- armparams.h for the ARM port
- ppcparams.h for the Power e200Z port
此外,ARM Cortex-M端口还需要供应商提供的符合CMSIS的寄存器定义头。头通常包含在cmparams.h中。
参数标题的模板如下: - ./os/common/ports//devices//xxxparams.h
支持的Cortex-M MCU的CMSIS标题也提供在下面:
- ./os/ext/CMSIS/include
- ./os/ext/CMSIS//[]
您应该向项目搜索路径添加适当的CMSIS路径。
3.其他文件
RT内核需要一个配置文件,它通常放在项目根目录下,但是它可以放在编译器可以访问的任何目录中。文件名为chconf.h,模板可从以下位置获取:
- ./os/rt/templates/chconf.h
不要直接使用该文件,在项目中复制它并编辑副本。
4.注意
如果有疑问,请记住所提供的makefile是集成器的最终指南,所有需要的路径和选项都必须存在于其中。如果某些细节不清楚,最好查看所有演示中的makefile。通过编译demo,所有编译器选项都会打印在控制台上,这样可以消除对所需路径、文件和选项的任何疑问。