天天看点

韦东山嵌入式第一期学习笔记DAY_8——12_1_硬件知识_内存接口概念

作者:GWD 时间:2019.7.9

一、课程内容:

摘要:首先引入了GPIO、协议类、内存类外设的概念。重点讲解了CPU和内存控制器如何发送片选信号给内存类外设,以及内存范围的概念。

1、问:CPU可以控制的外设有哪些种类?

答:

韦东山嵌入式第一期学习笔记DAY_8——12_1_硬件知识_内存接口概念

2、问:CPU如何发出时序信号给外设?

答:首先写入数据给相关的寄存器,也就是相应外设的初始化。CPU会根据数据选择不同的模块发出不同的协议电平信号。GPIO和协议类接口,CPU发出的数据都是给内部控制器的,不会输出到外设中,但是内存类控制器例外。

韦东山嵌入式第一期学习笔记DAY_8——12_1_硬件知识_内存接口概念

3、问:内存类设备怎么避免互相影响呢?

答:利用片选信号

4、问:怎么发出片选信号?

答:程序发出数据给CPU,CPU会把地址数据发送给内存管理器,内存管理器会根据地址所处的地址范围选择不同的模块发出不同的协议电平信号。GPIO和协议类接口,CPU发出的数据都是给内部控制器的,不会输出到外设中,但是内存类控制器例外。

5、问:S3C2440的地址范围是怎么划分的?

答: CPU虽然是32位的但是寻址能力是1GB,把这1GB划分了8块,每块128MB。0x08000000=134217728=128M

韦东山嵌入式第一期学习笔记DAY_8——12_1_硬件知识_内存接口概念

例如:当CPU发出0x38000000-0x4000000地址时候ngcs7片选信号低电平

韦东山嵌入式第一期学习笔记DAY_8——12_1_硬件知识_内存接口概念

6、问:为什么寻址线最多是27条而不是32条,不应该是32位的地址么?

答:原因如下,第一、确实是32位的CPU,CPU也发出了32位地址,但是根据手册知道内存控制器最大的地址是0x40000000也就是1GB大小,若按照32位寻址是4GB大小,所以内存管理能力是不足的,只能伪32位的地址进行寻址,内存管理器寻址实际上是要比32位低的;第二、若直接1GB进行寻址的话,片选信号就没办法发出了,所有的内存类外设都一次寻到了无法分别发出片选信号了。所以把这1GB分成了8份每一份128MB,然后根据内存控制器发出的不同地址选择相应的128MB区域。内存控制器128MB位一个单元,2的20次方是1MB,2^7是128所以内存控制器需要 27条地址线输出到外设上寻址第三、内存类外设最大就是128M内存,然后被选中的芯片再根据地址线选择内部的小空间。

韦东山嵌入式第一期学习笔记DAY_8——12_1_硬件知识_内存接口概念

二、学习要点(无)

三、代码(无)