第二章 4412启动流程.doc

上传人:hw****26 文档编号:3119066 上传时间:2019-05-22 格式:DOC 页数:4 大小:309.50KB
下载 相关 举报
第二章 4412启动流程.doc_第1页
第1页 / 共4页
第二章 4412启动流程.doc_第2页
第2页 / 共4页
第二章 4412启动流程.doc_第3页
第3页 / 共4页
第二章 4412启动流程.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、Booting:一、Exynos 4412 SCP has 64 KB ROM (iROM) and 256 KB SRAM (iRAM) as internal memory.Exynos 4412 拥有 64K 的内部 ROM(IROM)和 256K 的内部 SRAM(IRAM)。Exynos4412 支持四种启动方式:1、 General NAND flash memory2、 SD/MMC memory card3、 eMMC memory4、 USB device二、上电执行过程当系统复位或者上电,程序会从 IROM(0x00000000)运行,引导加载程序。IROM 是芯片厂家事先

2、烧写到芯片上的(固化在内部 ROM 中的) ,自带 bootloader。 (无源码)问:那么 IROM 功能是什么呢?IROM 把启动设备上特定地址的程序读入到片内内存(IRAM) ,然后执行这个程序。(这个程序就叫 BL1,一样由芯片厂商提供)问:那么启动这个芯片厂商的程序后,又会做什么事情?BL1 又从 特定的地址把程序读入片内内存(IRAM) ,并且执行。 (这个程序叫 BL2,由工程师自己编写的源码)那么根据上面的图来总结下 4412 的启动过程:第一步:图上的在内部 64K 的 IROM 运行程序(也就是 0 地址运行程序)功能是把启动设备上特定位置处图上的的程序读入到片内的 IR

3、AM 里面(这种方式叫 BL1,BL1 是三星公司提供的,无源码。 )第二步:IRAM 运行的程序(也就是 BL1 的程序,0x0202 1400 位置开始运行程序) ,这个程序又会将的程序读入片内内存/或者片外内存,并且去执行它。 (这个阶段叫 BL2,程序由编写者提供)猜想:如果 OS 文件大于 256K 那么片内内存空间不够,那么程序应该如何去执行,在 BL1把 OS 文件拷贝到内部内存时候,前面的小于 256K 用于把启动设备中的 OS 文件拷贝到更大的片外内存去运行。 (u-boot 时候就能体现出来)总结上面,可以了解 4412 的启动过程,那么如何让 4412 开发板工作起来?那

4、就有以下几个问题: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

5、 字节的 checksum,得到一个新的 14K 的 Buf 数据;4.将第三步中构建的 Buf 数据写到 bl2.bin 文件中如何存放就要去看 4412 的内存是如何排布的。三、对于 IRAM 的起始地址和大小是多少?查看内存映射图:可以看出来 IRAM 是从 0x0202 0000 到 0x0206 0000 大小为 256K从启动流程可以知道 BL1 阶段 IROM 会去设备的某个位置读取数据,那么这个位置是多少?BL1 阶段后又会去设备某个位置读取数据,那么这个位置是多少?问题:程序 应该放在设备的那些特定的位置,才能保证程序能正确被读取和正常运行?下面来看个图来解决上面的问题。从图

6、上看,IRAM 的起始地址 0x0202 0000 到 0x0202 1400 的位置,5K 大小为芯片的产品ID,IROM 的版本,设备的入口函数等。从 0x0202 1400 到 0x0202 3400 的位置,8K 大小为 BL1 的存放大小。从 0x0202 3400 到 0x0202 7400 的位置,16K 大小为 BL2 的存放大小。以 SD 卡为例子:最后总结下:IROM 启动流程:IROM 内部固定程序,会先去运行环境,关看门狗、关中断、关MMU、设置栈、启动 PLL 等,然后根据 OM 引脚从启动设备读取 BL1 程序。BL1 程序启动流程:同样去设置运行环境、初始化中断、设置栈。从启动设备读取 BL2读取程序,执行 BL2 程序。BL2:由裸机开发人员自己决定。 (当然只能干板级支持的事情)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。