主题 : 关于DM9000的地址定义为(*(volatile unsigned char*)0x20000300)的一些疑问 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 30651
精华: 0
发帖: 8
金钱: 45 两
威望: 9 点
综合积分: 16 分
注册时间: 2010-10-19
最后登录: 2013-04-30
楼主  发表于: 2013-04-28 18:24

 关于DM9000的地址定义为(*(volatile unsigned char*)0x20000300)的一些疑问

最近在做裸机的mini2440 dm9000程序,我在声明dm9000地址时,刚开始在网上面查找,很多人设置成DM9000_ADD (*(volatile unsigned short *)0x20000300)和DM9000_CMD (*(volatile unsigned short *)0x20000304)结果读dm9000的ID时总是出错。反而用uboot里面的dm9000.c中的程序 设置成为DM9000_ADD (*(volatile unsigned char *)0x20000300)和DM9000_CMD (*(volatile unsigned char *)0x20000304)可以。

设置volatile unsigned short *的初衷是因为bankcon4的位宽是16位,为了对应所以设计成为short。

我想知道为什么设置成char可以而short不行呢?是不是和大端小端有关系?