本帖最后由 justdomyself 于 2014-5-26 19:52 编辑
#define MEM_W(x) ((WORD) *((WORD *)(x)) )
typedef struct
{
WORD ID; // Message Identifier
BYTE LEN; // Data length (0-8)
BYTE RTR;
BYTE BUF[8]; // Data buffer
} CAN_MSG;
CAN_MSG msg,*pmsg;
msg.BUF[0]=0X20;
msg.BUF[1]=0X05;
msg.BUF[2]=0X60;
msg.BUF[3]=0X00;
pmsg=&msg;
WORD tmp=MEM_W(&pmsg->BUF[1]);
为何tmp的值是5 而不是0x6005
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
[0xe3a00005] mov r0,#5
[0xe19050b4] ldrh r5,[r0,r4]
上代码中r4是一个偶地址,r4+r0就变成了奇地址
ldrh r5,[r0,r4]就出现了问题
一周热门 更多>