FreeRTOS 启动进程调度后,程序卡死的部分原因分析。


现象:1,RTOS  使用时 系统卡启动文件               B       .处。

image

原因分析:该种情况是由于定义开启了中断,但是未开启中断处理服务。程序执行到中断响应式无对应的程序响应

解决办法:

分析启动头文件,未针对RTOS特别定义中断

image

分析成分徐程序中开启动了 串口1中断但未能查找到对应的USART1_IRQHandler中断服务程序。

但在RTOS的串口使用中,定义了 vUARTInterruptHandler,因此映射该中断即可。

在RTOS配置中,添加 #define vUARTInterruptHandler USART1_IRQHandler

程序中还定义了外部中断且绑定在中断线0上,程序中未作处理,也应该加上 该部分的相应中断处理。

2,程序卡死在 SysTick_Handler

与上述情景类似,查看有无PORT.C

或者port.c中有无定义该中断,RTOS 的port.c中的中断名

void xPortPendSVHandler( void );
void xPortSysTickHandler( void );
void vPortSVCHandler( void );

相同的,也应在RTOS中做相应的重定义


特别值得注意的是,不少例程中修改程序的启动文件,为了方便可移植性,不建议这么做。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM