JZ2440开发笔记(6)——存储控制器
存储控制器与CPU及其它外设的关系

我们看到cpu上集成了一个存储管理器,外围的存储设备都接在这个存储管理器上。cpu负责发出命令,其它的一切工作都交给了存储管理器。那么存储管理器是如何来管理这些外设的呢?
首先地址空间被分为8个bank(bank0-bank7),每个bank对应128m空间。每个bank都对应一个选通位(nGCS0-nGCS7),选通位为低电平是表示该bank选通。这样的话,虽然地址线只有27条,但是总的地址空间可以达到了1G。s3c2440的地址空间组织如下图所示:

我们看到地址空间是0-0x40000000,果然是1G。那么s3c2440的cpu是32位的,他可以使用的地址理论上可以达到4G,除了用于连接外设的1G地址空间之外,还有一部分是cpu内部寄存器的地址,其余的地址没有用。其中cpu的内部寄存器的地址都在:0x48000000-0x5fffffff之间。
下面我们比较关心的一个问题就是如果我们想要访问一个外设的话,我们应该发出什么地址?其实很简单,首先由nGCSn来确定基地址,然后用地址线表示的地址加上这个基地址就是我们需要的外设的访问地址了。 我们以DM9000为例来说明一下: DM9000用到的片选信号是nGCS4,地址信号只有一个那就是LADDR2,nGCS4对应的基地址是:0x20000000,LADDR2为0代表可以写入的地址,为1代表可以读出数据的地址。那么我们要将一个数据写入DM9000的话,就需要向地址:0x20000000写入数据,如果要从DM90000读出数据的话,就需要从地址:0x20000004读出数据。也就是说cpu访问DM9000的地址只有两个,读数据的话就访问:0x20000000,写数据的话就访问:0x20000004 我们再以SDRAM为例来分析一下: 我们只分析一片SDRAM,并不去管那个扩展了。我们的SDRAM是挂接在bank6上面的,所以基地址是:0x30000000。接在SDRAM上的地址线有15条,分别是:LADDR2-LADDR14,以及:LADDR24-LADDR25。cpu访问SDRAM的地址为:基地址0x30000000+15位地址线表示的地址,其地址范围是:0x30000000-0x33ffffff,共64M空间。 为什么会这样呢?这其实是一个比较复杂的过程,我们来分析一下: 首先SDRAM的地址可以分为3部分:L_BANK、行地址、列地址,如下图所示:

LADDR24-LADDR25对应于4个L-BANK
LADDR2-LADDR14对应于行地址和列地址,根据控制位来决定是行地址还是列地址,其中行地址13位,对应LADDR2-LADDR14,列地址9位,对应LADDR2-LADDR10,所以地址一共26位,即64M空间。
那么为什么要空出LADDR0-LADDR1呢?因为SDRAM是32的,即一个地址对应着4个字节,而cpu每发出一个地址对应1个字节,所以cpu发出4个地址才能对应SDRAM的一个地址。
我们jz2440上其它一些外部存储设备的地址空间我们就不一一分析了,下面贴出来:

