自学内容网 自学内容网

LWIP开启ARP之后进入硬件错误中断

遇到个很奇怪的问题,如下图只要开启ARP之后,就会进入硬件错误中断,关掉就好了。

而无法开启ARP,就不能ping 通,所以必须要解决这个问题。

最终debug发现死在memcpy函数位置

这样原因就很好分析了,

共4个拷贝操作,其中2个目标地址都不是4字节对齐的,猜测是该原因导致的。

进一步定位和尝试后,发现是H7内核的MPU配置有问题,改成TEX=1,C=0,B=0之后就正常了。

MPU_InitStruct.BaseAddress = 0x30004000;
  MPU_InitStruct.Size = MPU_REGION_SIZE_16KB;
  MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL1;
  MPU_InitStruct.IsShareable = MPU_ACCESS_SHAREABLE;
  MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE;
  MPU_InitStruct.IsBufferable = MPU_ACCESS_NOT_BUFFERABLE;


原文地址:https://blog.csdn.net/weixin_38743772/article/details/137998359

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!