关于S3C2440扩展SDRAM的地址连线
生活随笔
收集整理的这篇文章主要介绍了
关于S3C2440扩展SDRAM的地址连线
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
s3c2440扩展了两片SDRAM(HY57V561620),开始不明白为什么要用ADDR2接了A0。现在弄明白了,原来用ADDR2接了A0,是为了地址4字节对齐。每个SDRAM位宽16位,两片合起来就32位。这样,当对一个4字节对齐的地址进行访问的时候,得到的数据将为32位。
由此想到,在C语言中:
对于一个int变量,占4个字节,4字节对齐,可以用LDR/STR访问
对于一个char变量,1个字节,4字节对齐,可以用LDRB/STRB访问
对于如下解构体:
占8个字节,C1和C2共占4个字节,对C1可以用LDRB/STRB访问,那么对于C2,该怎么访问得到呢?我想,应该是编译器为我们作好了这些。比如,对于读,它可以先LDR操作4个字节,然后对得到的在寄存器中的相应位置的数据进行访问,对于写,它可以先对寄存器中相应位置的数据进行写,然后再执行STR。以上都是推测。。。
由此想到,在C语言中:
对于一个int变量,占4个字节,4字节对齐,可以用LDR/STR访问
对于一个char变量,1个字节,4字节对齐,可以用LDRB/STRB访问
对于如下解构体:
| struct s{ char c1; char c2; int i; }; |
转载于:https://blog.51cto.com/ironpeak/91478
总结
以上是生活随笔为你收集整理的关于S3C2440扩展SDRAM的地址连线的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 建模心法(1)——百战不殆是可能的吗?
- 下一篇: 职业生涯:怎么样学好Oracle