首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

LPC21XX移植UCOS-II小结 04

LPC21XX移植UCOS-II小结 04

据此,我们可以这样改动:设置一个缓冲区OSInterruptStk,作为嵌套中断的栈空间
    由所有任务共享,中断服务程序改为:
    1、保存全部CPU寄存器
    2、调用OSIntEnter或OSIntNesting直接加1
    增加:2.1、判断OSIntNesting是否等于1,如果不是则转到3
    增加:2.2、将栈指针SP保存到OSTCBCur->OSTCBStkPtr
    增加:2.3、将SP指向OSInterruptStk的栈顶(注意栈增长的方向)。
    3、执行用户代码做中断服务
    4、调用OSIntExit
    增加:4.1、判断OSIntNesting是否等于0,如果不是则转到5
    增加:4.2、从OSTCBCur->OSTCBStkPtr中恢复栈指针SP
    5、恢复所有CPU寄存器
    6、执行中断返回指令
返回列表