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