s3c2440的内存管理机制

1.     Nand FlashNor FlashSDRAM地址区别

Nand FlashROM,容量大,适用于数据存储,ARM不能从Nand中直接启动,需要把程序从Nand的前4k空间中拷贝到SDRAM,然后再从SDRAM中启动。

Nor FlashROM,容量小,适用于程序存储,ARM可以从Nor Flash中直接启动。

SDRAM RAM,容量大,操作系统等大型软件都运行在SDRAM中。

 

2.     S3c2440寻址空间:

S3C244027地址线ADDR[26:0]8根片选信号ngcs0-ngcs7,对应bank0-bank7当访问bankx的地址空间,ngcsx引脚为低电平,选中外设。

2^27=2^7 * 2^10 * 2^10 = 128Mbyte

8*128Mbyte = 1Gbyte

所以S3C2440总的寻址空间是1Gbyte(也就是最高地址0x40000000

寻址空间如下图:

 

3.     SDRAM的寻址原理:

SDRAM内部是一个存储阵列。可以把它想象成一个表格。和表格的检索原理一样,先指定行,再指定列,就可以准确找到所需要的存储单元。这个表格称为逻辑BANK。目前的SDRAM基本都是4BANK。寻址的流程就是先指定BANK地址,再指定行地址,最后指定列地址。这就是SDRAM的寻址原理。

4.     内存片(HY57V561620F)的连接方式:

HY57V561620F的容量是16M寻址*16位宽=256Mbit

TQ2440中使用了两片内存,总容量为2*32M=64Mbyte

A0-A12是地址线:行地址、列地址复用,行地址使用A0-A1213条),列地址使用A0-A89条)。

BA0-BA1bank选择引脚。(bank选择与行地址(row address)同时下发,在列地址下发时,有其他用途)

 

这个SDRAM

13根行地址线   RA0-RA12

9根列地址线    CA0-CA8

2BANK选择线 BA0-BA1

SDRAM的地址引脚是复用的,在读写SDRAM存储单元时,操作过程是将读写的地址分两次输入到芯片中,每一次都由同一组地址线输入。两次送到芯片上去的地址分别称为行地址和列地址。它们被锁存到芯片内部的行地址锁存器和列地址锁存器。/RAS是行地址锁存信号,该信号将行地址锁存在芯片内部的行地址锁存器中;/CAS是列地址锁存信号,该信号将列地址锁存在芯片内部的列地址锁存器中。

SDRAMA0接S3C2440的ADDR2,很多初学者都对这里又疑问。A0为什么不接ADDR0?

要理解这种接法,首先要清楚在CPU的寻址空间中,字节(8位)是表示存储容量的唯一单位。

2片HY57V561620F扩展成32位SDRAM,可以认为每个存储单元是4个字节。因此当它的地址线A1:A0=01时,处理器上对应的地址线应为ADDR3:ADDR2=0132SDRAM4字节一个地址,对应于CPU)(因为CPU的寻址空间是以Byte为单位的)。所以SDRAM的A0引脚接到了S3C2440的ADDR2地址线上。

(可以看成,ARM的寻址地址=CPU的地址*4,因为对CPU来讲相当于没读一次都相隔4byte)。

 

同理,如果用1片HY57V561620F,数据线是16位,因为一个存储单元是2个字节,这时SDRAM的A0要接到S3C2440的ADDR1上。

 也就是说SDRAM的A0接S3C2440的哪一根地址线是根据整个SDRAM的数据位宽来决定的。

上面的接线图上,BA0,BA1ADDR24,ADDR25,为什么用这两根地址线呢?

BA0~BA1代表了SDRAM的最高地址位。因为CPU的寻址空间是以字节(Byte)为单位的,本系统SDRAM容量为64MByte,那就需要A25~A0(64M=2^26)地址线来寻址,所以BA1~BA0地址线应该接到2440的ADDR25~ADDR24引脚上。

13根行地址线+9根列地址线 = 22根。另外HY57V561620F一个存储单元是2个字节,相当于有了23根地址线。BA0,BA1是最高地址位,所以应该接在ADDR24,ADDR25上。

 

5.     启动过程中寻址方式

系统启动取决于S3c2440 CPUOM0OM1两个引脚的取值:

因此在TQ2440中,直接将OM1接地(永远为0),OM0作为拨码开关,来选择是从nand启动(接地,0)还是从nor 32-bit启动(悬空,1)。

