zoukankan      html  css  js  c++  java
  • TQ2440开发板存储器

    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)

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

  • 相关阅读:
    资源限制
    垃圾收集器
    GC日志
    happens-before
    maven相互依赖导致无法编译成功
    LVM-逻辑卷常用命令和示意图
    取消RAID5
    扩展RAID5的容量
    模拟RAID5损坏
    创建RAID5
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3206524.html
Copyright © 2011-2022 走看看