S5PV210启动流程分析
来源:互联网 发布:杭州市行知小学地址 编辑:程序博客网 时间:2024/05/21 17:49
- S5PV210上电后首先从IROM处执行已经固化的启动代码BL0,IROM(0xD001_0000~0xD001_FFFF,64K空间);
- 在BL0初始化过程中对设备进行判断,并从启动设备拷贝BL1(最大16k)到IRAM地方,IRAM(0xD002_0000,0xd0003_7FFF),其中0xD0020000~0xD0020010这16字节为BL1的检验信息和尺寸,并对BL1进行校验,校验通过转入BL1进行执行,BL1继续初始化,并拷贝BL2(最大80个字节)到IRAM进行校验,校验通过后进入BL2。
- BL2完成比较复杂的初始化工作,包括DRAM的初始化,完成后将OS代码拷贝到DRAM里面,并跳转到OS中执行完成启动引导。
BL0完成的工作:
关闭看门狗,初始化icache,初始化堆栈,初始化设备拷贝功能,设置系统时钟,拷贝BL1到iRAM,检验BL1的校验和,失败选择安全启动模式,成功跳转到IRAM执行
IRAM前16个字节的内容是:
地址 内容
0xD002_0000 BL1 的大小
0xD002_0004 必须写为 0
0xD002_0008 CheckSum
0xD002_000C 必须写为 0
检验方法如下:
for(count = 0;count < dataLength; count++){buffer = (*(volatile u8*))(uBLAddr + count);CheckSum = CheckSum + buffer;}
//count--循环索引变量
//dataLength BL1的大小以字节为单位
//buffer从BL1里读一个字节的数据
//BL1的校验和生成BL1的方法:
在从启动设备(如:NAND FLASH / SD 卡)拷贝 BL1 的前 16K 数据到 IRAM时,这 16K 数据中的前 16byte 中保存了校验和的值以及 BL1 的大小,在拷贝过程中 CPU 会计算
出当前 bin 文件中含’1’的个数,然后与校验和进行比较,如果二者相等则继续运行程序,否则,不执行。很巧,两个16.
0 0
- S5PV210启动流程分析
- S5PV210 SD卡启动流程分析
- s5pv210-Uboot启动流程
- S5PV210 启动流程
- S5PV210开发 -- 启动流程
- s5pv210启动分析
- S5PV210启动过程分析
- S5PV210启动过程分析
- S5PV210启动过程分析
- S5PV210启动过程分析
- S5PV210启动过程分析
- s5pv210启动流程简析
- s5pv210 IROM启动流程详解
- S5PV210的启动流程解读
- s5pv210 IROM启动流程详解
- 深入理解uboot 2016 - 基础篇(S3C2410 与S5PV210处理器启动流程分析)
- s5pv210 芯片 tiny210 板 网卡启动流程
- S5PV210 WinCE6.0 镜像烧写流程分析
- 别样JAVA学习(二)语言基础上
- 更新一下研发进度
- HDU 5045 Contest(概率dp,状态压缩,2014上海网络赛1004)
- centos 6.5 6.3安装SSDB
- Spark源码编译
- S5PV210启动流程分析
- 一切成功源于积累——20140928 认识货币——英镑
- 哈弗大学的学生
- 怎样计算给定一个二进制数中为1的位数, 附源码
- git shell 命令大全
- NONATOMIC与ATOMIC的区别
- 有关ThinkPad T430、X230如何禁用触控板小红帽的问题
- 如何写一篇英文文章的Summary?
- TomCat部署