




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
BroadcomBootloader,Bootloader的通用性质,一.Bootloader与嵌入式linux的关系一个嵌入式系统从软件角度来看分为四个层次:1.引导加载程序。包括固化在固件(firmware)中的boot代码(可选),和BootLoader两大部分。2.Linux内核。特定于嵌入式板子的定制内核以及内核的启动参数。3.文件系统。包括根文件系统和建立于Flash内存设备之上文件系统。通常用ramdisk来作为rootfs。4.用户应用程序。特定于用户的应用程序。,二、BootLoader的概念简单地说,BootLoader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。BootLoader的主要运行任务就是将内核映象从硬盘上读到RAM中,然后跳转到内核的入口点去运行,也即开始启动操作系统。通常,BootLoader是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的BootLoader几乎是不可能的。,三.BootLoader的安装媒介系统加电或复位后,所有的CPU通常都从某个由CPU制造商预先安排的地址上取指令。比如,基于ARM7TDMIcore的CPU在复位时通常都从地址0 x00000000取它的第一条指令。一个同时装有BootLoader、内核的启动参数、内核映像和根文件系统映像的固态存储设备的典型空间分配结构图:,四.BootLoader的主要任务与典型结构框架BootLoader的启动过程可分为单阶段(SingleStage)和多阶段(Multi-Stage)两种通常多阶段的BootLoader能提供更为复杂的功能,以及更好的可移植性。从固态存储设备上启动的BootLoader大多都是2阶段的启动过程,也即启动过程可以分为stage1和stage2两部分。stage1完成初始化硬件,为stage2准备内存空间,将stage2复制到内存中,设置堆栈然后跳转到stage2,多阶段的BootLoaderBootLoader的stage1通常包括以下步骤(以执行的先后顺序):硬件设备初始化。为加载BootLoader的stage2准备RAM空间。拷贝BootLoader的stage2到RAM空间中。设置好堆栈。跳转到stage2的C入口点。BootLoader的stage2通常包括以下步骤(以执行的先后顺序):初始化本阶段要使用到的硬件设备。检测系统内存映射(memorymap)。将kernel映像和根文件系统映像从flash上读到RAM空间中。为内核设置启动参数。调用内核。,bootloader的stage2可执行映象刚被拷贝到RAM空间时的系统内存布局,BroadcomBootloader,一、BroadcomBootloader基本架构大致可以分为三部分:1、固件部分。这部分即为stage1,为加电或复位后CPU执行的最开始的指令地址。它不会被加载进RAM,只初始化硬件,以及将mini-loader加载进内存2、mini-loader部分。这部分主要任务是将CFE加载进内存,并且解压3、CFE部分。这部分进行硬件环境初始化,并且进行image的更新,以及加载kernel,Bootloader在flash上的布局:,二、BroadcomBootloader引导过程代码分析(一)加载Mini-loaderBroadcomBootloader在系统加电以后从srcsharedboot.S中的第一行代码开始执行boot.S文件的主要任务有:1.判断芯片类型2.设置时钟3.缓存的初始化4.把Mini-loader加载进RAM5.C跳转,即进入Mini-loader中执行c_main函数,(二)执行Mini-loader文件:srcsharedload.c函数名:c_main()系统初始化load();/加载CFE,并解压缩;.(void(*)(void)LOADADDR)();/跳转到CFE中执行CFE_main(),CFE加载进RAM后的地址映象,0 x80000000,0 x80001000,0 x80100000,Mini-Loader,Kernel起始地址,0 x80300000,CFEunzipimage,(三)执行CFE文件:srccfecfemaincfe_main.c函数名:cfe_main()主要功能:完成硬件的初始化,包括etherdriver,PCI,console等外部设备的初始化,image更新,引导kernel等,voidcfe_main(inta,intb)board_console_init();/硬件初始化,包括LED的初始化cfe_say_hello();/CFE开始信息board_device_init();/设备初始化,包括etherdriver等设备cfe_startup_info();/输出环境信息,例如存储空间使用情况cfe_init_ui();/UI接口的初始化,包括console命令行初始化board_final_init();/硬件部分初始化cfe_autostart();/image更新,加载kernelcfe_command_loop();/如果上一步按了Ctrl-c,则在此循环执行,(四)etherdriver,board_device_init();,cfe_add_device(,et_probe(devdescr,a,b,ptr),cfe_attach(drv,et,NULL,name);,q_enqueue,(queue_t*)dev);,将dev加入到全局变量cfe_devices队列中,etherdriver相关结构体structcfe_driver_schar*drv_description;/DescriptionofdeviceforSHOWcommandschar*drv_bootname;/Devicesnameprefixforopen()*/intdrv_class;constcfe_devdisp_t*drv_dispatch;void(*drv_probe)(structcfe_driver_s*drv,unsignedlongprobe_a,unsignedlongprobe_b,void*probe_ptr);cfe_driver_t;,(五)image更新与kernel引导,cfe_autostart();,ui_docommands(“go;”);,是否按下Ctrl-C,否,cfe_command_loop();,循环执行CFE命令行,ui_cmd_go(),ui_docommand(flash-noheader-trx:flash1.trx),是,是否有新image,是,flash_update(),是否需要reboot,是,重启,否,ui_cmd_boot(),否,设置OS所需要的参数,加载kernel并跳转到相应地址执行,Ui_cmd_flash(),一个完整的Image可能的格式,ptr,trx_header,trx_header,trx_header,Data,Data,Data,structtrx_headeruint32magic;/*HDR0*/uint32len;/*Lengthoffileincludingheader*/uint32crc32;/*32-bitCRCfromflag_versiontoendoffile*/uint32flag_version;/*0:15flags,16:31version*/uint32offsetsTRX_MAX_OFFSET;/*Offsetsofpartitionsfromstartofheader*/;,Kernel的引导过程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 时间管理培训课程
- 时间的测量教学课件
- 创意美术夏季课件
- 二零二五年度建筑地基基础工程监理合同
- 2025版电子产品生产企业员工受伤赔偿协议
- 二零二五年度实体书店转让合同样本
- 2025版集装箱清洗消毒与保养服务合同
- 二零二五年度企业员工零用金补助与报销协议
- 二零二五年度木材现货交易市场准入合同
- 2025版青岛家居装饰装修工程临时设施租赁合同
- 鼻咽恶性肿瘤放疗的护理讲课件
- 抢救车急救药品管理制度
- 2025年云南省中考化学试卷真题(含答案)
- 历史街区活化机制-洞察及研究
- 2025年的基层治理理论与实践考核试卷及答案
- 2025年江西省高考物理真题
- 外贸合伙人合同协议书
- 刑法说课课件
- 2025届高考作文押题预测(8篇)
- 市场营销测试题+答案
- 公安退赃款协议书
评论
0/150
提交评论