zoukankan      html  css  js  c++  java
  • 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是列地址锁存信号,该信号将列地址锁存在芯片内部的列地址锁存器中。

    SDRAMA0S3C2440ADDR2,很多初学者都对这里又疑问。A0为什么不接ADDR0

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

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

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

     

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

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

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

    BA0~BA1代表了SDRAM的最高地址位。因为CPU的寻址空间是以字节(Byte)为单位的,本系统SDRAM容量为64MByte,那就需要A25~A064M=2^26)地址线来寻址,所以BA1~BA0地址线应该接到2440ADDR25~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

     

     

     

     

     

     

     

     

    9.     参考:

    s3c2440内存原理

    http://hi.baidu.com/qq453158783/blog/item/883430ca84fc9e20b700c84f.html

    http://hi.baidu.com/guoxiao69/blog/item/4f6157d751e22b209a502715.html

    MMU原理

    http://hi.baidu.com/excellentderek/blog/item/c9c60713361efb055baf53e7.html

     

     

  • 相关阅读:
    自考过后的总结——如何快乐学习?
    自考总结——数据库原理第三章
    机房收费系统——用户权限和功能分析
    SQL视频总结
    学生信息管理系统总结——数据库的访问方式
    学习信息管理系统总结——数据库的连接和访问(一)
    学生信息管理系统总结——student数据库中表关系分析
    Kafka-文件管理
    Kafka-分区分配规则
    Kafka-处理请求(生产请求、获取请求)
  • 原文地址:https://www.cnblogs.com/felixjia/p/2118969.html
Copyright © 2011-2022 走看看