大树树 发表于 2018-9-4 07:43:08

ucos系统任务切换和中断响应异常

移植的UCOS程序,开始运行后一切正常,在运行一段时间后,会出现任务只有高优先级的任务可以执行,而且只有一个中断可以响应
查看任务切换状态,只有系统自建的任务和用户创建的最高优先级的任务在切换运行,其他任务都无法执行;
而中断只有一个响应的,而且不是优先级最高的,调试查看其他中断都无法进入。


有没有朋友遇见过这种情况的?

MrJiu 发表于 2018-9-4 07:43:09

这个简单,你看一下其他中断的相关寄存器的值不就知道原因了,还有就是查看其他任务的状态。。。。

大树树 发表于 2018-9-4 09:58:27

MrJiu 发表于 2018-9-4 09:52
这个简单,你看一下其他中断的相关寄存器的值不就知道原因了,还有就是查看其他任务的状态。。。。 ...

我再查看下中断寄存器的状态,任务状态查看过了,是ready的

MrJiu 发表于 2018-9-4 11:25:51

大树树 发表于 2018-9-4 09:58
我再查看下中断寄存器的状态,任务状态查看过了,是ready的

也要查看是否存在使能。。。当然了,如果都满足了,估计你的有一个中断频率太高了导致的吧!!!只能这么想了

大树树 发表于 2018-9-4 13:07:52

MrJiu 发表于 2018-9-4 11:25
也要查看是否存在使能。。。当然了,如果都满足了,估计你的有一个中断频率太高了导致的吧!!!只能这么 ...

我在keil的debug下查看了下NVIC的状态,出现异常后其他的中断都不使能了,不知为什么被修改了

大树树 发表于 2018-9-4 13:48:07

大树树 发表于 2018-9-4 13:07
我在keil的debug下查看了下NVIC的状态,出现异常后其他的中断都不使能了,不知为什么被修改了 ...

不对,NVIC控制器显示并不能反映真实状态,查看了外设寄存器的状态,接收中断是使能的,但是进不了中断

发表于 2018-9-4 14:42:20

中断调用的时候,有没有加挂起和退出挂起操作?

大树树 发表于 2018-9-4 15:50:27

不好意思,我二逼了。
是因为第二优先级的任务中有个函数陷入了死循环,导致更低优先级的任务得不到执行,而中断是因为几个中断都是由任务发送指令才有反馈数据的。
太着急了搞得优点懵逼了。:Q:Q
实在不好意思

feixiang20 发表于 2018-9-4 23:29:00

优先级任务中函数没设置好,形成死循环,还是代码问题啊

大树树 发表于 2018-9-5 07:57:06

feixiang20 发表于 2018-9-4 23:29
优先级任务中函数没设置好,形成死循环,还是代码问题啊

是的,早该查出这个问题的,同时出现了几个问题,着急懵逼了:L
页: [1]
查看完整版本: ucos系统任务切换和中断响应异常