duhui75 发表于 2013-2-17 12:41:21

mini2440 给地址赋值问题

我在给mini2440 写DM9000程序时写了以下语句。
#define DM_ADD(*(( volatile unsigned short *) 0x20000300))//定义DM9000地址端口该地址是 0x20000300 ,这个地址是正确的
u16 temp=0x1234;       

DM_ADD=temp ;
temp=DM_ADD;
经分析最后temp的值应该是0x1234.但是我仿真的时候发现temp的值却是0x1212.
当我把第二句改为
u16 temp=0x2234;
是temp的值就成了0x2222.
当我把第二句改为
u16 temp=0x4434;
是temp的值就成了0x4444.
也就是说写入 DM_ADD 高低字节的都是temp的高字节。
请教高手。这是什么原因?
页: [1]
查看完整版本: mini2440 给地址赋值问题