S3C6410学习——MemoryMap

发布者:荣耀使者最新更新时间:2015-08-20 来源: eefocus关键字:S3C6410  MemoryMap 手机看文章 扫描二维码
随时随地手机看文章
S3C6410跟S3C2440不同,S3C6410支持32位物理地址空间并将该地址空间分为2个部分,一部分是“存储空间”,另一部分是“外设空间”。其中主存储空间通过SPINE总线访问,其地址空间为0x0000,0000~0x6FFF,FFFF,主存储空间又分为4个区域——引导镜像区(boot image area),内部存储区(internal memory area),静态存储区(static memory area)和动态存储区(dynamic memory area)。

引导镜像区(boot image area)的地址空间为0x0000,0000~0x07FF,FFFF,但是没有实际的内存映射,引导镜像区映射到内部存储区或者静态存储区的部分区域,并且起始地址固定为0x0000,0000。

内部存储区供boot loader访问内部ROM(internal ROM)和内部SRAM(internal SRAM),也称为Steppingstone。每个内部存储器的起始地址都是固定的。内部ROM的地址空间为0x0800,0000~0x0BFF,FFFF,但是实际的存储空间只有32KB,这一区域是只读的,且当启动方式选择为内部ROM启动时,该区域应该映射到引导镜像区(boot image area)。SRAM的地址空间为0x0C00,0000~0x0FFF,FFFF,但是实际的存储空间只有4KB。

静态存储区的地址空间为0x1000,0000~0x3FFF,FFFF,通过这个区域可以访问SROM,SRAM,NOR Flash,异步NOR接口设备,OneNand Flash和Steppingstone。每个区域对应一个片选,例如,地址空间0x1000,0000~0x17FF,FFFF对应Xm0CSn[0]。每个片选的起始地址是确定的。Nand flash和CF/ATA不能通过静态存储区访问,所以如果Xm0CSn[5:2]对应的任意区域映射到NFCON或CFCON都导致其对应区域的地址空间无法访问。一个特例是当Xm0CSn[2]对应的区域用于NAND Flash时Steppingstone映射到地址空间0x2000,0000~0x27FF,FFFF。

动态存储区的地址空间为0x4000,0000~0x6FFF,FFFF,DMC1有权使用0x5000,0000~0x6FFF,FFFF的地址空间。每个片选的起始地址是可以配置的。

外设空间通过PERI总线访问,并其地址空间为0x7000,0000~0x7FFF,FFFF。所有的特殊功能寄存器都可以通过这个区域访问。如果数据来自NFCON或CFCON,这些数据也通过PERI总线访问。

主存储区的内存分布情况如下:

外设空间分布情况请直接参考手册,以上纯属个人理解的芯片手册,如有疏漏,敬请指出。

关键字:S3C6410  MemoryMap 引用地址:S3C6410学习——MemoryMap

上一篇:S3C6410学习——Nand flash陷阱
下一篇:Eclipse在线调试ARM11——Tiny6410+OpenJTAG

推荐阅读最新更新时间:2024-03-16 14:29

