最近项目增加单片机的RAM ROM自检功能。在坐第一个RAM自检的功能时就遇到问题。stm32的RAM起始地址,和空间大小如下图所示
因此在编写Test_RAM时,按照先将RAM空间中的写满0x00,在读回空间中的数据和0x00做对比,判断读回的数据是否都是0x00。如果都是0X00在向空间中写入0XFF,同样再读回RAM空间中的数据,和0XFF做对比,判断读回的数据是否都是0XFF,如果两次对比都没有问题,则认为RAM是OK的。现在编写如下伪代码:
,程序在读写数据时,特别容易进入HardFault,硬件错误中断函数,不知道为什么?是溢出了?不应该溢出,求大神指点。
单纯看代码,没有问题,不过这样情况就复杂了
(1)编译器生成的汇编结果不正确(这个只能结合汇编一起调试,找出错误的汇编语句,再具体分析)
(2)芯片RAM本身存在问题,这个概率极低,但也不是不可能
只能靠你自己了
把改过的代码截图看下,理论没什么其他问题
先写入0X00,读出0X00的代码截图如下:
一周热门 更多>