第二章 4412启动流程

上传人:ba****u6 文档编号:177182752 上传时间:2022-12-25 格式:DOCX 页数:4 大小:63.08KB
返回 下载 相关 举报
第二章 4412启动流程_第1页
第1页 / 共4页
第二章 4412启动流程_第2页
第2页 / 共4页
第二章 4412启动流程_第3页
第3页 / 共4页
点击查看更多>>
资源描述
Booting:一、Exynos 4412 SCP has 64 KB ROM (iROM) and 256 KB SRAM (iRAM) as internal memory. Exynos4412 拥有 64K 的内部 ROM (IROM)和 256K 的内部 SRAM(IRAM)。Exynos4412 支持四种启动方式:1、General NAND flash memory2、SD/MMC memory card3、eMMC memory4、USB device二、上电执行过程当系统复位或者上电,程序会从IROM (0x00000000)运行,引导加载程序。IROM是 芯片厂家事先烧写到芯片上的(固化在内部ROM中的),自带bootloader。(无源码)问:那么 IROM 功能是什么呢?IROM把启动设备上特定地址的程序读入到片内内存(IRAM),然后执行这个程序。(这 个程序就叫BL1,一样由芯片厂商提供)问:那么启动这个芯片厂商的程序后,又会做什么事情?BL1又从特定的地址把程序读入片内内存(IRAM),并且执行。(这个程序叫BL2,由工 程师自己编写的源码)那么根据上面的图来总结下4412的启动过程:第一步:图上的在内部64K的IROM运行程序(也就是0地址运行程序)功能是把启动设 备上特定位置处图上的的程序读入到片内的IRAM里面(这种方式叫BL1, BL1是三星公 司提供的,无源码。)第二步:IRAM运行的程序(也就是BL1的程序,0x0202 1400位置开始运行程序),这个程 序又会将的程序读入片内内存/或者片外内存,并且去执行它。(这个阶段叫BL2,程序由编写者提供) 猜想:如果OS文件大于256K那么片内内存空间不够,那么程序应该如何去执行,在BL1把OS 文件拷贝到内部内存时候,前面的小于2 5 6 K 用于把启动设备中的 OS 文件拷贝到更大的 片外内存去运行。(u-boot时候就能体现出来)总结上面,可以了解4412的启动过程,那么如何让4412开发板工作起来? 那就有以下几个问题:1、IROM做了什么事情?固化在芯片的那个位置?2、BL1又做了什么事情?又是如何去存放的?3、BL2 (自己写的程序)是如何构成,又是如何去存放的?接下来先介绍 BL1 和 BL2 文件。那么 BL1 文件从哪里来?答:上面介绍中, BL1 文件由三星公司提供: E4412_N.bl1.bin那么 BL2 文件如何构成:答:BL2.bin文件获取就比较复杂点:1. 从源文件(比如led.bin)中读取14K的数据到Buf当中;2. 处理 Buf 中前 14332 字节的数据,得到 4 字节的 checksum;3. 组装Buf中前14332字节的数据和4字节的checksum,得到一个新的14K的Buf数 据;4. 将第三步中构建的 Buf 数据写到 bl2.bin 文件中如何存放就要去看4412 的内存是如何排布的。三、对于 IRAM 的起始地址和大小是多少?查看内存映射图:Base AddressLimit AddressS)zeDescription0x000000000x0001000064 KBROM0x020000000x0201000064 KBiROM (mirror of 0x0 to 0x100000x0202 00000x02060000256 KBiRAM0x0300_00000x0302_0000128 KBData memory or gene日I purpose of Samsung Reconfigurable Processor SRP.0x0302 00000x0303 0000MKBl-cache or gemeral purpose of SRP.0x0303 00000x0303 900036 KBConfiguration memory write only) of SRP0x038100000x0383 0000AudioSS*s SFR region0x040000000x0500000016 MBBankO of Static Read Only Memory Controller (SMC) (16-bit only)0x05000001)0x0600000016 MBBankl of SMC0x0600 00000x0700 000016 MBBank2 of SMC0x070000000x0800000016 MBBank3 of SMC0x0800 0000OxOCOOOOOO64 MBReservedOxOCOOOOOOOxOCD 00000ReservedOxDCEO 0000OxODO00000SFR region of Na nd Flash Controller (NFCON)0x1000 00000x14000000SFR region0x4000 0000DxAO0O 0O0O1.5 GBMemory of Dynamic Memory Controller (DMC)-0OxAOOO 00000x000000001.5 GBMemory of DMC-1可以看出来IRAM是从0x0202 0000到0x0206 0000大小为256K从启动流程可以知道BL1阶段IROM会去设备的某个位置读取数据,那么这个位置是多少? BL1 阶段后又会去设备某个位置读取数据,那么这个位置是多少?问题:程序应该放在设备的那些特定的位置,才能保证程序能正确被读取和正常运行? 下面来看个图来解决上面的问题。8 KB5KB0x020274000x0203400Ref : BL2 (Main + paddkig + signature = 16KB)Address of Checksum 0x0202_6BFC Address of Signarure : 0x0202_6C0t)BL1 (neadsr + Body 十 padding 十 signature 512B attom signature 1KB一iAOM ZI/RWOKA)00202_0100iRQM sitiCk(k75KB)0)d202_0000Prod* 一世-r -incilonjitf从图上看,IRAM的起始地址0x0202 0000到0x0202 1400的位置,5K大小为芯片的产品ID, IROM 的版本,设备的入口函数等。从 0x0202 1400 到 0x0202 3400 的位置, 8K 大小为 BL1 的存放大小。从 0x0202 3400 到 0x0202 7400 的位置, 16K 大小为 BL2 的存放大小。以 SD 卡为例子:SD/MMC : 1 Block = 512BReservedBL1 + SignatureBL2 + Signature(512B)(8KB)(16KB)XBlockOBlockl-BlocklSBlocfc17-Bilock48最后总结下:IROM启动流程:IROM内部固定程序,会先去运行环境,关看门狗、关中断、关MMU、 设置栈、启动PLL等,然后根据OM引脚从启动设备读取BL1程序。BL1程序启动流程:同样去设置运行环境、初始化中断、设置栈。从启动设备读取BL2 读取程序,执行 BL2 程序。BL2:由裸机开发人员自己决定。(当然只能干板级支持的事情)
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!