TX2440A与TQ2440A开发板使用核心板完全相同

有过51单片基础的同学应该都会看懂下图,先看下图,对实验板存储器分布有一个整体印象:

s3c2440存储器概述:

1、S3C2440A的存储器管理器提供访问外部存储器的所有控制信号

2、27位地址信号、32位数据信号、8个片选信号、以及读/写控制信号等
3、总共有8个存储器bank(bank0—bank7)
   bank0---bank5为固定128MB
   bank6和bank7的容量可编程改变,可以是2、4、8、16、32、64、128MB
   最大共1GB

4、bank0可以作为引导ROM
   其数据线宽只能是16位和32位,其它存储器的数据线宽可以是8位、16位和32位
5、7个固定存储器bank(bank0-bank6)起始地址
   bank7的开始地址与bank6的结束地址相连接,但是二者的容量必须相等
6、所有存储器bank的访问周期都是可编程的
7、支持SDRAM的自刷新和掉电模式
8、支持大小端(软件选择)

NANDFLASH启动: OM1=0  OM0=0
NORFLASH启动:  OM1=0  OM0=1

开发板硬件:

TQ2440A开发板使用的SDRAM:
  型号:K4S561632(两片)
  大小:
      4M * 16bit * 4banks * 2片= 512 bit = 64M 字节
  数据宽度:32 bit

连接在BANK6上,片选信号nGCS6
  地址范围:0x3000_0000—0x33FF_FFFF

有四个逻辑BANK(L-BANK)
  由BA1、BA0选择
  行地址数:13
  列地址数:9

SDRAM存储区分布:

0x3000_0000~0x3100_0000程序代码区、文字常量区
0x33ff_0000~0x33ff_4800堆区
0x33ff_4800~0x33ff_8000栈区
0x33ff_ff00~0x3400_0000偏移中断向量表

                              SDRAM配置寄存器:

NOR FLASH (EN29LV160AB):
  大小:2M
  数据宽度:16bit
  连接在BANK0上,片选信号nGCS0
  地址范围:0x0000_0000---0x0020_0000
特点:
  线性寻址
  可直接按地址进行读写操作
  写操作之前需进行擦除操作
  写入、擦除速度较慢,读取速度较快,单位密度低、成本较高

NAND FLASH(K9F2G08)
  大小:256M * 8Bit
  数据宽度:8位
  地址范围:有专门的时序控制总线,不占用系统总线资源
特点:
  非线性寻址
  读操作,一次必须读一个扇区(512字节)
  写操作,可按指定地址直接写入
  写之前必须进行擦除操作
  单位密度高、成本低、擦除速度快

存储空间组织:(256M+8M)×8bit
  数据空间: 2planes×1kblocks×64pages×2048Byte
  寄存器空间: 2planes×1kblocks×64pages×64Byte
自动编程和擦除
  页编程:(2048+64)Byte
  块擦除:(128K+4K)Byte
  2112Byte 页读取操作

NAND FLASH 启动方式:

1、2440内部有一个叫做“起步石(Steppingstone)”  的 SRAM缓冲器
2、系统启动时Nand flash存储器的前面4K字节被自动拷贝到Steppingstone中
3、Steppingstone被映射到nGCS0对应的BANK0存储空间
4、CPU在Steppingstone的4-KB内部缓冲器中开始执行引导代码
5、引导代码执行完毕后,自动跳转到SDRAM执行

管脚配置:
D[7:0] : 数据/命令/地址/的输入/输出口(与数据总线共享)
CLE : 命令锁存使能 (输出)
ALE : 地址锁存使能(输出)
nFCE : NAND Flash 片选使能(输出)
nFRE : NAND Flash 读使能 (输出)
nFWE : NAND Flash 写使能 (输出)
R/nB : NAND Flash 准备好/繁忙(输入)

控制寄存器:

NAND FLASH 操作步骤:

1、通过NFCONF寄存器配置NandFlash;
2、写NandFlash命令到NFCMMD寄存器;
3、写NandFlash地址到NFADDR寄存器;
4、写数据到NFDATA,或从NFDATA读数据;
5、在读写数据时,通过NFSTAT寄存器来获得Nand flash的状态信息。应该在读操作前或写入之后检查R/nB信号(准备好/忙信号)
6、在读写操作后要查询校验错误代码,对错误进行纠正

命令字:

寻址:

对于K9F1208(64M)
  Block  Address  块地址  A[25:14]
  Page   Address  页地址  A[13:9]
  Column Address  列地址  A[7:0]
 
A8是halfpage pointer
被读命令00h设为低电平  访问A区(0~255byte)
被读命令01h设为高电平  访问B区(256~511byte)

50h访问C区(512~527byte)

地址传送顺序是:列地址,页地址,块地址

