本帖最后由 CC2530 于 2011-4-13 06:35 编辑
stm8中断控制器有问题,无法设置进入中断后自动禁止中断,也无法知道当前是第一个中断还是嵌套中断,导致无法使用RTOS。
athlon64fx 发表于 2011-4-12 18:59 
据我所知,stm8的RTOS早就存在。
并且我个人也移植过UCOS与hwt_scheduler,并未发现中断有什么问题。
https://bbs.21ic.com/viewthread.php?tid=228433&highlight=ucos
我个人观点,stm8移植OS要注意的地方是
1.STM8的堆栈位置有限制,不能横跨某一个固定地址。(通常在RAM最后的512或1024字节处)
2.STM8中断压入堆栈是3字节地址,而一般CALL指令只压入堆栈2字节地址。
如果调用任务切换函数使用CALL 指令,必须手动再压栈一个0值。
另外,STM8本身是支持中断嵌套的。
实际上,那些不支持中断嵌套的MCU如AVR,MSP430也一样跑OS跑的很好。
|