GD32F303在移植FreeRTOS时,系统卡死在Systick_Handler B.的处理方法
如题所述,在GD32F303上移植FreeRTOS时,出现上述错误,仿真时时,程序卡死在如下图所示的位置:
从"WEAK"可以看出来,这个SysTick_Handler中断服务程序未定义,这个接口是单片机的滴答定时器的中断服务函数,在移植freertos时,有两个方法解决该问题:
方法1:
修改FreeRTOSConfig.h文件,增加#define xPortSysTickHandler SysTick_Handler的宏定义,同时屏蔽gd32f30x_it.c文件中的SysTick_Handler中断服务函数;
方法2:
在gd32f30x_it.c文件中增加SysTick_Handler中断服务函数,并在该函数中调用xPortSysTickHandler()接口;
一句话,需要将单片机的滴答定时器中断服务函数与freertos的xPortSysTickHandler接口关联起来,这样,freertos才能有心跳,才能工作;