首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
嵌入式实时操作系统μCOS-Ⅱ的移植
来源:本站整理  作者:佚名  2009-03-18 15:58:49



asm psha
asm pshh
asm tsx
asm pshx
asm pshh
asm ldhx OSTCBCur
asm pula
asm sta 0, x
asm pula
asm sta 1, x
OSTaskSwHook();
asm lda OSPrioHighRdy
asm sta OSPrioCur
asm ldhx OSTCBHighRdy
asm sthx OSTCBCur
asm ldhx 0, x
asm txs
asm pulh
asm pula
asm sta PAGE
asm rti

  (3)中断级任务切换函数OSIntCtxSw() 该函数在ISR中执行任务的切换功能。由于是在中断中执行的,处理器的大部分寄存器值都已经自动保存在堆栈中了,所以该函数的大部分代码都和OSCtxSw()相同,只是前半部分保存寄存器的功能不要了。

  (4)OSTickISR()时钟节拍服务函数μCOS-Ⅱ要求用户提供一个周期性的时钟源,来实现时间的定时和超时功能。这部分功能由该函数实现。这个函数首先保存寄存器的值,然后设置中断标志、清中断,再调用OSTimeTick()递减延时计数,判断是否要在中断中切换任务,最后恢复处理器寄存器,执行中断返回指令,返回到中断处继续执行。代码如下:

SRTISC_RTIACK = 1;
asm lda PAGE
asm psha
asm pshh
asm lda OSIntNesting
asm add #1
asm sta OSIntNesting
asm cmp #1
asm bne Tmr_TickISR1
asm tsx
asm pshx
asm pshh
asm ldhx OSTCBCur
asm pula
asm sta 0, x
asm pula
asm sta 1, x
asm Tmr_TickISR1:
OSTimeTick();
OSIntExit();
asm pulh
asm pula
asm sta PAGE
asm rti

5、结论

  本文将μCOS-Ⅱ移植到8位系列单片机上,并且在MC9S08AW60上稳定的运行,有效提高了该系统的性能,充分利用系统资源,使系统的实时性能得到很大的提高,开阔了应用范围。同时,作者也将该系统在HCS08的另外两款单片机MC9S08QE128和MC9S08GB60上移植实现。

上一页  [1] [2] [3]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:71,898.44000 毫秒