首先确认FreeRTOS工程在STM32上是否能跑起来,不会出现硬件错误。
在main.c中添加以下代码(无子优先级,对于RTOS更好):
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
在FreeRTOSConfig.h进行如下配置:
/*中断优先级配置*/
#ifdef __NVIC_PRIO_BITS
#define configPRIO_BITS __NVIC_PRIO_BITS
#else
#define configPRIO_BITS 4
#endif
#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 15
#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5
#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY<<(8-configPRIO_BITS))
#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY<<(8-configPRIO_BITS))
并且将启动文件从可编辑的替换成只读的启动文件
这样在串口中断服务程序中就能打断点了(一定要确保FreeRTOS配置正确,且能正常使用)。