>
首页 » 业界动态 » 用协处理器提高μC/OS-II的实时性

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

作者:清华大学 冯泽东 邵贝贝  时间:2008-10-20 20:55  来源:EDN China
在XGATE的程序中,需要使用extern声明这些变量,具体语句如下:

程序

 

 

  2.3 XGATE与S12X CPU的指针变量变换

  因为XGATE的内存空间编址与S12X CPU的内存空间编址不一样,所以在指针变量共享时会存在问题。CPU的内存空间和XGATE的内存空间的差别如图1所示。

CPU的内存空间和XGATE的内存空间的差别

点击看原图

 

 

  从图1中可以看出,在S12X CPU的寻址空间中,0x1000~0x3FFF为RAM空间;而对XGATE来说,RAM空间的地址范围为Ox8000~0xFFFF。如果XGATE的程序直接使用CPU的指针变量,则会导致XGATE访问地址空间0x1000~0x3FFF,该区域对于XGATE是Flash,从而出错。为了正确地共享指针变量,在XGATE中使用S12x CPU的指针变量时,需要对指针变量进行变换。S12X系列中不同单片机成员的地址分配可能有所不同。以MC9S12XDT512单片机为例,其内部共有8 KB非分页RAM,可全都设为S12X CPU和XGATE的共享内存。这8 KB RAM在S12X CPU中的地址为0x2000~0x3FFF;而在XGATE中的地址为0xE000~0xFFFF,地址偏差为0xC000。因此,在XGATE使用S12X CPU的指针变量时,将指针变量的值加偏移量0xC000,就可以在XGATE程序中正常使用。

  下面是XGATE程序中一个指针变量变换的代码:

程序

点击看原图

 

 

  在XGATE协处理器中有8个寄存器,编译器使用其中的R1来传递参数,上面程序中的R2、R3是8个寄存器中的另外2个。

  2.4 XGATE与S12X CPU的通信

  XGATE处理RTI中断时先完成指针变换,然后遍历μC/OS-II的所有任务控制块链表,对需要延时的任务进行延时计数器减1操作。若无需任务调度,则XGATE回到休眠态,直到响应下一次中断。仅当某任务延时计数器递减到零时,该任务进入就绪态,需要任务调度时才通知S12X CPU进行任务切换。

  在XGATE的中断服务子程序中,中断标志指令SIF用于向S12X CPU发出中断请求。该指令置位中断标志位,请求S12X CPU继续响应本次RTI中断。在XGATE的中断服务子程序中使用SIF 指令的代码如下(其中R5是协处理器XGATE的8个寄存器之一):

程序

点击看原图

 

 

  由于遍历任务控制块链表和各任务延时计数器减1的操作,以及无需任务调度的RTI中断响应都由XGATE完成了,S12X CPU只需要响应确实需要进行任务调度的RTI中断,使其中断服务子程序大大简化:

程序

点击看原图

 

 

  这样,CPU的RTI中断服务子程序所要执行的代码是固定的,每次的运行时间也是固定值,因而μC/OS-II的实时性得到了确切的保证。

  S12X CPU和XGATE的程序流程如图2所示。

S12X CPU和XGATE的程序流程

点击看原图

 

 

  2.5 设置XGATE向量表

  为了使XGATE正常响应中断,需要把XGATE的RTI中断服务子程序地址写到XGATE的中断向量表中。XGATE的中断向量表的写法与CPU的中断向量写法类似,只是XGATE的中断子程序可代入一个参数,需要将这个参数也写入中断向量表。

  在XGATE中断向量表的确定位置,写入RTI中断服务子程序地址和参数变量,就可以使XGATE在响应RTI中断时进入RTI中断服务子程序。

  XGATE的中断向量表的写法如下:

程序

点击看原图

 

 

  其中,OSTCBList是XGATE响应RTI中断时需要带入的参数,这里这个参数是μC/OS-II任务控制块链表的首地址;XGATE_TableEntry是一个编译器自定义的结构体变量类型;XGATE_VectorTable[]是XGATE的中断向量表。写好XGATE的中断向量表后,使用XGATE实现μC/OS-II时钟节拍的设置过程就完成了。

 

 

 

 

 

 

 

相关推荐

相干光通信发展二十余年 光器件有大进步

光通信  光器件  WiMAX  2013-12-20

台LED厂吃“欧美大单”明年照明业务将起飞

LED  照明  WiMAX  2013-12-17

FTTH挑战犹存 “光进铜不退”逐渐兴起

FTTH  FTTx  2013-08-14

TE连接器助力运营商FTTx网络布局

TE连接器  FTTx  2012-10-23

诺西网络同意出售WiMax部门 开始实施重组

诺西  宽带  WiMax  2011-12-01

全球WiMAX用户突破2000万 年内将达2500万

Clearwire  WiMAX  2011-08-22
在线研讨会
焦点