6.     Nor Flash引脚图(EN29LV160AB-70TCP

地址线A0-A19,共20条;

数据线D0-D15,共16条(D15为数据、地址复用);

47BYTE#配置为字节byte模式时(0)D15用于A-1地址线,所以寻址空间为20+1=21条,也就是2M byte

47BYTE#配置为双字word模式时(1),D0-D15都用于数据线,寻址空间为20条,1M,数据线D0-D15有效,数据量为1M*2=2Mbyte(TQ2440采用此模式)

7.     重要信息地址

 

标示

地址

含义

寄存器

寄存器范围

0x48000000~0x5fffffff

 

 

S3C24X0_GPIO_BASE

0x56000000

Gpio各寄存器基地址

 

S3C2410_SDI_BASE

0x5A000000

SDI

 

S3C24X0_USB_DEVICE_BASE

0x52000140

用户设备

 

S3C2410_NAND_BASE

0x4E000000

Nand

 

S3C24X0_LCD_BASE

0x4D000000

LCD

 

S3C24X0_INTERRUPT_BASE

0x4A000000

中断

 

 

 

 

运行数据

_bss_start

0x33db6990

 

 

_armboot_start

0x33d80000

 

 

CFG_ENV_SIZE

0x20000

 

 

FREE_RAM_SIZE

0x3d1df7c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

宏观内存范围

Nor Flash(nor 启动方式)

0x00000000~0x001fffff

Nor flash位于bank0

2Mbyte容量。

 

CPU内部SRAMNand Flash启动方式)

0x00000000~

Nand flash启动时拷贝到SRAM中运行

 

外部SDRAM

0x30000000~0x34000000

64Mbyte容量

 

Nand Flash

NULL

Nand Flash不直连总线,通过控制器访问。

 

 

内存分配

SDRAM地址end

@0x34000000

Bss_start

此上,为bss数据区

Armboot_start

此上,为uboot映像,大概200k

CFG_MALLOC_LEN

256k

GLB_DATA_SIZE

128byte+4byte

IRQ_stack

4k

FIQ_stack

4k

用户栈区

128k

空闲地址空间

大概61MbyteSDRAM内存总共64M.

SDRAM地址start

@0x30000000

Nor /nand flash…..

 

 

 

 

8.     名词解释

 

 

 

nGCS0

芯片选择(片选)寄存器

nGCS0-nGCS7

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434588.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java阴阳师抽卡概率_《阴阳师》公布抽卡概率!看到数字我哭了

随着《文化部关于规范网络游戏运营加强事中事后监管工作的通知》(以下简称“通知”)的正式生效,网游与手游似乎也迎来了一个全新的时代,除了我们之前关注的游戏帐号实名制认证之外,道具的合成以及氪金抽卡概率问题也非常值得玩家注意&#xf…

基于easyX的颜色侵略小游戏

是挺久以前做的一个东西&#xff0c;突然想到放上来分享一下俺的拙作&#xff0c;纯原创。 利用二维数组对齐进行划分&#xff0c;并讲状态分为被侵略与未被侵略两种状态来记录。 在旧版的easyX可以运行。源码及exe下载 头文件&#xff1a; 1 #include <graphics.h> 2 …

JAVA中返回值为字母时_LeetCode#524通过删除字母匹配到字典里最长单词-java中CompareTo方法用法以及Comparator中Compare方法返回值...

