用协处理器提高μC/OS-II的实时性

用协处理器提高μC/OS-II的实时性

ID:42667066

大小:1004.50 KB

页数:12页

时间:2019-09-19

用协处理器提高μC/OS-II的实时性_第1页
用协处理器提高μC/OS-II的实时性_第2页
用协处理器提高μC/OS-II的实时性_第3页
用协处理器提高μC/OS-II的实时性_第4页
用协处理器提高μC/OS-II的实时性_第5页
资源描述:

《用协处理器提高μC/OS-II的实时性》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、时钟节拍(一)2008-11-0921:53时钟节拍是μC/OS-II运行的基础,其原理就是利用定时器中断,每隔一个时钟节拍中断一次,在发生中断时,内核判断是否进行任务切换或者别的操作(如果没有时钟节拍,操作系统就不知道什么时候要任务切换了),或者说,操作系统不知道什么时候来切换任务。任务的切换时一个很被动的过程,每隔固定的一段时间就检查一次,看有没有比现在正在运行的任务优先级高的任务处在就绪状态。节拍率一般在10~100次之间,越高则系统的额外负荷就越重。μC/OS-Ⅱ中的时钟节拍服务是通过在中断服务子程序中调用O

2、STimeTick()实现的。时钟节拍中断服务子程序OSTickISR()的代码必须用汇编语言编写,因为在C语言里不能直接处理CPU的寄存器。voidTimerInitiate(unsignedcharCrystal,unsignedcharFrequence){//Crystal晶振Frenquence时钟节拍率unsignedlongtemporary=0;temporary=1000000/(12*Frequence);temporary=65535-Crystal*temporary;TMOD=(TMOD&0

3、XF0)

4、0X01;/*Timer0工作在方式1*/TL0=(unsignedchar)temporary;TH0=(unsignedchar)(temporary>>8);TR0=1;ET0=1;}初始化定时器中断必须紧跟在多任务系统启动之后,一般放在第一个任务中。用协处理器提高μC/OS-II的实时性                                                    清华大学冯泽东邵贝贝  引言  μC/OS-II最多支持63个任务,并支持信号量、邮箱、消息队列等多种进程间通信

5、机制;同时,用户可以根据需求对内核中的功能模块进行裁剪。将μC/OS-II应用到嵌入式系统中,对于提高产品的质量、缩短开发周期和降低成本都有重要的意义。  为了保证系统的实时性,μC/OS-II采用查表策略,使优先级最高的任务一旦进入就绪态就立刻可以运行。这种查表算法与应用系统的任务数目无关,执行时间是固定值,从而保证了系统的硬实时性。μC/OS-II实时内核中唯一一个执行时间受任务数目影响的函数是时钟节拍,时钟节拍的中断服务子程序需要遍历所有使用延迟函数的任务,故执行时间与任务数目有关,为非固定值。此外,时钟节拍的

6、频率也不能太高,否则会因为CPU频繁加载中断服务子程序,导致加重了CPU负荷,影响μC/OS-II的实时性。  Freescale公司的16位HCS12X(简称“S12X”)系列单片机引入了一个协处理器,名为“XGATE”。与普通意义上的浮点协处理器不同,这个协处理器主要用来处理中断。如果采用协处理器来处理μC/OS-II时钟节拍的中断,那么主CPU无需频繁加载中断服务子程序,从而保证μC/OS-II内核的所有函数执行时间都为固定值。这样,μC/OS-II的实时性就得到了保证,还能以提高时钟节拍中断频率的方法提高应用

7、系统定时的精度。  1单片机中的协处理器  HCS12X系列单片机中的XGATE协处理器是精简指令集(RISC)结构的处理器,它的工作时钟频率是S12X主CPU的2倍。主CPU初始化系统时可决定使用或禁用XGATE。若使用,则XGATE在初始化后就独立地运行,并通过双端口RAM与CPU交换数据,必要时向主CPU发中断请求。  XGATE处理完所有的中断后进入休眠态,停止运行,直到下一次中断发生。XGATE比较适合响应的中断主要是加载频率高的中断,或不带通信缓冲区的I/O中断,例如SCI发送或接收中断、PWM输出中断等

8、。而对于本身带发送、接收缓冲区的中断(如CAN中断、USB中断等),采用协处理器处理中断优势不明显。  μC/OS-II的时钟节拍中断是一个频繁发生的中断,所以很适合采用XGATE来响应。以下重点介绍如何用XGATE协处理器响应μC/0S—II的时钟节拍中断。  2用XGATE实现μC/OS-II的时钟节拍  μC/0S-11的时钟节拍中断可以采用单片机的实时中断(Real-TimeInterrupt,RTI)来实现。当然也可以使用定时器中的计数器来产生时钟节拍,原理相同,方法近似。使用XGATE来响应RTI中断,实

9、现时钟节拍时,XGATE协处理器和主CPU的分工如表1所列。点击看原图  XGATE负责响应RTI中断,实现时钟节拍,并完成任务延时计数;在任务延时完成后,通知CPU进行任务调度。另外,XGATE还用来响应其他中断,在需要任务调度时通知CPU。主CPU则只负责运行任务(包括系统任务)和任务调度,只有在需要任务调度时才会加载中断服务子程序。使用X

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。