JZ2440开发笔记(6)——存储控制器的更多相关文章
- JZ2440开发笔记(9)——位置无关代码设计【转】
b MAIN 和 ldr pc,=MAIN 的区别(谈到代码位置无关性) 看bootloader的时候经常看到这两种写法,不太明白区别,网上查了查.其实看了之后还是一头雾水? 其中,2和3 似乎是一个 ...
- JZ2440开发笔记(8)——FCLK、HCLK和PCLK
S3C2440中有三种时钟,分别是FCLK,HCLK和PCLK.这三种时钟的功能各不相同,其中FCLK主要是为ARM920T的内核提供工作频率,如图: HCLK主要是为S3C2440 AHB总线(Ad ...
- JZ2440开发笔记(7)——2440启动方式
JZ2440的启动方式有两种,一种是从NOR FLASH中启动,还有一种就是从NAND FLASH中启动. 如果从NOR FLASH启动,CPU会访问NOR FLASH的0地址,而0地址位于BANK0 ...
- JZ2440开发笔记(5)——通过按键点亮LED
在JZ2440中,点亮LED就是给LED的控制位设置为输出,数据位设置为低电平,而通过按键点亮LED,就需要将按键对应的控制位设置为输出. 下面是JZ2440的3个LED电路图: 下面是JZ2440的 ...
- JZ2440开发笔记(2)——minicom的安装和配置使用【转】
一.安装配置minicom 1.安装minicom lingd@ubuntu:~$ sudo apt-get install minicom 2.配置minicom lingd@ubuntu:~$ s ...
- Android 开发笔记___存储方式__共享参数__sharedprefences
Android 的数据存储方式有四种,这次是[共享参数__sharedprefences] 听起来挺别扭的,平时看到的app里面,当用户删除了一些软件以后下次安装,发现原来的设置还在,这种情况就是把一 ...
- LeapMotion控制器 java语言开发笔记--(连接控制器)
(1)为了连接LeapMotion控制器,创建controller对象,这个对象自动创建与控制器的服务或者后台程序连接,然后捕获数据提供给你的应用程序.可以使用该对象来获取连接信息. (2)获取Fra ...
- LeapMotion控制器 java语言开发笔记--(LeapMotion控制器简介)
(1)LeapMotion系统识别和追踪手,手指,以及根手指类似的工具,这个设备运行在一个极小的范围,这个范围拥有个高精度,高跟踪频率可以记录离散的点,手势,和动作. (2)LeapMotion控制器 ...
- JZ2440开发笔记(4)——设置静态IP
1. 配置静态ip地址 $sudo vim /etc/network/interfaces 原有内容只有如下两行: auto lo iface lo inet loopback 向末尾追加以下内容: ...
随机推荐
- Winfrom 中 ComboBox 绑定数据后设置选定项问题
在为 ComboBox 当定数据的时候,如果遇到界面显示需要用文本,而获取选定项的值时需要用数字,我们就很习惯使用 DataSource 来进行绑定. 例如以下代码: List<TextVal ...
- 修改ECSHOP,支持图片云存储化(分离到专用图片服务器)
为了提高页面加载速度和适应中国复杂的网络环境,我决定把所有商品图片都分离到专业的云存储服务器上,具有CDN加速功能. 首先,生成一个域名 img.xxxx.com 并映射到自己的云存储别名,然后把全部 ...
- mvc框架下,怎样用cookie实现下次自动登录
登录时有个下次自动登录的checkBox.点了它下次就可以自动登录了 具体流程我都晓得,就是细节的地方有些搞不定.我只要解决3个问题: (1)登录时如果点了checkbox,则在本机产生一个cooki ...
- hive 中的Sort By、 Order By、Cluster By、Distribute By 区别
Order by: order by 会对输入做全局排序,因此只有一个reducer(多个reducer无法保证全局有序)只有一个reducer,会导致当输入规模较大时,需要较长的计算时间.在hive ...
- Nhibernate 分页功能
cs: public IEnumerable<ArticleView> MyGetAll(int start, int limit, ref int count) { try { var ...
- 如何组织css,写出高质量的css代码
!如何组织css一:css的API 属于基础部分,这部分的能力用“对”和“错”来评判. 比如说把文字设置为红色,只能用color:red:这种写法是对的,其他任何写法都是错的. 二:css框架 不能用 ...
- tomcat+apache 实现负载均衡之一:同一台电脑部署2个以上tomcat
1. 下载tomcat 8.0.17 http://apache.fayea.com/tomcat/tomcat-8/v8.0.17/bin/apache-tomcat-8.0.17.tar.gz ...
- 试求由a,b,c三个字母组成的n位符号串中不出现aa图像的符号串的数目
1.错误解法 共3^n,含aa的共3^(n-2),那么相减8*3^(n-2). 分析:aa的左右两边不能是a,所以结果肯定大了. 2.正确解法 假设符合条件的符合串 ...
- iOS 并发:NSOperation 与调度队列入门(1)
一直以来,并发都被视为 iOS 开发中的「洪水猛兽」.许多开发者都将其视为危险地带,唯恐避之而不及.更有谣传认为,多线程代码应该尽力避免.笔者同意,如果你对并发的了解不够深入,就容易造成危险.但是,危 ...
- 关于PIL库的一些概念
关于PIL库的一些概念 pil能处理的图片类型pil可以处理光栅图片(像素数据组成的的块). 通道一个图片可以包含一到多个数据通道,如果这些通道具有相同的维数和深度,Pil允许将这些通道进行叠加 模式 ...