ADS中的数据预取中止错误 DataAbort 周立功

 用的周立功的easyarm2100开发板,今天调试的时候总遇到数据预取中止。因为我只调整了一些函数的位置,并增加了两个变量。所以问题基本上就出在这上面,先断点调试,看看,到底走到哪发生了中止,这个不好弄,只能先设一个断点,然后运行,看是在这个之后还是之前发生了中止,然后再根据这个结果调整断点位置,继续试验,一步一步接近中止的地方。最后终于找到了问题的根源:定义了一个变量uint32 tmp,然后在IRcvStr(uint8 addrL,uint8 addrH,uint8 *data)这样的函数调用的时候,写成IRcvStr(0x35,0x60,(uint8 *)tmp);了。!!

应该是IRcvStr(0x35,0x60,(uint8 *)&tmp);

你可能感兴趣的:(ADS中的数据预取中止错误 DataAbort 周立功)