stm32F103跑ucos部分任务停转死机是什么原因?
針對方案:联合捷迅易联推出基于 ST STM32FCBT6 烟感火灾探测报警器
各位好,我遇到个关于stm32的问题,我的系统中有11个任务,起始任务优先级60,后面任务优先级依次是10,11,12,13,14,15、、、19;还有一个ms定时器;一个查询式按键,在ms定时器中检测,抛出消息到任务10中处理;
1、运行一段时间后,多个任务停转,从任务12开始低优先级的任务都不能调度到,只有10和11正常运行,定时器中断正常;当按键按键后消息能正常传递到任务优先级为10的任务中处理;
2、后来在定时器里面添加软件看门狗,每个任务pend信号超时1秒钟,每个任务运行一次会喂一次狗,如果出现调度延时超过10秒就抛出消息实现软件复位;
而目前的情况是,在出现任务停转的时候,看门狗能检测到,并且能抛出消息实现软复位,但是复位后,又会马上出现这个现象,只有把电源拔掉以后才会正常运行;
首先确定应该不是堆栈溢出的问题,应为我试过堆栈越界的话会导致所有任务都调度不到,而不是某些低优先级的任务调度不到。
请大家帮忙分析下原因看看。
提問者
最佳解
确定一波问题,假如是两个任务同时使用一个 ADC 的不同通道,那实际上他实现的不正是一个任务里面实现 ADC 的不同通道的采集吗?ADC 的不同通道同时采集是可以实现的。看大佬的程序应该是根据优先级进行先后顺序的任务实现流程,既然只有 10 和 11 能正常运行,由于大佬是用优先级进行任务的顺序实现,所以问题应该是出现在优先级为 11 的任务调度中。在任务描述中并没有阐述优先级 11 的任务调度中做了什么事, 无法作答。 按照题主的说法,貌似是对 ADC 进行了操作就 Debug 了?