S3C6410 NAND启动流程
来源:互联网 发布:mysql上一篇查询 编辑:程序博客网 时间:2024/05/16 14:44
转自:
http://blog.csdn.net/a475701239/article/details/8557933
S3C6410和2440的NAND启动流程大体一样,也有一些区别。这篇文章主要目的是梳理下S3C6410 NAND启动流程,也给这几天的学习来个总结。
S3C6410主存的地址范围为 0x0000_0000~0x6FFF_FFFF。主存部分分成四个区域:引导镜像区,内部存储区,静态存储区和动态存储区。
引导镜像区的地址范围是从0x0000_0000~0x07FFF_FFFF,但是没有实际的映射内存,引导镜像区反映一个镜像,这个镜像指向内存的一部分区域或者静态存储区。引导镜像的开始地址是0x0000_0000。
内部存储区用于启动代码访问内部ROM和内部SRAM,也被称为Steppingstone。内部ROM地址范围为0x0800_0000~0x0bff_ffff,为只读,当内部ROM启动被选中时,该区域能映射到引导镜像区。内部RAM地址范围为0x0c00_0000~0x0fff_ffff,可读写,当NAND启动被选择时,能映射到引导镜像区。
(图中steppingstone 4K是错误的,不知道为什么,有的芯片资料说是4K,有的说是8K,我请教过别人都是说8K,并且在内部SRAM设置sp为8*1024程序能正常跑,说明8K没有超出范围)
启动流程:
给板子上电之后,硬件会将nand前8K代码拷贝到steppingstone中,steppingstone会映射到引导镜像区,代码从0x0地址开始执行。可以通过这段启动代码将uboot等加载进SDRAM,实现更多功能。
这里有个小问题困扰了很久,因为这点跟2440不同,就是为什么nand里8K拷贝进steppigstone后程序从0地址开始跑,而不是0x0c00_0000(steppingstone 地址0x0c00_0000),后来又看了芯片资料,steppingstone会映射到引导镜像区,引导镜像区在映射之前是不指向实际内存地址的。我做了个测试,当8K拷贝完后,我将PC指针分别指向0x0,和0x0c00_0000去执行,发现执行的代码是一样的。所以以0x0,和0x0c00_0000为起始地址的8K代码其实是一样的,都是指向物理地址为0x0c00_0000的这段代码。
- S3C6410 NAND启动流程
- S3C6410 NAND启动流程
- S3C6410 NAND启动流程
- S3C6410 NAND启动流程
- s3c6410 ARM11启动流程
- S3C6410 ARM处理器启动流程
- S3C6410启动方式及启动流程
- MLC NAND调试(S3C6410)
- s3c6410 nand初始化
- s3c6410 nand初始化
- rex启动流程之NAND FLASH
- s3c6410 完全由SD卡启动Linux流程
- S3C6410 完全由SD卡启动Linux流程
- s3c6410 完全由SD卡启动Linux流程
- ARM处理器启动流程———S3C2440、S3C6410、S5PV210
- ARM处理器启动流程———S3C2440、S3C6410、S5PV210
- ARM处理器启动流程———S3C2440、S3C6410、S5PV210
- DM365视频处理流程/DM368 NAND Flash启动揭秘
- 蓝桥杯2014年以前JAVA历年真题及答案整理——杨辉三角形
- javase Dat和String国际化
- 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败解决方法
- PHP练习程序(基本语法)
- 黑马程序员_关于容器的知识点补充
- S3C6410 NAND启动流程
- HDU 2046 骨牌铺方格
- 手游公司日记(1)
- Oracle 监听命令配置,虚拟宿主机访问的问题
- Storm DRPC环境搭建笔记
- 工厂方法模式--结合具体例子学习工厂方法模式
- 高斯日记
- 今日听完下一个七年该怎样度过后的感想
- Leetcode_linked-list-cycle-ii