import java.util.Collections;import java.util.Comparator;import java.util.List;/*524. 通过删除字母匹配到字典里最长单词给定一个字符串和一个字符串字典&#xff0c;找到字典里面最长的字符串&#xff0c;该字符串可以通过删除给定字符串的某些字符来得到。如果答案不止…

记一次 IIS 7.0 身份验证相关的问题解决

今天项目发布到外网服务器后&#xff0c;由于项目需要读写图片&#xff0c;就需要读写图片服务器&#xff0c;上传图片时&#xff0c;老是报“没有权限”。于是&#xff0c;咨询专家后&#xff0c;找到了解决方案。 IIS 项目的属性 > 身份验证 > ASP.NET 模拟 > 启用 …

找了个学习uboot makefile的好地方 不过不让转载 那就把网址分享一下吧

http://haoyeren.blog.sohu.com/86590116.html http://blog.chinaunix.net/uid-20564848-id-3947194.html http://blog.sina.com.cn/s/articlelist_2314879471_0_1.html

关于JS中的constructor与prototype

在学习JS的面向对象过程中&#xff0c;一直对constructor与prototype感到很迷惑&#xff0c;看了一些博客与书籍&#xff0c;觉得自己弄明白了&#xff0c;现在记录如下&#xff1a; 我们都知道&#xff0c;在JS中有一个function的东西。一般人们叫它函数。比如下面的代码&…

java二级缓存技术_Java二级缓存

第一步所需导入架包log4j-api-2.10.0.jarlog4j-core-2.10.0.jarmybatis-3.4.1.jarmysql-connector-java-5.1.38.jar第二步开始配置数据库的连接br> "http://mybatis.org/dtd/mybatis-3-config.dtd">第三步(文件放在src根目录问件下)日志配置第四步&#xff…

resolv.conf

文件/etc/resolv.conf配置DNS客户&#xff0c;它包含了主机的域名搜索顺序和DNS服务器的地址&#xff0c;每一行应包含一个关键字和一个或多个的由空格隔开的参数。下面是一个例子文件&#xff1a; search mydom.edu.cnnameserver 210.34.0.14nameserver 210.34.0.2合法的参数及…

php mvc 路由,PHP手写MVC (五)—— 路由

路由是一个框架中必不可少的组件&#xff0c;其作用是把 URL 按照预定规则解析到特定控制器中。我们在这里定义了两种路由规则&#xff1a;查询字符串。在路径后面使用问号加参数&#xff0c;多个参数用 & 分隔。在配置文件使用 querystring 表示#控制器/方法?参数1值1&am…

ifcfg-eth0 配置

文件&#xff1a;/etc/sysconfig/network-scripts/ifcfg-eth0 以下各值常见于所有的基本配置文件中&#xff1a; * DEVICEname,这里name是物理设备的名字&#xff08;动态分配的PPP设备应当除外&#xff0c; 它的名字是“逻辑名”。 * IPADDRaddr, 这里addr是IP…

我的收藏 - 音频处理相关网站

自己平时用chrome浏览器&#xff0c;用Google帐号同步标签&#xff0c;但有时还是容易丢失一些网址&#xff0c;因此做个简单的同步&#xff01;慢慢更新中... 音频相关算法 http://www.jjj.de/fxt/ http://www.dspguide.com/ http://www.musicdsp.org/files/Audio-EQ-Cookb…

php获取跳转前的地址,PHP获取短链接跳转后的真实地址和响应头信息的方法

PHP获取短链接跳转后的真实地址和响应头信息的方法获取到一个短连接&#xff0c;需要将短连接转换成真实的网址&#xff0c;通过查资料&#xff0c;发现 PHP 提供了一个函数 get_headers() &#xff0c;可以完成这个任务&#xff0c;先把 头部信息获取到&#xff0c;然后再分析…

安装配置opensips过程记录

本文操作系统为CentOS&#xff0c;所用Opensips版本为1.8.2。 Update2013/6/27: 版本1.9.1也已验证通过&#xff0c;下载地址为http://opensips.org/pub/opensips/latest/src/opensips-1.9.1_src.tar.gz 安装CentOS &#xff08;若已有环境可跳过此步骤&#xff09; 1、安装虚拟…

eclipse快捷键Alt + /

很多书籍中Eclipse的快捷键Ctrl Space在中文系统中被Alt / 代替转载于:https://www.cnblogs.com/jubincn/archive/2012/04/19/3381206.html

Linux Kbuild文档 1

Linux内核配置方式1.1 概述 Linux内核源代码组织了一个配置系统&#xff0c;该配置系统可以生成内核配置菜单&#xff0c;方便内核配置。配置系统主要包含Makefile、Kconfig和配置工具&#xff0c;可以生成配置界面。其中&#xff0c;配置界面是通过配置工具来生成的&#xff…

依赖注入原理 php,PHP依赖注入原理与用法分析

本文实例讲述了PHP依赖注入原理与用法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;引言依然是来自到喜啦的一道面试题&#xff0c;你知道什么是依赖注入吗&#xff1f;依赖注入(DI)的概念虽然听起来很深奥&#xff0c;但是如果你用过一些新兴的php框架的话&#xf…

jQuery1.7.2正式发布了

下载地址 jQuery1.7.2正式发布了&#xff0c;下载地址&#xff1a; http://code.jquery.com/jquery-1.7.2.min.js (minified, production)http://code.jquery.com/jquery-1.7.2.js (unminified, debug)注&#xff1a;如果你正在使用jQuery Mobile&#xff0c;请使用最新的jQuer…

Linux Kbuild文档 2

2. Kconfig linux在2.6版本以后将配置文件由原来的config.in改为Kconfig&#xff0c;对于Kconfig的语法在内核源代码/Documentation/kbuild/kconfig-language.txt中做了详细的说明。 2.1 Kconfig的树状关系 Kconfig的配置选项是以树的形式组织的&#xff0c;如下所示所示&am…

php upw5.5,UPW

PHP EngineerResponsibilities:●Analysis and module design of software system&#xff1b;●Development and design of new products, and be able to write the core module code independently&#xff1b;●Responsible for the maintenance and upgrading of existing…

cocos2d对动画的各种操作

关于动画的各种操作&#xff0c;总结一下以便以后复习查找。 内容简要: 1、瞬时动作2、延时动作 3、 组合动作 4、动画 5、速度变化6、函数调用7、创建动作动画8、控制动画帧的速度 原文地址&#xff1a; http://blog.csdn.net/dingkun520wy/article/details/7014233 --…