内核配置

Mark Walen大约 2 分钟

内核配置

TI-RTOS 应用程序使用配置文件(.cfg 文件)配置 TI-RTOS 内核。在 IAR 和 CCS 项目中,此文件位于 TOOLS 文件夹下的应用程序项目工作区中。

配置是通过有选择性地引入或使用内核可用的 RTSCopen in new window 模块来完成的。若要使用模块,在 .cfg 配置文件中调用 xdc.useModule() 之后,xdc.useModule() [1]^{[1]} 可以设置 TI-RTOS Kernel (SYS/BIOS) User’s Guideopen in new window 中定义的各种选项。

以下内容为译者补充,了解更多 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 的配置工具。在提供的 IARopen in new windowCCSopen in new window 示例中,此步骤已作为预构建步骤为您处理。

对于 CC2640R2,ROMopen in new window 中存在一个 TI-RTOS 内核。通常为了节省闪存占用空间,.cfg 将包含内核的 ROMopen in new window 模块,如清单 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 必须设置为 false
  • BIOS.taskEnabled 必须设置为 true
  • BIOS.swiEnabled 必须设置为 true
  • BIOS.runtimeCreatesEnabled 必须设置为 true
  • BIOS 必须使用 ti.sysbios.gates.GateMutex 模块
  • Clock.tickSource 必须设置为 Clock.TickSource_TIMER
  • Semaphore.supportsPriority must be false
  • 不允许使用 Swi, Task, and Hwi 钩子函数
  • 不允许使用 Swi, Task, and Hwi 具名实例
  • 禁用 Task 堆栈检查
  • Hwi.disablePriority 必须设置为 0x20
  • Hwi.dispatcherAutoNestingSupport 必须设置为 true