供应商提供的W5500驱动是stm32的,移植到m0的处理器上时,经常进入HardFaults,针对这个错误进行了细致分析,历时2个小时查清来龙去脉。
Cortex m3可以具有自动对齐功能,而contex m0是不具备的,所以导致在指针操作的时候,16位数据给基地址赋值,引起这个错误。
解决这个问题也很简单,在定义数据体时定义区段为#pragma pack (1)
ARM Cortex-M0之HardFaults异常 #pragma pack (1)
最新推荐文章于 2024-07-02 14:01:54 发布