前言:因为在网上没有找到TI-RTOS的学习视频,虽然很多地方与free-RTOS相通,但是本人仍不想为了学习TI-RTOS先去学习freeRTOS,所幸关于TI-RTOS,ti公司给了许多相关的文档资料,虽然本人英文不太好,但没有办法,只能抱着试一试的心态,努力啃一啃,故在此做学习笔记。
第一篇参考资料:TI-RTOS 2.20 for CC13xx/CC26xx SimpleLink™ Wireless MCUs
在学习TI-RTOS之前,我想我们起码要先知道什么是RTOS,什么又是TI-RTOS...
什么是RTOS?
参考了CSDN上的一篇文章:https://blog.csdn.net/boyaaboy/article/details/106467879
(很好的一篇文章,对实时操作系统做出了详细的理论讲解)
操作系统(OS)产生的目的是为了利用一种合理的系统软件程序让计算机的各项资源可以被合理的调配,从而减轻人们在使用计算机等电子产品时的上手难度。(目前理解有限,之后会来补充)
操作系统根据不同的用途分为不同的种类,从功能角度分析,分别有实时系统、批处理系统、分时系统、网络操作系统等。
而实时操作系统(RTOS)便是我们要讨论的主角,参见 Donal Gillies 在 Realtime Computing FAQ 中提出定义:实时系统指系统的计算正确性不仅取决于计算的逻辑正确性,还取决于产生结果的时间。如果未满足系统的时间约束,则认为系统失效。
可以看出,实时操作系统并非任务调配速度快,而是每次相应都具有时间的确定性,如果一个CPU十分强大,那么windows便可以在CPU空闲时刻提供非常迅速的中断响应,但是若CPU在某一时间满载后,可能新添加一个简单的文件读取任务就会产生一个漫长时间的响应等待,甚至直接卡死,这便说明Windows不是实时操作系统,也说明事实操作系统并非响应速度快就可以满足。
什么是TI-RTOS?
对此TI官方给出的定义是:TI- rtos是一个可扩展的、一站式的TI设备嵌入式工具生态系统。
他并非仅仅是一个实时多任务内核(SYS/BIOS),而是一个包括了中间件和外设驱动程序的完整的RTOS解决方案。它主要由TI-RTO内核(SYS/BIOS)、TI-RTOS驱动和板级支持、多种产品型号的软件支持(CC13XX/CC26XX)、统一仪器结构(UIA)和XDCtools组成。
1、SYS/BIOS
SYS/BISO是TI开发的高级实时操作系统,主要目的是将对目标内存和CPU的需求降到最低。
SYS/BIOS提供了广泛的服务选项:
- 抢占式的确定性多线程
- 硬件抽象
- 内存管理
- 配置工具
- 实时分析
关于SYS/BIOS内核TI具有一个专门的文档,详情可以阅读:
关于SYS/BIOS的知识,在之后的篇幅还会再详细学习
2、统一的仪器结构(UIA)(还是不知道干啥用的)
可以理解为集成在CCS中的用于创建和收集各种检测数据的工具,在CCS 10.0版本以上,UIA被集成在CCS > View中
UIA与同样集成在CCS > View 菜单栏的System Analyzer一起工作,为运行在TI嵌入式单核和多核设备上的软件提供实时性能和行为的可见性。
3、网络开发工具包(NDK)
网络开发工具包(NDK)是一个在TI嵌入式处理器上开发和演示网络应用程序的平台,目前仅限于TMS320C6000系列和ARM处理器。
NDK堆栈作为一个快速的原型平台,用于开发网络和包处理应用程序。它可用于向现有应用程序添加网络连通性,以进行通信、配置和控制。使用NDK中提供的组件,开发人员可以快速地从开发概念转移到连接到网络上的工作实现。
NDK是一个运行在SYS/BIOS上层的网络栈。
具体学习可以参考TI官网的NDK用户手册和开发指南。
4、TI-RTOS 网络服务
Network Services组件提供应用层网络协议,如HTTP Client和SNTP Client。这些是为TI嵌入式处理器设计的。
具体参考手册可以TI官方的NS用户手册。
5、FatFS 模块
FatFS是一个用于嵌入式系统的开源FAT文件系统模块,TI-RTOS的文件系统便是采用了改模块
6、TI-RTOS的驱动和板子的初始化
1)驱动
TI-RTOS的外设驱动是在xxWare的基础之上编写的,相比于xxWare这些驱动是线程安全的
2)CC26xxWare and CC32xxWare
目前这些xxWare集成在相对应的产品的SDK中,它提供了驱动的源代码和无线或射频的封装库,可以帮助我们通过访问寄存器的形式访问对应产品的各种外设。
但值得注意是,这些驱动代码并非线程安全的,在调用这些驱动代码的时候可以通过SYS/BIOS提供的同步机制来保护多个线程。
7、XDCtools
XDCtools是由德州仪器公司提供的一个独立的软件组件,它提供了配置和构建SYS/BIOS、NDK和UIA所需的底层工具。
- XDCtools提供了XGCONF配置编辑器和*.cfg文件中使用的脚本语言。它用于配置组成TI-RTOS的许多组件中的模块
- XDCtools提供了许多模块和运行时(Runtime)APIs, TI-RTOS及其组件利用这些模块和api进行内存分配、日志记录、系统控制等
- XDCtools还包含专门编译配置文件(.cfg)的工具,在我们编译工程是这个工具会自动编译配置文件,并会生成源代码文件与应用代码想连接。