CH32V307 FreeRTOS + LWIP vTaskDelay stuck

I have implemented FreeRTOS + LWIP in one project. As soon as the ETH interface is initialized, FreeRTOS stops working. PLL3 seems to be the culprit. How can I fix this?

My net code: https://pastebin.com/qufTyCyP

Calling `init_phy()` results in `vTaskDelay()` hanging.

--

我在一个项目中实现了 FreeRTOS + LWIP。一旦初始化 ETH 接口,FreeRTOS 就会停止工作。 PLL3 似乎是罪魁祸首。我怎样才能解决这个问题?

我的网络代码:https://pastebin.com/qufTyCyP

调用 `init_phy()` 会导致 `vTaskDelay()` 挂起。

您好,我先确认一个问题,就是您的FreeRTOS代码的时钟中断源是否是systick?如果是,很可能是库函数Delay_Ms和Delay_Us导致的异常,因为这两个函数使用的时钟也是systick,调用后会将FreeRTOS的systick配置更改,进而导致异常。如果是这个问题有两种解决办法:1、尝试将以太网驱动部分的代码放在FreeRTOS任务创建之前初始化;2、可以尝试将Delay_Ms和Delay_Us用vTaskDelay替换。


谢谢,这对我有帮助!


只有登录才能回复,可以选择微信账号登录