笔者来聊聊数据总线/地址总线访问数据过程
例子引入
笔者在实际项目中开发的时候,碰到了一个数据访问对齐的data abort 错误,其实这个错误之前就知道,CortexR5 学习的时候了解到的,(异常模式学习(CortexR5)),但是了解的相对比较浅,这次深入的探究一下。
正常来说,访问u32的数据,地址需要4Byte对齐,如果没有要求pack(1)字节对齐的话,如果出现奇数地址,报一个addr Aligment Failed的错误,相当于夸了两个四字节的地址访问。
问题如下:
typedef struct test_data_abort_struct{
u8 data_1<