关于S3C2440扩展SDRAM的地址连线

2986阅读 0评论2008-08-06 lpzgbd
分类:

  s3c2440扩展了两片SDRAM(HY57V561620),开始不明白为什么要用ADDR2接了A0。现在弄明白了,原来用ADDR2接了A0,是为了地址4字节对齐。每个SDRAM位宽16位,两片合起来就32位。这样,当对一个4字节对齐的地址进行访问的时候,得到的数据将为32位。
  由此想到,在C语言中:
  对于一个int变量,占4个字节,4字节对齐,可以用LDR/STR访问
  对于一个char变量,1个字节,4字节对齐,可以用LDRB/STRB访问
  对于如下解构体:

struct s{
    char c1;
    char c2;
    int i;
};

占8个字节,C1和C2共占4个字节,对C1可以用LDRB/STRB访问,那么对于C2,该怎么访问得到呢?我想,应该是编译器为我们作好了这些。比如,对于读,它可以先LDR操作4个字节,然后对得到的在寄存器中的相应位置的数据进行访问,对于写,它可以先对寄存器中相应位置的数据进行写,然后再执行STR。以上都是推测。。。
上一篇:arm的mmu
下一篇: 读linux2.6驱动的一点收获