TQ2440开发板存储器的更多相关文章

  1. 运行在TQ2440开发板上以及X86平台上的linux内核编译

    一.运行在TQ2440开发板上的linux内核编译 1.获取源码并解压 直接使用天嵌移植好的“linux-2.6.30.4_20100531.tar.bz2”源码包. 解压(天嵌默认解压到/opt/E ...

  2. 基于TQ2440开发板的WiFi模块的使用经验总结

    一.软.硬件资源准备: 内核版本:linux-2.6.30.4 交叉编译器版本:4.3.3 wpa_supplicant工具:wpa_supplicant-0.7.3.tar ; openssl-0. ...

  3. TQ2440开发板挂载U盘出现乱码

    解决方法:配置内核 make menuconfig File Systems --->      DOS/FAT/NT Filesystems  --->         (utf8) D ...

  4. tq2440开发板基本配置

    时钟配置及分配 tq2440的晶振频率是12MHz,在uboot中有如下语句:   #define S3C2440_CLKDIV 0x05 /* FCLK:HCLK:PCLK = 1:4:8, UCL ...

  5. 【转】深度分析NandFlash—物理结构及地址传送(以TQ2440开发板上的K9F2G08U0A为例)

    K9F2G08U0A是三星公司生产的总容量为256M的NandFlash,常用于手持设备等消费电子产品.还是那句话,搞底层就得会看datasheet,我们就从它的datasheet看起. 这就是 K9 ...

  6. 在TQ2440开发板上ping 127.0.0.1不通

    问题:在TQ2440上ping 127.0.0.1,提示错误 ping: sendto: Network is unreachable   解决方法:ifconfig lo 127.0.0.1 up ...

  7. TQ2440开发板网络配置方式

    一.命令行模式 1.设置IP.子网掩码(netmask) #ifconfig eth0 <IP地址> netmask <子网掩码> up up 表示开启网卡eth0,可以不加 ...

  8. 把Linux目录挂载到开发板、设置开发板从NFS启动、取消开发板从NFS启动

    声明:文中"PC虚拟机Linux"是指在PC上安装了虚拟机,然后在虚拟机中装的Linux. 关于NFS的详细介绍可参考:http://www.cnblogs.com/nufangr ...

  9. AC6102开发板USB3.0测试和使用说明

    AC6102开发板USB3.0测试和使用说明 概述 AC6102上集成了一颗Cypress 推出的高性能USB3.0传输芯片CYUSB3014,Cypress称之为EZ-USBFX3.该芯片性能强劲, ...

随机推荐

  1. CF989C A Mist of Florescence (构造)

    CF989C A Mist of Florescence solution: 作为一道构造题,这题确实十分符合构造的一些通性----(我们需要找到一些规律,然后无脑循环).个人认为这题规律很巧妙也很典 ...

  2. Python 入门基础11 --函数基础4 迭代器、生成器、枚举类型

    今日目录: 1.迭代器 2.可迭代对象 3.迭代器对象 4.for循环迭代器 5.生成器 6.枚举对象 一.迭代器: 循环反馈的容器(集合类型) 每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的 ...

  3. os_cpu_a.asm

    在OS_CPU_A.ASM中,定义了开.关中断的方法,在uC/OS-II系统中有三种方法可以实现中断开关,而ARM只适用于模式三,即使用一个局部变量,在中断进入之间保存CPU状态,退出时候再恢复状态. ...

  4. JVM 垃圾回收算法及案例分析

    一. 在说垃圾回收算法之前,先谈谈JVM怎样确定哪些对象是“垃圾”. 1.引用计数器算法: 引用计数器算法是给每个对象设置一个计数器,当有地方引用这个对象的时候,计数器+1,当引用失效的时候,计数器- ...

  5. jexus http to https

    一.摘要 1.80端口上只要没有网站使用 hosts=* 这样的配置,jexus会自动将域名跳转到 https 上.也就是说,你把网站默认配置文件default中的hosts=*改成具体的其它的域名, ...

  6. Oracle学习笔记:a inner join b与from a,b where a.x=b.x的差异

    近期,在使用Oracle的过程中,由以下两段代码的执行引发的思考,到底 select * from a,b where a.id = b.id 和 select * from a inner join ...

  7. Java编程的逻辑 (36) - 泛型 (中) - 解析通配符

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  8. Linux磁盘空间扩容(LVM)

    Linux磁盘空间扩容(lvm) 随着系统的运行时间增长,业务数据的增长,原有磁盘的空间会存在空间不足情况,导致系统不能正常运行,或者系统管理员磁盘没有完全划完,根据使用者的需求自行划分.那么怎么才能 ...

  9. JDBC事务与事务隔离级别详解

    事务基本概念 一组要么同时执行成功,要么同时执行失败的SQL语句.是数据库操作的一个执行单元. 事务开始于: 连接到数据库上,并执行一条DML语句insert.update或delete 前一个事务结 ...

  10. 工作流调度器azkaban2.5.0的安装和使用

    为什么需要工作流调度系统 一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduce程序.hive脚本等 各任务单元之间存在时间先后及前后依赖关系 为了很 ...