无锡谷雨电子有限公司 
TI-RTOS 开发教程 
CC26xx 平台 
 
 
2017-06-29 
 
 
 
 
 
 
谷雨物联网开发平台 
TI-RTOS 开发教程 
http://www.iotxx.com 
目录 
更改记录........................................................................................................................................... 3 
第一章  TI-RTOS ................................................................................................................................ 4 
1.1  什么是 TI-RTOS .................................................................................................................. 4 
1.2 TI-RTOS 组件 ....................................................................................................................... 4 
1.3  下载并安装........................................................................................................................ 5 
1.4  创建 RTOS 工程(IAR) .................................................................................................... 8 
1.5 开发资料详情................................................................................................................... 11 
第二章  任务................................................................................................................................... 13 
简介......................................................................................................................................... 13 
2.1  任务类型.......................................................................................................................... 13 
2.2  任务优先级...................................................................................................................... 14 
2.3  任务状态.......................................................................................................................... 15 
2.4  任务堆栈.......................................................................................................................... 16 
2.5  创建任务.......................................................................................................................... 17 
例 1 创建任务实验 ......................................................................................................... 20 
2.5  删除任务.......................................................................................................................... 23 
例 2  任务删除实验 ........................................................................................................ 23 
2.6  任务抢占.......................................................................................................................... 24 
例 3 任务抢占实验 ......................................................................................................... 25 
例 4  任务优先级更改 .................................................................................................... 28 
第三章  任务间同步 ....................................................................................................................... 29 
3.1  信号量(Semaphores).................................................................................................. 29 
3.1.1  创建/删除信号量 ................................................................................................. 30 
3.1.2  信号申请与释放 ................................................................................................... 31 
例 5  利用二值信号量对任务控制 ................................................................................ 32 
例 6  利用二值信号进行互斥访问 ................................................................................ 34 
3.2  事件(Event)................................................................................................................. 35 
3.2.1 创建/删除事件对象 .............................................................................................. 37 
3.2.2  事件 pend/post ..................................................................................................... 38 
例 7 事件创建实验 ......................................................................................................... 38 
3.3  队列(Queues) ............................................................................................................. 41 
3.3.1  队列创建 ............................................................................................................... 42 
3.3.2  队列操作 ............................................................................................................... 42 
3.3.3  遍历队列 ............................................................................................................... 44 
3.3.4  插入删除元素 ....................................................................................................... 44 
例 8  队列实验 ................................................................................................................ 45 
3.4  邮箱(MailBoxs) ........................................................................................................... 45 
3.4.1  创建邮箱 ............................................................................................................... 45 
3.4.2  发送接收邮件 ....................................................................................................... 47 
例 9  邮箱实验 ................................................................................................................ 47 
第四章  HWI.................................................................................................................................... 50 
4.1  创建 HWI ......................................................................................................................... 50 
4.2  硬件中断嵌套和系统堆栈大小 ...................................................................................... 50 
第 1 页    共 86 页 
谷雨物联网开发平台 
TI-RTOS 开发教程 
http://www.iotxx.com 
4.3 Hwi hooks .......................................................................................................................... 51 
4.4 Register  函数.................................................................................................................... 51 
4.5 Create/Delete 函数 ........................................................................................................... 52 
4.6 Begin/End 函数 ................................................................................................................. 52 
第五章  SWI .................................................................................................................................... 52 
5.1  创建 SWI 对象 ................................................................................................................. 52 
5.2 SWI 对象优先级及系统堆栈大小 ................................................................................... 54 
5.3 SWI 中断执行 ................................................................................................................... 54 
例 10 SWI 实验 ....................................................................................................................... 58 
5.4  同步 Swi 函数 .................................................................................................................. 60 
5.5 Swi hooks .......................................................................................................................... 60 
5.6 Register  函数.................................................................................................................... 61 
5.7 Create/Delete  函数 .......................................................................................................... 61 
5.8 Ready/Begin/End  函数..................................................................................................... 61 
例 11 SWI hooks 例子 ............................................................................................................. 62 
第六章  门(Gates) ........................................................................................................................... 67 
6.1  基于抢占 Gate 实现 ........................................................................................................ 68 
6.1.1 GateHwi .................................................................................................................. 68 
6.1.2 GateSwi .................................................................................................................. 69 
6.1.3 GateTask ................................................................................................................. 69 
例 12 Gate 临界保护实验 .............................................................................................. 69 
6.2  基于信号量 Gate 实现 .................................................................................................... 70 
6.2.1 GateMutex.............................................................................................................. 70 
例 13 Gate 对共享资源互斥访问 .................................................................................. 70 
6.2.2 GateMutexPri ......................................................................................................... 73 
第七章  时间服务 ........................................................................................................................... 73 
7.1 Clock .................................................................................................................................. 73 
例 14 Clock 延时实验 ............................................................................................................. 76 
7.2 Timer ................................................................................................................................. 78 
7.3 Second ............................................................................................................................... 78 
第八章  RTOS 实验例程说明 ......................................................................................................... 79 
8.1  实验例程汇总.................................................................................................................. 79 
第九章  APIs 列表 ........................................................................................................................... 80 
9.1 Tasks APIs 函数 ................................................................................................................. 80 
9.2 Semaphore APIs  函数 ...................................................................................................... 82 
9.3 Event APIs  函数 ................................................................................................................ 82 
9.4 Queue APIs  函数 .............................................................................................................. 83 
9.5 Mailbox APIs  函数 ............................................................................................................ 84 
声明................................................................................................................................................. 84 
附录 1:联系方式 .......................................................................................................................... 84 
 
 
 
