我在程序中定义了一个数据结构类型,并用此类型定义了一个数据结构,如下: typedef struct { //同步ID INT8U ID_COM0; INT8U ID_COM1; INT8U ID_COM2; INT8U ID_COM3; //版本号 INT8U EDIT_ID1; INT8U EDIT_ID2; INT8U EDIT_ID3; }ID_SET; ID_SET Id; 仿真运行时发现定义的Id的地址为奇地址,0x0c007867; 对于ARM来讲,当选择ARM模式或者THUMB模式,小端对齐,选择16位的SDRAM,那么给变量分配地址时,这个变量的地址是任意形式的还是位数一定为0? 我的理解是: a,ARM是32位系统,如果选择ARM模式,小端对齐,指令地址最后两位必须是00; b,如果存储器选择16位,那么给变量(包括全局变量)分配的地址单元是偶地址。例如:INT8U tmp;那么这个tmp所在的内存单元可能是0x0c00_1200,但是不可能是0x0c00_1201.
请高人指点! |