1.1   寻址空间

ARM处理器为32bit处理器,内部32bit地址总线理论寻址空间为4GB,对于6410来说,寻址空间的高2GB在内部为保留(reserved),低2GB(0x0~0x7FFFFFFF)可划分为2部分:主存储区(main memory area)和外设区(peripheral area)。

1.2   主存储空间(Main memory area)

6410内核与主存储空间通过SPINE总线连接,主存储为地址空间0x0~0x6FFFFFFF,大小为1792MB的一片区域;其中主存储空间在6410内部划分为以下几部分:

  • Boot镜像区(Boot image area)
  • 内部存储区(Internal ROM area and internal SRAM area)
  • 静态存储区(Static memory area)
  • 动态存储区(Dynamic memory area)
  • 保留区(Reserved memory area)

1.2.1           Boot镜像区(Boot image area)

Boot镜像区位于6410寻址空间的0x0~0x07FFFFFF(128MB)位置,这段区域并没有真正的存储设备,实际运行过程中是映射到内部存储区或静态存储区,Boot镜像区固定起始地址为0x00000000。

Boot 镜像区没有实际的存储设备,只是在一些特定区域的“镜像”,之所以有这种位于0x0地址镜像,主要是因为ARM内核启动之后强制PC从0x0地址开始取指有关。至于与哪些特定区域镜像,与系统配置密切相关(关于系统启动配置详见后续章节说明),当系统为:

1)       SROM (8 bit/16 bit)启动(booting)

当系统为SROM booting 配置,Boot镜像区为SROM控制器的第0个bank(128MB),即0x10000000~0x17FFFFFF地址,支持的存储器可以是SRAM、ROM、Nor flash等,对应地址片选引脚Xm0CSn[0]。

2)       MODEM(8 bit/16 bit)启动(booting)

当系统为MODEM Booting配置,Boot镜像区仅地址为0x00000000~0x00007FFF的32KB区域有效,且对应为6410内部的I_ROM区低32KB字节0x08000000~0x08007FFF。

3)       ONENAND 启动(booting)

当系统为ONENAND 模式启动配置,整个Boot镜像区0x0~0x07FFFFFF全部为静态存储器0x20000000~0x27FFFFFF地址镜像,128MB一一对应。

6410支持2 Bank个ONENAND 地址映射区,分别为ONENAND0 和ONENAND1,只有ONENAND0对应的地址才可能在启动时候镜像到Boot镜像区。

4)       IROM启动(booting)

IROM启动设置之后,Boot镜像区仅地址为0x00000000~0x00007FFF的32KB区域有效,且对应为6410内部的I_ROM区低32KB字节0x08000000~0x08007FFF。

顺便提及一下,I_ROM主要实现的功能是在系统启动之后,执行一些内核、外设初始化,搬移启动代码到Stepping stone区域,然后跳转到该区域执行后续的Booting。

1.2.2           内部存储区(Internal ROM area and internalSRAM area)

6410的内部存储区分为地址0x08000000~0x0BFFFFFF的64MB  I_ROM和地址0x0C000000~0x0FFFFFFF的64MB I_SRAM的两块区域。64MB空间的I_ROM区域实际只有低32KB有效0x08000000~0x0BFFFFFF;64MB空间的I_SRAM区域也不连续分布在0x0C000000~0x0C005FFF区域。

1.2.3           静态存储区(Static memory area)

6410内部的静态存储区地址分布在0x10000000~0x3FFFFFFF,一共6*128MB大小,分为Bank0~Bank5,对应地址片选引脚Xm0CSn[0]~ Xm0CSn[5]。

静态存储区对应的芯片外部接口memoryport0通过外部总线接口(EBI),分别为

SROM控制器、ONENAND控制器、NAND Flash控制器以及CF控制器分享。如下图,memory port0分为片选共享和外部总线接口共享两部分。

静态存储区结构:

摘自《s3c6410 user’s manual REV 1.2》

EBI共享信号如下表:

摘自《s3c6410 user’s manual REV 1.2》

片选信号共享与系统启动模式(包括XSELNAND)和存储区控制寄存器MEM_CTL_CFG的bit5~bit0控制域(MP0_CS_CFG)共同决定。

当系统选择为NANDflash启动配置(XSELNAND=1,OM[4:0]=111x),系统会忽略MP0_CS_CFG的设定,自动使Xm0CSn[2]、Xm0CSn[3]对应NAND Flash CS0、NAND Flash CS1。

当系统选择为ONENANDflash启动配置,系统会忽略MP0_CS_CFG的设定,自动使Xm0CSn[2]、Xm0CSn[3]对应ONENAND Flash CS0、ONENAND Flash CS1。

当系统选择为SROM启动配置,无需配置MP0_CS_CFG,系统自动使Xm0CSn[0]、Xm0CSn[1]对应SROMC CS0、SROMC CS1。

当系统选择为SD启动配置,需要配置MP0_CS_CFG的bit4=1,或bit5=1,使Xm0CSn[4]、Xm0CSn[5]对应到CFCON CS0、CFCON CS1。

