S5PV210 启动过程

概述

       CPU(中央处理单元),主要包括两部分:控制器 和 运算器。CPU正常的运行起来需要从存储单元中读取指令,然后解码执行。
        S5PV210 的CPU是arm Cortex-A8,32bit 总线,最大可以访问 2^32 (4G)内存地址访问空间。

        存储设备分为 内存(RAM)和 外部存储器(FLASH);其中 内存RAM 分为 SRAM和DRAM,flash 分为 Norflash 和 NandFlash。

        其中,SRAM和 Norflash 容量小,价格贵,上电后可以CPU可以总线读取信息。DRAM和 NandFlash 容量大,价格便宜,上电后需要CPU初始化,然后通过时序接口读取。

        基于价格考虑(及芯片半导体工艺发展):嵌入式操作系统的的通用存储配置 

                外接大容量的 NandFlash + 外接大容量的 DRAM + Soc内置的SRAM + Soc内置的 ROM(这个含有出厂代码,代码不可更改,启动最开始执行的代码)。

启动过程分析

        启动过程见下图:

        

设备上电

加载 BL0,

加载BL1,

加载BL2

上电启动完成,下面详细介绍每一步作用

BL0 代码介绍和作用

第一步,CPU加载 Soc 内置的Irom内的代码(BL0),

BL0 内的代码是,芯片出厂时,就芯片原厂固化好的代码,无法更改。

 注意: Irom(internal ROM SOC内置ROM),ROM是 只读存储器,一旦写入代码就固定下来。

BL0 做一些 SoC相关初始化(关看门狗,设置Soc时钟等 其他初始化),然后,根据启动方式选择,跳到对应的存储设备地址,读取uboot的第一部分启动代码Bl1(16K)到Iram,校验读取数据时是否出错。然后,cpu跳到Iram中读取指令,执行BL1相关指令代码

BL0 代码的主要功能

关看门狗
初始化指令cache
初始化栈
初始化堆
初始化块设备复制函数device copy function
设置SoC时钟系统
复制BL1到内部IRAM(16KB)
检查BL1的校验和
跳转到BL1去执行

说明:

初始化指令cache 后就可以 解释 和执行汇编指令了。
初始化 堆和栈后,就可以执行 C语言了。
根据截图中OM = irom boot 跳去到相应的存储区域读取uboot的BL1的指令

boot(uboot) 分成 BL1 和 BL2 的原因是:基于成本考虑,Soc的Iarm不能无限大,通用为96K,而boot编译后的镜像有时大于96K,因此,考虑拆分成Bl1 和 Bl2.

BL1 介绍和主要功能

CPU跳转到 IRAM中,读取执行BL1相关代码。将剩余的boot代码BL2 拷贝到IRAM,校验 BL2的和,跳转到BL2 执行。

BL2 介绍和主要功能

初始化 DRAM相关内容,将OS读取到DRAM里面,从DRAM中启动OS

上电过程结束

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值