首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 嵌入开发 >

郁闷了好几天了,请问uc/os有关问题

2012-04-11 
郁闷了好几天了,请教uc/os问题uc/os在开中断和关中断时有没有修个OSTCBCur和OSPrioCur值啊,我把uc/os扩展

郁闷了好几天了,请教uc/os问题
uc/os在开中断和关中断时有没有修个OSTCBCur和OSPrioCur值啊,我把uc/os扩展成支持时间片轮转时,为什么开中断和关中断时会出现OSTCBCur和OSPrioCur值被修改的情况呢,而且奇怪的是在低优先级任务里面创建高优先级任务时出现这种问题,不知道那里问题,涉及到模式转换吗?程序本身应该没有问题,因为跟踪调试各个值是正确的,一涉及到开关中断就有问题,请高手帮帮看看是什么问题。

[解决办法]
在偶印象里,开中断和关中断都不会修改任何变量,只是改变cpu的中断使能标志位而已

[解决办法]

探讨
      能帮忙解释一下开中断、关中断做了什么吗
      关中断
                MRS    R0, SPSR
                ORR    R0, R0, #NoInt
                MSR    SPSR_c, R0
      开中断
                    MRS    R0, SPSR
                    BIC    R0, R0, #NoInt
                    MSR    SPSR_c, R0

[解决办法]
探讨
uc/os在开中断和关中断时有没有修个OSTCBCur和OSPrioCur值啊,我把uc/os扩展成支持时间片轮转时,为什么开中断和关中断时会出现OSTCBCur和OSPrioCur值被修改的情况呢,而且奇怪的是在低优先级任务里面创建高优先级任务时出现这种问题,不知道那里问题,涉及到模式转换吗?程序本身应该没有问题,因为跟踪调试各个值是正确的,一涉及到开关中断就有问题,请高手帮帮看看是什么问题。

[解决办法]
OSTCBCur和OSPrioCur是操作系统任务调度和优先级管理的关键数据(OSTCBCur指向当前任务,OSPrioCur为当前任务的优先级),是动态变化的,特别是时间片轮转模式下,所以你观察这个值的变化意义不大;不知你所说的开关中断出现问题是什么问题?OSTCBCur和OSPrioCur的变化和开关中断并不是直接对应的,例如,开中断情况下,正好来了中断,任务切换到中断响应模块,此时OSTCBCur和OSPrioCur自然会变化,如果没有中断发生,OSTCBCur和OSPrioCur就受时间片轮转的控制而变化了。
[解决办法]
我们现在用的就是改良版的uc/os 好像开关中断只是关注CPU的中断使能位,没这么复杂吧

热点排行