内核配置
大约 2 分钟
内核配置
TI-RTOS 应用程序使用配置文件(.cfg 文件)配置 TI-RTOS 内核。在 IAR 和 CCS 项目中,此文件位于 TOOLS 文件夹下的应用程序项目工作区中。
配置是通过有选择性地引入或使用内核可用的 RTSC 模块来完成的。若要使用模块,在 .cfg 配置文件中调用 xdc.useModule() 之后,xdc.useModule() 可以设置 TI-RTOS Kernel (SYS/BIOS) User’s Guide 中定义的各种选项。
以下内容为译者补充,了解更多 XDCscript
.cfg 文件中可以配置的一些选项包括但不限于:
- Boot options
- Hwi、Swi 和任务优先级的数量
- Exception and Error handling
- 系统 tick 的持续时间(TI-RTOS 内核中最基本的时间单位)
- 定义应用程序的入口点和中断向量
- TI-RTOS heaps and stacks
- 引入预编译内核和 TI-RTOS 驱动程序库
- System providers (for System_printf())
每当对 .cfg 文件进行更改时,您将重新运行 XDCTools 的配置工具。在提供的 IAR 和 CCS 示例中,此步骤已作为预构建步骤为您处理。
对于 CC2640R2,ROM 中存在一个 TI-RTOS 内核。通常为了节省闪存占用空间,.cfg 将包含内核的 ROM 模块,如清单 1 所示。
/* ================ ROM configuration ================ */
/*
* To use BIOS in flash, comment out the code block below.
*/
var ROM = xdc.useModule('ti.sysbios.rom.ROM');
if (Program.cpu.deviceName.match(/CC26X2/)) {
ROM.romName = ROM.CC26X2;
}
else if (Program.cpu.deviceName.match(/CC13X2/)) {
ROM.romName = ROM.CC13X2;
}
ROM 中的 TI-RTOS 内核针对性能进行了优化。如果您的应用程序需要额外的仪器(通常用于调试),您必须在 flash 内存中包含 TI-RTOS 内核,这将增加 flash 内存消耗。
BIOS.assertsEnabled必须设置为BIOS.logsEnabled必须设置为falseBIOS.taskEnabled必须设置为trueBIOS.swiEnabled必须设置为trueBIOS.runtimeCreatesEnabled必须设置为true- BIOS 必须使用
ti.sysbios.gates.GateMutex模块 Clock.tickSource必须设置为Clock.TickSource_TIMERSemaphore.supportsPrioritymust befalse- 不允许使用 Swi, Task, and Hwi 钩子函数
- 不允许使用 Swi, Task, and Hwi 具名实例
- 禁用 Task 堆栈检查
Hwi.disablePriority必须设置为0x20Hwi.dispatcherAutoNestingSupport必须设置为true
