前言
SYS/BIOS 是通过 RTSC + XDCtools 实现的。
如果想在工程中使用信号量:
var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
这句代码会告诉 XDCtools:
“我在工程中要用信号量模块,请帮我自动生成初始化和相关配置代码。”
所以如果在工程中没启用 XDCtools 或配置错误,哪怕写了 Semaphore_pend() 也会因为找不到模块而编译失败。
提示:以下是本篇文章正文内容,下面案例可供参考
一、RTSC是什么?
RTSC:Real-Time Software Components(实时软件组件)
是一种用于创建、配置、管理嵌入式实时系统组件的软件架构标准。
支持在 CCS 中 配置、编译、链接嵌入式组件(比如:BIOS、任务、信号量)
核心思想:把嵌入式系统的不同模块(比如 BIOS、驱动、任务)都变成“可配置的模块”,用一套机制自动生成我们需要的代码(比如 .cmd、.c、.h 文件)。
功能目标 | 说明 |
---|---|
软件组件化 | 让每个模块(比如任务调度器、信号量)都封装成独立“组件”,可以复用和配置 |
配置自动化 | 用户只需通过 .cfg 脚本“描述”想要的系统结构,工具自动生成初始化代码和链接文件 |
✔️ RTSC 是一种标准,用来 规范模块的接口、配置、打包方式,也通过工具(如 XDCtools)实现 “让模块变成可配置模块” 的功能。
举例:
Semaphore
模块需要手动写很多代码:
Semaphore_Handle sem;
Semaphore_Params_init(¶ms);
sem = Semaphore_create(0, ¶ms, NULL);
使用RTSC只需要在 .cfg
中写一行:
var Semaphore = xdc.useModule("ti.sysbios.knl.Semaphore");
然后在代码中写入:
Semaphore_pend(sem, BIOS_WAIT_FOREVER);
初始化代码、模块导入、内存配置全由工具生成,避免出错、节省时间。
二、XDCtools是什么?
XDCtools :RTSC 标准的软件实现工具包,RTSC 的操作系统 + 编译器 + 脚本执行器,不包含编译工具链,使用时需要搭配相应编译工具链,比如C6000系列DSP需要搭配C6000系列的CGT工具?
可以把 RTSC 理解成一个“标准”,而 XDCtools 是 TI 提供的“工具软件”,用来实现这个标准。它包括:
工具 | 功能说明 |
---|---|
xs | 类似 JavaScript 解释器 + 编译器,可以运行 .cfg 配置脚本并生成配置代码 |
configuro | 把 .cfg脚本转换为 C 工程可以用的 .cmd(链接器)、.c/.h(初始化代码)等 |
xdcpath | 指定模块搜索路径,例如 SYS/BIOS、PDK,指明去哪找 ti.sysbios.* 模块等 |
xdc.useModule() | 在脚本中声明要用哪个模块,比如 Task、Semaphore、BIOS,相当于自动 #include + init |
举例:
写出.cfg文件:
var Task = xdc.useModule('ti.sysbios.knl.Task');
Task.create("&myTask0");
点击 Build Project,CCS 背后就会做以下几件事:
1.XDCtools 调用 configuro
工具读取 .cfg
文件
2.自动生成 linker.cmd
、main.c
、sem_pe66.c
等必要的源文件
3.你写的 myTask0()
函数也会被加入 BIOS 任务调度器中
4.编译器把这些组合起来,最后生成可运行的 .out
文件
2.1 .cfg文件
.cfg 是 RTSC 的核心配置文件,是个 JavaScript 脚本文件,里面用 xdc 提供的 API 来配置系统行为,比如:
var BIOS = xdc.useModule('ti.sysbios.BIOS');
BIOS.libType = BIOS.LibType_Custom;
var Task = xdc.useModule('ti.sysbios.knl.Task');
Task.create("&myTask0", params);
这不是普通配置文件,而是“可执行的配置脚本”,可以动态创建任务、信号量、配置系统参数。
配置完成后进入编译和链接操作,在编译时会根据配置文件自动成成.c文件和.cmd文件,所以一般在基于SYS/BIOS的工程当中一般是没有.cmd文件的。在RTSC中,.cmd文件一般是根据paltform平台配置动态生成的
2.1 在CCS中使用XDCtools
在 CCS 中启用 RTSC 项目(RTSC-enabled project)时:
就能在项目中添加 .cfg 文件
编译时调用 XDCtools 自动生成系统配置代码
不需要手动写 .cmd 或复杂初始化代码,全部由工具完成
工程中必须包括这些内容才能正常使用:
组件 | 说明 |
---|---|
.cfg 文件 | 配置文件,告诉系统使用哪些 RTSC 模块(如 Semaphore) |
.c 文件 | 自己写的任务代码(如 myTask0()) |
.cmd 文件 | 链接器文件,可以由 configuro 自动生成或手动提供 |
RTSC product path | 设置安装的 XDCtools 和 SYS/BIOS 路径 |
三、问题
configPkg没有 .cmd/.c 文件
❌ 不正常,说明 .cfg 没被执行或写法有问题
正确的.cfg文件应该生成以下内容: