FREERTOS系统 调用xPortStartScheduler()时进入硬件错误中断
采用STM32CUBEMX生成的Freertos操作系统代码,配置系统时钟是TIM10.发现程序进入硬件错误中断,反复排查后程序在vTaskStartScheduler这个函数中的prvPortStartFirstTask();函数里进入了硬件错误中断。请问这个该怎么解决呢?调整系统控制的中断优先级也没啥用。在线等!急! 谢谢了
进一步的查找,发现在以下函数中进入硬件错误中断
osStatus_t osDelay (uint32_t ticks) {
osStatus_t stat;
if (IS_IRQ()) {
stat = osErrorISR;
}
else {
stat = osOK;
if (ticks != 0U) {
vTaskDelay(ticks);
}
}
return (stat);
}
程序开始运行后,第一次进入StartDefaultTask()函数中的osDelay(1);函数里。程序会连续两次调用vTaskDelay(ticks);第一次调用完vTaskDelay(ticks);的时候,程序没有到return 直接到if,最后第二次到vTaskDelay(ticks);后,在运行就进入硬件错误中断。 这个找到原因了吗 按理说,cubemx配置的freertos可以无脑运行的。 先看看定时器systic的配置有没有冲突,不要和hal的定时器或者其他自定义定时器搞混了,再看看堆栈配置。 老哥你现在有什么解决方法吗?
老哥找到问题了吗?
页:
[1]