ucos 任务调度器(调度器上锁函数OSSchedlock() )为什么要上锁 是在什么时候上锁,是在中断的时候来上锁吗
2 回答
FFIVE
TA贡献1797条经验 获得超6个赞
书上讲的很清楚,是在嵌套的时候上锁,并且上锁和开锁函数成对出现,上锁之后不能进行各种信息交流例如信号量,上锁函数其实就是将嵌套层数加1的过程,可以说是一个保护环境、保护现场的作用吧。OSLockNesting是用来表示嵌套层数的。其实ucos里面时钟中断的处理函数就是一个查看优先级就绪表的过程,调度发生在中断的时候,中断的时候可能调度会发生,多层调度会发生嵌套,要上锁
PIPIONE
TA贡献1829条经验 获得超9个赞
是在嵌套的时候上锁,并且上锁和开锁函数成对出现,上锁之后不能进行各种信息交流例如信号量,上锁函数其实就是将嵌套层数加1的过程,可以说是一个保护环境、保护现场的作用吧。OSLockNesting是用来表示嵌套层数的。其实ucos里面时钟中断的处理函数就是一个查看优先级就绪表的过程,调度发生在中断的时候,中断的时候可能调度会发生,多层调度会发生嵌套,要上锁。
- 2 回答
- 0 关注
- 137 浏览
添加回答
举报
0/150
提交
取消