• 内存初始化


    电容的分类:

    DRAM:基本原件是电容,需要定时刷新,存储速度较慢

    DRAM又分为:SRAM(同步动态随机存储器synchronous dynamic random access memory)

          DDR(双倍速率同步动态随机存储器double data rate sdram)

          DDR2(在ddr的基础上改进)

    SRAM:是一种静止存取功能的内存,不需要定时刷新,存储速度快,缺点是功耗大,成本高,常用作存储容量不高但是存储速度较快的地方(stepping stone:垫脚石

    内存的内部结构是一个如同一个数据表格,称为结构表

    一般一个内存单元中会被 划分为4L-BANK

    2440中有27根地址线,可以寻址128M的空间。

    2440中将bank7bank6做内存总共64M的内存空间

    为了寻址更大的空间,2440提供了片选信号,总共有8 个管脚提供8个片选信号

    内存初始化:(CPU对内存的访问时通过存储控制间接访问的)

    BWSCON:0X48000000(设置外接存储器的总线宽度和等待状态)

    总共32位,分成8组,每组4位,分别控制8bank

    STX:

    0:没有用UB/LB

    1:用UB/B

    注意:UB/LB pin脚,用来分别访问数据的高低字节

    WSX:

    总线等待使能,一般是不让其等待的

    DWX:

    数据线宽度

    BANKCONn:总共是有6个,其控制字不变,保持其默认值ox00000700

    BANKCON6:(需要分别设置,16位)

    BANKCON7:(需要分别设置,16位)

    MT[16:15]:决定存储器类型

    Trcd[3:2]:决定是行列信号的转化时间,芯片手册的时序图是两个时钟周期

    SCAN[1:0]:决定列的数量,查看内存手册是9

    REFRESH:0x4800002423位):

    REFEN[23]:决定存储器是否刷新,1=刷新

    TREFMD[22]:决定存储器刷新模式,0=自动刷新

    Trp[21:20]:决定列刷新频率, 根据内存手册时序逻辑图,00=两个时钟周期

    Tsrc[19:18]:决定行刷新频率,11=7个时钟周期

    Refresh Counter[10:0] :决定SDRAM刷新的时间(这里和前面的列和行刷新不一样),根据计计算公式 取十进制数1269

    BANKSIZE:0X48000028(8)

    BURST_EN[7]:使能ARM内核突发模式,一次处理器可以批量的访问内存数据,1=使用

    SCKE_EN[5]:是否使用节电模式,1=使用

    SCLK_EN[4]:串行时钟使用时启动,1=使用

    BK76MAP[2:0]:定义内存大小,000=32/32

    注意:2440的内存初始化总共需要初始化13个控制寄存器

    MRSB6/7:0X4800002C/0X48000030:内存模式(12位)

    CL[6:4]CAS latency 固定内存寻址存储持续时间,跟在列/行寻址后持续的时间,011=查看芯片手册时序时间表。

    6410存储器空间:

    32位地址线,最大寻址4G内存空间,一般高2G空间是,低2G 空间。

    其中低2G存储空间是又被分为:

    外设存储空间主存储空间

    主存储空间又被分为:

    动态存储区

    保留区

    内部存储区

    镜像存储区

    静态存储区

    总结:无论是时钟初始化的寄存器,还是内存初始化的寄存器,其寄存器的地址空间都是处于内存中的外设区

  • 相关阅读:
    一文看懂Fluentd语法
    mongo 使用聚合合并字段
    加速开发流程的 Dockerfile 最佳实践
    nodejs之RSA加密/签名
    nodejs之https双向认证
    自签证书生成
    白话理解https
    一文看懂k8s Deployment yaml
    基于xtermjs实现的web terminal
    intelliJ 中文设置
  • 原文地址:https://www.cnblogs.com/big-devil/p/8589432.html
Copyright © 2020-2023  润新知