MP0_CS_CFG设置:

摘自《s3c6410 user’s manual REV 1.2》

1.2.4           动态存储区(Dynamic memory area)

6410动态存储区地址段0x50000000~0x6FFFFFFF,分为2个bank,每个bank 256MB。

s3c6410地址映射相关推荐

  1. OK6410开发板ARM基本介绍(一)S3C6410的地址映射

    s3c6410地址映射 1.1   寻址空间 ARM处理器为32bit处理器,内部32bit地址总线理论寻址空间为4GB,对于6410来说,寻址空间的高2GB在内部为保留(reserved),低2GB ...

  2. s3c6410_地址映射

    分类: ARM_S3C6410 2012-05-29 22:19 1000人阅读 评论(1) 收藏 举报 c存储flashimageuser 目录(?)[+] s3c6410地址映射 1.1   寻址 ...

  3. 【嵌入式开发】 Bootloader 详解 ( 代码环境 | ARM 启动流程 | uboot 工作流程 | 架构设计)

    作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42462795 转载请著名出处 相关资源下载 :  -- u-boo ...

  4. S3C6410设备时钟源选择、启动方式选择和内存映射

    ********************************LoongEmbedded******************************** 作者:LoongEmbedded(kandi ...

  5. s3c6410存储器映射

    1.引导镜像区  0x0000_0000~0x07FF_FFFF 2.内部存储区 (1) 内部ROM      0x0800_0000~0x0BFF_FFFF (2) 内部SRAM    0x0C00 ...

  6. S3C6410启动方式

    目前的ARM处理器都支持多种启动模式,S3C6410和以前的Samsung的ARM处理器一样,通过外部管脚OM[4:0]的拉高拉低来决定是从哪个存储设备上启动.我认为S3C6410的User Manu ...

  7. S3C6410板子移植 Android2.2

    一:Android简介 1.什么是Android: Android是一种基于linux的自由及开放源代码的操作系统,主要适用于移动设备,如智能手机和平板电脑,是由google公司和开放手机联盟领导和开 ...

  8. s3c6410存储系统 (一)

    (一)memory 1.引导镜像区  0x0000_0000~0x07FF_FFFF 128MB 2.内部存储区 128MB (1) 内部ROM     0x0800_0000~0x0BFF_FFFF ...

  9. AC97之DMA(s3c6410)

    AC97之DMA(S3C6410) 在AC97的s3c-pcm.c文件中即platform驱动中,提供了ac97的DMA的使用.现在按照下面的过程一一讲述. 在设备打开时会调用s3c24xx_pcm_ ...

  10. 最快69秒逆向DRAM地址映射,百度设计的这款逆向工具如何做到快速可靠?

    来源 | 百度安全实验室 出品 | AI科技大本营(ID:rgznai100) 导读:近日,国际顶级设计自动化大会DAC大会公布DAC 2020会议议程和论文名单,由百度安全发表的<DRAMDi ...

最新文章

  1. linux 检索全部文件中的中文词汇,linux – 获取所有文件中的单词计数
  2. 树链剖分 + 后缀数组 - E. Misha and LCP on Tree
  3. 使用Xcode和Instruments调试解决iOS内存泄露
  4. if else语句_你敢信?if语句执行完,竟然也会执行else语句
  5. hibernate乐观锁_Hibernate Collection乐观锁定
  6. ogc是一个非营利性组织_非营利组织的软件资源
  7. 半波对称振子方向图_画好服装款式图的五个要点
  8. 1.oracle dblink(数据库不同实例数据对导)
  9. AngularJS学习笔记之二:开发、调试和测试工具
  10. input type=file与cursor:pointer的兼容性问题
  11. 衬线字体与无衬线字体
  12. DCDC Bootstrap自举电路
  13. kindle 不能连接wifi的三个原因
  14. MeteoInfo-Micaps绘制色斑图
  15. 动态内存分配实现冒泡排序
  16. python脚本实现自动刷王者荣耀金币
  17. c语言控制51单片机完成交通信号灯(红绿灯)
  18. 定语从句--专升本语法
  19. Android宠物寄养软件APP毕业设计
  20. 2020-07-04

热门文章

  1. BZOJ3533: [Sdoi2014]向量集
  2. 咋让计算机名字改为办公用计算机,让电脑变成历史:三星DeX将三星S8变成“办公电脑”...
  3. veu项目中的路由处理
  4. java ico图片转png_Java图片处理:ico格式转 PNG/JPG等格式
  5. 每天都使用微信语音,但你必须晓得互联网语音协议(VoIP)
  6. 微型计算机上的射箭成为什么,《说文解字》第429课:“谢”字里为什么有一个“射箭”的“射”...
  7. 已知椭圆长短轴半径a,b,matlab画椭圆(附椭圆公式)
  8. javascript禁用Backspace退格键(结合自己实际应用中遇到的textarea中退格造成页面假死问题做了修改)
  9. 20135231 —— Linux 基础入门学习
  10. 开源中国众包平台 —— 为什么我们需要托管赏金