主题 : mini2440 给地址赋值问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 78282
精华: 0
发帖: 39
金钱: 195 两
威望: 39 点
综合积分: 78 分
注册时间: 2012-09-18
最后登录: 2018-06-23
楼主  发表于: 2013-02-17 12:44

 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的高字节。
请教高手。这是什么原因?
级别: 新手上路
UID: 78282
精华: 0
发帖: 39
金钱: 195 两
威望: 39 点
综合积分: 78 分
注册时间: 2012-09-18
最后登录: 2018-06-23
1楼  发表于: 2013-02-17 18:03