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()` 挂起。
查看: 2735
回复: 2
CH32V307 FreeRTOS + LWIP vTaskDelay stuck
热门产品 :
CH592: RISC-V内核BLE5.4无线MCU
您好,我先确认一个问题,就是您的FreeRTOS代码的时钟中断源是否是systick?如果是,很可能是库函数Delay_Ms和Delay_Us导致的异常,因为这两个函数使用的时钟也是systick,调用后会将FreeRTOS的systick配置更改,进而导致异常。如果是这个问题有两种解决办法:1、尝试将以太网驱动部分的代码放在FreeRTOS任务创建之前初始化;2、可以尝试将Delay_Ms和Delay_Us用vTaskDelay替换。
谢谢,这对我有帮助!
请勿发布广告和违法内容, 代码可以选择编辑器代码语言格式, 更易他人阅读帮助您, 或者留下联系方式,以便更好更快服务您
只有登录才能回复,可以选择微信账号登录