硬汉嵌入式论坛

 找回密码
 立即注册
查看: 145|回复: 3
收起左侧

[LwIP] H7移植以太网时出现ETH_DMACSR_RBU

[复制链接]

1

主题

7

回帖

10

积分

新手上路

积分
10
发表于 2025-4-15 16:40:28 | 显示全部楼层 |阅读模式
本帖最后由 chenfs 于 2025-4-15 18:47 编辑

### 初始化Lwip+FreeRTOS时遇到了`HAL_ETH_GetDMAError(heth) & ETH_DMACSR_RBU==ETH_DMACSR_RBU`

- FreeRTOS是可以运行的,LED程序能够跑起来,我给FreeRTOS的堆区大概是128K
- MPU配置
    - AXI SRAM为 只开启cache,不share
    - 0x30000000处设置了512K,将以太网描述符和lwip堆区都设置成了device(通过给gcc加强制对齐访问解决了memory fault)
- 时钟copy了硬汉哥的配置,开启了校准和SRAM的时钟,主频400M
- lwip配置
    - sys_arch.c用的官方的文件(版本2.1.0)
    - lwipopts.h中 MEM_SIZE 为(64*1024),
    - netif部分是照着ST的H743改的
        - ETH_RX_BUFFER_SIZE为1536,跟CubeMX保持一致
        - ld文件里可以确保ETH描述符在0x30000000处,RXPOOL在0x30000100处
        - 其余信号量照着官方的改成了FreeRTOS的版本,我用了__get_ipsr()来判断是否在中断中
        - PHY用的LAN8720, 驱动用的ST的
- 我创建的一共三个任务,每个任务大概是2k内存
    - led一个,同时初始化lwip(在关闭调度的情况下)
    - 热插拔状态一个(用的官方的)
    - ethernetif_input一个,用的官方的
- 三个任务优先级都是1, 网线插上灯能亮,led也闪烁,就是ping的时候会进入到DMA错误
- ST的驱动用的1.12.1

- 工程链接
    链接: https://pan.baidu.com/s/1ticc6gFxByD7DLz2BOtRyg?pwd=drsa 提取码: drsa
--来自百度网盘超级会员v6的分享





回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2025-4-16 00:47:04 | 显示全部楼层
我的问题已经解决了,用了厂家的库,我看了大体上没什么区别,就是PHY是直接写的LAN8720,我将描述符改成自己的也能ping通,不是MPU等问题,
区别可能就是lwipopts.h里PBUF_POOL_BUFSIZE不是直接写成了1536(比1536少几个没开启的头部),使用了LWIP_PROVIDE_ERRNO,
同时将LWIP_MEMPOOL_DECLARE(RX_POOL, ETH_RX_BUFFER_CNT, sizeof(RxBuff_t), "Zero-copy RX PBUF pool")这段zero-copy的buffer未指定位置,免去了MPU的麻烦,
还有就是LWIP_RAM_HEAP_POINTER没指定,也免去了MPU的麻烦,简单直接的放在了AXI SRAM里(不知道厂家考没考虑过cache的问题)

可能就是LAN8742不能直接用给LAN8720,裸机的时候可能用不到太多PHY的功能?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2025-4-16 12:33:47 | 显示全部楼层
chenfs 发表于 2025-4-16 00:47
我的问题已经解决了,用了厂家的库,我看了大体上没什么区别,就是PHY是直接写的LAN8720,我将描述符改成自 ...

谢谢告知最终原因。

ps:裸机和OS下,PHY使用是一样的。
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2025-4-16 16:53:55 | 显示全部楼层
eric2013 发表于 2025-4-16 12:33
谢谢告知最终原因。

ps:裸机和OS下,PHY使用是一样的。

我后来重新生成裸机用的gcc,没跑起来,我以为是keil的armcc帮我兜底了,可能我之前真的改过PHY的驱动,去年11月写的,时间太长了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-4-26 02:04 , Processed in 0.525234 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表