S3C6410,Tiny6410,Mini6410,MoblieDDR内存驱动
1. 概述 S3C6410内存控制器是采用的PL340内存控制芯片。AMBA APB3.0接口协议规定,可以通过编程将AXI从总线接口和APB主总线接口进行桥接,实现二者总线上的数据的传输。 DRAM控制器可以通过配置兼容SDRAM类型芯片。通过向DRAM控制器中PL340写入内存芯片配置参数,内存时序,来控制内存工作。 DRAM控制器可以直接从SDRAM或DRAM接收一个控制命令。通过将操作命令写入direct_cmd寄存器,操作SDRAM进行对应操作。通过向memc_cmd寄存器写入状态模式命令,使DRAM控制器进入对应的工作模式。例如:向direct_cmd寄存器写入:Prechargeall , Autor
[单片机]
<font color='red'>S3C6410</font>,Tiny6410,Mini6410,MoblieDDR内存驱动
s3c6410 uboot代码分析
以下用以记录uboot代码的分析过程,目标是s3c6410,如有错误,欢迎指正。 强调,内容与三星原厂提供的uboot-1.1.6有更改的地方,因为外接外设的区别,特别是nand_flash、外接网卡芯片和LCD芯片 以下纯代码情景分析,请结合uboot的功能结构图和内存分布图查看代码,这样会更加容易理解。 s3c-u-boot-1.1.6源代码可以在三星下面的网站获得,但前提是你有官方的email。 还是百度google搜一下吧,当然我这也是有的哦。 http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=835&partnum
[单片机]
<font color='red'>s3c6410</font> uboot代码分析
深入理解ARM体系架构(S3C6410)---S3C6410存储映射
S3C6410的物理内存分成Memory和Pheriperal两部分,地址范围分别为0x0~0x6fffffff和0x7fffffff~0xffffffff。系统通过 SPINE总线访问Memory空间,通过PERI总线访问Pheriperal空间。而为了适应不同外设的访问速度,又分别通过AHB总线访问LCD、 Camera、Accelerator等高速外设,通过APB总线访问iic、watchdog等低速外设。 Memory: (1)启动镜像区物理地址为0x00000000~0x07ffffff,共128MB,是用来启动系统的。但是这个范围内并没有实际的存储介质与之对应,只能在通过OM 选择具体的启动介质后再把相应
[单片机]
深入理解ARM体系架构(<font color='red'>S3C6410</font>)---<font color='red'>S3C6410</font>存储映射
使uboot支撑 S3C6410的SD启动
这里运用 的uboot并非uboot官方揭晓的uboot代码,而是为三星定制的一个uboot版本s3c-u-boot-1.1.6,其代码作者就包含了三星的程序员与denx的员工。这个版本支撑 SD启动,不过默认是nand启动,使它支撑 uboot须要 做以下事情:   1、 虽然支撑 uboot启动,但是uboot代码里不叫SD启动形式,而是叫movinand启动形式 ,在incluede/configs/smdk6410.h中就有这个选项,所以在这个文件里关上 nand启动,打开movinand启动就能够 了:   //#define CONFIG_BOOT_NOR   //#define CONFIG_BOOT_NAND
[单片机]
基于S3C6410裸机程序中可能用到的函数分享
裸机程序中可能用到的文件以及函数 #include“system.h” /************************************************************************************************************************* *函数:voidSetEINT_TriggerMode(u8EINT0_N,u8Trigger) *功能:设置外部中断组0触发模式 *参数:EINT0_N:中断源的编号(见:中断组0编号定义);Trigger:触发模式(EXT_LowLevel:低电平触发;EXT_HighLevel:高电平触发; EXT_NegEdg
[单片机]
基于<font color='red'>S3C6410</font>裸机程序中可能用到的函数分享
移动视频监控及定位系统的设计方案
  随着3G/4G移动通信网络和计算机技术的快速发展,移动互联网从很多方面改善了人们传统的生活方式,3G/4G移动网络具有带宽宽、广域广、高安全性等突出特点,能够突破安防行业长距离数字化无线监控一直以来难以简单实现的瓶颈,为无线视频监控开辟了一条新的道路。   本文设计的一种移动视频监控及定位系统,采用S3C6410处理器作为硬件基础,以Mediastream、Live555、VLC开源项目为核心,3G/4G移动通信网络作为网络传输媒介,采用H.264编解码方式实现视频的采集传输播放,并集成GPS模块进行位置数据的采集、传输、显示,实现移动目标的视频监控、定位功能,该系统的前端硬件设备小巧,易于使用。   系统原理   系统
[单片机]
移动视频监控及定位系统的设计方案
S3C6410输入子系统按键驱动程序
以前写的驱动程序要另外写一个测试程序,这样的驱动程序就有很大的局限性,只能自己用,为了通用性,别人的应用程序也可以用我的驱动程序就要引入输入子系统。在这个驱动程序里设置了5个按键L, S, ENTER, LEFTSHIFT, ESC.设置这几个按键主要是为了方便测试。以下是驱动程序button_input.c #include linux/module.h #include linux/init.h #include linux/fs.h #include linux/interrupt.h #include linux/irq.h #include linux/sched.h #include linux/pm.h
[单片机]
<font color='red'>S3C6410</font>输入子系统按键驱动程序
S3C6410开发(3)-编译运行第一个流水灯程序
编写程序 由于我们是在纯裸机上编程,没有uboot之类的程序为我们初始化硬件资源,所以我们要编写一个带有初始化功能的汇编文件。同时为了直观地感受到程序的运行,我们在里面添加一个流水灯的小程序。在工作目录新建一个 statup.s 的文件,编写初始化程序并根据电路板原理图配置LED的GPIO的模式和输出电平。 .global _start _start: // 把外设的基地址告诉CPU ldr r0, =0x70000000 // 对于6410来说内存(0x00000000~0x60000000) // 外设(0x70000000-0x7fffffff) orr r0, r0, #0
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved