【以太网嵌入式开发求助】有无嵌入式开发的佬,想请教一下问题

各位大佬好,我这边在做一个包含以太网通信的嵌入式项目,但是这个通信问题困扰了我好几周了,一直和Codex沟通也没解决,希望能得到大佬的指点

硬件环境:

  1. MCU:STM32H743IIT6,LQFP176,480MHz
  2. PHY:YT8512C
  3. 接口模式:RMII
  4. PHY RESET_N 不是 MCU 直控,而是通过 PCF8574 的 P7 控制
  5. 板子有两套:
    • 正点原子开发板
    • 自制开发板
  6. 网络参数是静态 IP:192.168.2.30,PC 端在同网段 192.168.2.x

当前现象:

  1. 正点原子开发板可以正常通信,但偶发会跑进 HardFault
  2. 切换到自制开发板后,无法正常 ping 通

补充信息:

  1. 工程是 FreeRTOS + LwIP
  2. 自制板和 正点原子开发板的 ETH_TXD0/TXD1、软 I2C、PCF8574 INT 引脚定义不同

想请教:

  1. HardFault 的问题有可能是什么原因造成的
  2. 对于自制开发板的调试,各位佬是否有可以进行的方向建议
  3. 如果有关键信息我没介绍到,请各位佬能在评论区告诉我,我马上补充
5 个赞

我半桶水,也就玩玩esp32之类的,帮不了你。

1 个赞

HardFault问题可以用https://github.com/armink/CmBacktrace把问题打印出来

1 个赞

哇达西看不懂思密达,AI给的答案不理想吗

我一般遇到的hardfault基本都是内存越界/堆栈爆了 :distorted_face:
或许可以尝试ozone attach看看嗝儿屁的时候有啥信息吧

你要不试试把时钟放低,在低俗下试试,看看还报不报错

一般我遇到hardfault先在handler里把cfsr hfsr mmfar bfar啥的先打出来 然后丢给ai分析一通 看看到底是什么原因 内存里哪一行导致的 这样比从0分析好抓一点

好的,我试试,谢谢佬

不够理想,因为实际问题没得到解决 :rofl:

好的,我也留意一下这个方向,谢谢佬

是不是电源的纹波太大了,信号质量补好