超级循环式的软件架构,最坏的情况下,任务响应时
间将取决于整个循环的执行时间,以及中断程序处理时
间。因为循环的执行时间不是常数,程序经过某一特定部
分的准确时间也是不确定的,进而,如果程序修改了,循
环的时序也会受影响。存在关键任务的程序里面,这种情
况是不允许的。相应地,实时操作系统(RTOS)的主要功
能就是,必须保证按照任务的优先级,在可预知的时间内
做出响应,尤其是对于生命攸关的应用,例如航天、航空、
医疗等场合。
市场上有多种 RTOS,例如 μC/OS- II、CMX、embOS、
MQX、freeRTOS、Power Pac、ThreadX、CoOS 等等。其中多
数是针对通用硬件架构设计的,例如 ARM7、ARM9、
Cortex- M等都适用,商业版本是收费的,开源版本应用在
商业产品上也要通过授权许可,所以一般开源 RTOS 只
作为学习用途。但也有例外,例如由国内高校团队开发的
CooCox CoOS (以 下 简 称 CoOS),就 是 免 授 权 的 开 源
RTOS,开发者可以用在商业产品上。而且它是专门为
Cortex- M架构设计的,应用在该架构的单片机上,能发挥
出它的最大优势。特别是它的零中断延时特性,对关键任
务至关重要。
STM32 是 ST 公司基于 ARM Cortex- M3 设计的单片
机系列,采用 ARM v7M 架构,使用 Thumb- 2 指令集,
合 16 及 32 位指令,具有非常高的代码密度,比 ARM7 平
均高出 30%,采用哈佛结构,集成 NVIC 实现快速中断,
可完全使用 C 语言编程,集成总线矩阵,集成系统定时器
(SysTick)用作 RTOS 时基。它的特点是具有非常低的中
断响应时间,而且不同中断源可属于不同的优先级和抢
占级,对任务配置非常灵活。STM32 配备了强大的外设,
其中 DMA 可以各种灵活方式跟外设接口,节省宝贵的
CPU 资源,以超级循环方式运行的 STM32 程序,在处理
一般任务时会比传统单片机存在巨大优势。如果程序变
得复杂,例如要同时处理 USB 协议、图形人机界面、后端
多任务时,任务实时性问题就会突显,此时应用 RTOS,任
务的调度时间才会得到有效平衡。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部1条评论
快来发表一下你的评论吧 !