第 2 页    共 86 页 
谷雨物联网开发平台 
TI-RTOS 开发教程 
http://www.iotxx.com 
更改记录 
版本 
V1.0 
 
 
日期 
描述 
20170614 
文档初始版本 
 
 
 
第 3 页    共 86 页 
谷雨物联网开发平台 
TI-RTOS 开发教程 
http://www.iotxx.com 
第一章  TI-RTOS 
1.1  什么是 TI-RTOS 
在操作系统没有出来之前,单处理器就只能运行单个任务。这样用户只能独占 CPU,这
样带来的缺点是 CPU 利用效率非常低。为了解决这个缺点人们提出了操作系统,这样即使
只有一个 CPU 也可以运行多个任务,且每个任务互不影响,感觉上还是独占 CPU。由于这
个操作系统的出现,使 CPU 使用效率大大提高。 
不同的多任务系统侧重点会有所不同。 
对于 PC 用户可以独占一个或多个 CPU。而这类操作系统的调度算法则设计为让用户可
以同时运行多个应用程序,而计算机也不会反应迟钝。例如用户可能同时运行一个 word 处
理程序,一个 web 浏览器,或者更多,并且期望每个应用程序任何时候都能对输入有足够
快的响应时间。 
对于服务器操作系统,则是为了支持多用户。这类系统的调度算法侧重于让每个用户公
平享用 CPU 时间。 
实时嵌入式系统则更侧重于实时性,即任务必须在给定的时间限制内完成。例如危险的
错误发生时,如果不能在限定的时间内做出反应,那么就有可能发生严重的后果。 
大多数嵌入式系统不仅满足硬实时要求,也能满足软实时要求。这样才能称这实时操作
系统。 
TI-RTOS  是与其他 RTOS 一样,是对系统资源进行管理与调度。只不过 TI-RTOS 是针对
TI 的可编程器件的一个 RTOS。TI-RTOS  是一个可裁剪,可剥夺,一站式嵌入式工具型的一个
实时操作系。它由一个具有多任务管理功能 SYS/BIOS 内核组件,和其它一些铺助组件与设
备驱动组成,其 SYS/BIOS 是其主要的,不可或缺的核心组件。SYS/BIOS 负责任务启动,调
度,抢占,任务间同步。 
由于  TI-RTOS  避免了从头开始创建基本系统软件功能的必要,所以加快了开发步伐。
TI-RTOS  可从实时多任务内核(之前称为  SYS/BIOS  的  TI-RTOS  内核)扩展为完整的  RTOS 
解决方案,包括附加中间件组件、器件驱动程序和电源管理。通过结合  TI-RTOS  电源管理
和  TI  的超低功耗  MCU,开发人员能够设计出电池寿命更长的应用。TI-RTOS  提供经预测试
和预集成的必要系统软件组件,使开发人员能够专注于设计最与众不同的应用。 
TI-RTOS  构建于经过检验的现有软件组件基础之上,确保了可靠性和质量。除此之外,
还提供了适用于多任务开发和集成测试的文档、额外示例以及  API,用于验证所有组件能否
协调工作。TI-RTOS  经过  Code Composer Studio™  集成开发环境  (CCS IDE)  的充分测试。针
对一些微控制器平台,TI-RTOS  包含可以与  IAR  嵌入式工作平台  IDE  和  GCC  配合使用的
库。 
1.2 TI-RTOS 组件 
TI-RTOS 包含自己的源文件,预编译的库和相应的例子。TI-RTOS 的组件在安装目录下
的”products”子目录下。一些组件不是适用所有的 TI 器件。在每个组件下有相应的 doc 目录,
里面文档说细说明了当前组件。在下面表格里列举的组件是我们后面将要重点介绍与编程使
用的组件。 
第 4 页    共 86 页 
谷雨物联网开发平台 
TI-RTOS 开发教程 
http://www.iotxx.com 
名称 
SYS/BIOS 
XDCtools 
Drivers,CC26xxWare 
-- 
/docs/目录下 
PDF 原文档 
SYS/BIOS(TI-RTOS Kernel) User’s Guide 
TI-RTOS  组件 
TI-RTOS  内核 
TI_RTOS  驱动与板级初始化 
XDCtools 
TI-RTOS Kernel – SYS/BIOS    SYS/BIOS 是一个实时内核。它被具有实时性要求的应用程序使用。
SYS/BIOS 具有可抢占的多任务,硬件抽象,实时分析,可工具配置,它对内存与 CPU 要求
低。在 CC26xx 内部 Flash 中,固化的 SYS/BIOS 内核。 
Drivers    TI-RTOS  包含了多个外设驱动。驱动在/packages/ti/drivers  目录下。
这些驱动具有线程安全特性。 
CC26xxWare    是 CC26xx  外设的寄存器级别的驱动软件。 
XDCtools  是一个单独的软件组件,它提供了对 TIRTOS 的配置与编译。XDCtools  提供了
XGCONF 配置编辑和脚本语言对.cfg 文件进行编辑。它也提供了工具对.cfg 文件进行编译。只
要你的工程里有.cfg 后辍的文件,XDCtools 都会自动对其进行编译,从而产生源码参与程序
的编译与链接。XDCtools  中的软件模块不做具体介绍,在后面的工程中用到的时候,再进
行说明。 
1.3  下载并安装 
在使用 TI-RTOS 之前,要在自己的电脑上安装相应的 TI-RTOS 包。这些资源工具的获取,
最好在 TI 的官网上下载。TI-RTOS  的官网下载地址为 http://www.ti.com/tool/ti-rtos-mcu。 
在浏览器中输入上述地址并进入 TI 官网。其网站的部分内容截图如下。可能随着时间
变化,其网页的内容和布局会有所变化,一切以 TI 官网为准。或者在其官网的搜所框中搜
所 TI-RTOS 关键字,同样可以找到。 
  点击 Get software,便可进入 TI-RTOS  详细分支页面。 
第 5 页    共 86 页 
 
 
谷雨物联网开发平台 
TI-RTOS 开发教程 
http://www.iotxx.com 
用户根据自己需求,点击下载相应版本的 RTOS。这里我们以 CC26xx 平台为例,进行 RTOS
的安装。如果用户的 PC 上安装了 BLE 协议栈,可以不用单独下载安装 RTOS。因为在安装
BLE 协议栈时,已经安装了相应的 RTOS 和 XDCTools。 
 
装完成。强烈建议不要修改安装的路径。下图是安装过程的部分截图。 
TI-RTOS  是以安装包形式提供,所以用户只要双击.exe 文件,并一直点击下一步直至安
 
 
第 6 页    共 86 页 
谷雨物联网开发平台 
TI-RTOS 开发教程 
http://www.iotxx.com 
 
 
 
第 7 页    共 86 页