GD32F303移植Freertos程序会卡死在vtaskdelay里面

[复制链接]
 楼主| honghong= 发表于 2025-3-24 16:23 | 显示全部楼层 |阅读模式
如题,芯片型号是GD32F303RGT6,使用官方的GD32 Embedded Builder创建的工程,移植Freertos后调用启动线程调用vtaskdelay函数,程序会在freertos内核源码的timers.c文件中的portTASK_FUNCTION( prvTimerTask, pvParameters )中一直循环,调试时发现调用vtaskdelay后sysTick中断被停止了
laocuo1142 发表于 2025-3-24 16:43 | 显示全部楼层
检查SysTick中断配置是否正确!

评论

中断应该是没问题的,在中断函数中每隔1s点灯,只要不调用vtaskdelay,中断一直正常运行,点灯间隔时间用示波器打过,是正常的  发表于 2025-3-24 16:55
 楼主| honghong= 发表于 2025-3-24 16:57 | 显示全部楼层

GD32F303移植Freertos程序会卡死在vtaskdelay里面

在vtaskdelay函数中调用的xTaskResumeAll返回是false,任务调度恢复不了
flycamelaaa 发表于 2025-3-24 18:00 | 显示全部楼层
提高prvTimerTask任务的优先级。
 楼主| honghong= 发表于 2025-3-24 19:10 | 显示全部楼层
flycamelaaa 发表于 2025-3-24 18:00
提高prvTimerTask任务的优先级。

提高了  但是没用  还是会卡死
powerantone 发表于 2025-3-24 20:23 | 显示全部楼层
固件版本更新到最新。
是你的乱码 发表于 2025-3-25 16:23 | 显示全部楼层
检查 FreeRTOS 的 port.c 文件中的 SysTick_Handler() 实现,确保 SysTick 中断处理程序调用了 xPortSysTickHandler()。
xionghaoyun 发表于 2025-3-26 14:41 | 显示全部楼层
空工程只跑这个也会卡死?
airflash 发表于 2025-4-23 11:12 | 显示全部楼层
请问现在解决了吗?谢谢
hbzjt2011 发表于 2025-6-20 11:13 | 显示全部楼层

GD32F303移植Freertos程序会卡死在vtaskdelay里面

可能是因为 FreeRTOS 的 SysTick 中断未正确配置或被其他代码禁用了,导致 vTaskDelay() 调用后内核定时器停止,程序卡在 prvTimerTask 循环中。请确认启动代码中正确启用了 SysTick_Handler 并且中断优先级设置符合 FreeRTOS 要求,同时避免其他库函数重置或关闭 SysTick,确保系统全局中断已使能,这样 FreeRTOS 的调度时钟才能正常运行。
huazi715 发表于 2025-7-2 15:44 | 显示全部楼层
解决了吗,问题有始有终
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

5

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部