u RTX操作系统是由KEIL公司(现在已经被并入ARM公司旗下)开发并进行升级维护的。
u 每个MDK的安装目录里面都会有一个RTX源码,对于MDK4.XX来说,大家使用的那个MDK版本,务必使用那个MDK版本下面的RTX,这样使用MDK自带的RTX调试组件时,才能显示正确的调试信息。
u 当前STM32F103和STM32F407开发板使用的RTX源码是MDK4.74里面的,KEIL官方已经放弃MDK4系列的更新了,这个版本号是MDK4系列里面最新版本了。如果需要使用MDK自带的RTX调试组件显示信息,请务必使用MDK4.74。
u 对于MDK5.XX,RTX也在其安装目录里面,但是RTX已经不作为单独版本发布了,它有一个全新的名字叫CMSIS-RTOS RTX。ARM官方在RTX的基础上给RTX又做了一层封装。
学习RTX主要有两个可以参考的资料:
u KEIL MDK安装目录里面的rlarm.chm文件。
u KEIL官网上在线查看。
当然,两者的内容是一样的。其实不光RTX操作系统是这样,像FreeRTOS和uCOS现在也是这种形式,一个离线方式的电子手册和一个在线的手册。
rlarm.chm文件在MDK4.74的安装目录C:Keil_v474ARMHlp里面,下图3.1就是打开后的效果
MDK(以MDK4.74为例)中自带RTX的调试组件,本小节就给大家介绍下如何使用RTX的调试组件。首先将基于RTX的MDK工程进行全编译,然后进行软件仿真或者硬件仿真,因为只有在仿真状态下才可以使用RTX的调试组件。下面是详细的设置步骤:
u 第1步:进行MDK工程全编译
u 第2步:点击MDK的这个图标
u Timer Number:0表示使用芯片的滴答定时器,1表示使用外设定时器。
u Tick Timer:RTX的时钟节拍周期。
u Roud Robin Timeout:时间片溢出时间,即时间片调度时任务分配的时间片大小。
u Stack Size:任务栈大小,单位字节。
u Stack Overflow Check:设置是否支持栈溢出检测。
u Tack Usage:任务创建情况,Available表示可以创建的最大任务数,Used表示实际创建的。
u User Timers:软件定时器个数,Available表示可以创建的最大任个数,Used表示实际创建的个数。
下面是任务部分功能介绍:
u ID:任务的ID标示。
u Name:任务的函数名。
u Priority:任务优先级。
u State:任务状态。
u Delay:任务延迟时间。
u Event Value:任务当前的事件标志数值。
u Event Mask:任务等待的事件标志数值。
u Stack Load:任务堆栈利用率。