新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 嵌入式实时操作系统μCOS-Ⅱ的移植

嵌入式实时操作系统μCOS-Ⅱ的移植

作者:时间:2009-03-18来源:网络收藏

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()时钟节拍服务函数μⅡ要求用户提供一个周期性的时钟源,来实现时间的定时和超时功能。这部分功能由该函数实现。这个函数首先保存寄存器的值,然后设置中断标志、清中断,再调用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、结论

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

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