最近在做裸机的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不行呢?是不是和大端小端有关系?