今天在电动车项目中发现一件奇怪的事情,定义一个指针后,指针存储的地址居然是一个不被4整除的地址!!,这违反了单片机硬件错误规定,从而对这个地址进行赋值时发现,进入硬件错误中断。 通过查阅资料发现。m0内核的单片机有一种非对齐访问的硬件错误,在M3以上的单片机不存在此类问题!! 最终我利用static这个指针,成功的把跳转地址变成4的整数!!!
最后的最后发现 是因为IAR中设置的代码优化等级设置成最高了,导致跳转地址分配错误。!!、
以后在调试时,要设置成最低,虽然这样出来的代码大小会变大!!!