Bootloader的设计和实现.ppt
- 文档编号:2732199
- 上传时间:2022-11-10
- 格式:PPT
- 页数:45
- 大小:894KB
Bootloader的设计和实现.ppt
《Bootloader的设计和实现.ppt》由会员分享,可在线阅读,更多相关《Bootloader的设计和实现.ppt(45页珍藏版)》请在冰豆网上搜索。
LOGOBootLoader的设计与实现的设计与实现WindowsCE操作系统1BootLoader概述概述1.1BootLoader的的概念概念1.2BootLoader的操作模式的操作模式1.3嵌入式系统的引导模式嵌入式系统的引导模式1.4BootLoader的功能特性的功能特性1.5几种特殊的几种特殊的BootLoader2BootLoader的体系结构的体系结构2.1BooterLoader的架构的架构2.2BooterLoader的支持库的支持库内容安排内容安排LOGO3BootLoader的代码的组件和执行流程的代码的组件和执行流程3.1BooterLoader代码组件代码组件3.2BooterLoader代码的执行流程代码的执行流程4BootLoader开发前的硬件考虑开发前的硬件考虑4.1考虑的原因考虑的原因4.2考虑的因素考虑的因素4.3基于基于s3c2440的的sinosys的的M3开发板开发板5BootLoader的设计与实现的设计与实现5.1构建创建环境构建创建环境内容安排内容安排LOGO5.2startup函数的设计与实现函数的设计与实现5.3主函数主函数main的设计与实现的设计与实现5.4控制流函数的设计与实现控制流函数的设计与实现5.5调试函数的设计与实现调试函数的设计与实现5.6以太网控制器相关的函数以太网控制器相关的函数5.7写写FLASH函数的设计与实现函数的设计与实现5.8镜像下载函数的设计与实现镜像下载函数的设计与实现5.9时间相关函数的设计与实现时间相关函数的设计与实现5.10配置文件配置文件内容安排内容安排LOGO1BootLoader概述概述v1.1BootLoader的概念的概念BootLoader的描述的描述操作系统内核运行前运行地一段小程序操作系统内核运行前运行地一段小程序。
初始化硬件、建立。
初始化硬件、建立内存空间映射图,为内存空间映射图,为OS的运行准备好正确的环境。
带有的运行准备好正确的环境。
带有BootLoader的固态存储介质典型空间分配如图的固态存储介质典型空间分配如图1所示所示BootLoader的功能的功能引导系统引导系统加载操作系统加载操作系统图LOGOv1.1BootLoader的操作模式的操作模式启动加载模式启动加载模式又叫自主模式,又叫自主模式,BootLoader将预先存储在永久固态将预先存储在永久固态介质上的介质上的OS镜像加载到镜像加载到RAM中运行。
中运行。
下载模式下载模式目标机通过串口、网口或者目标机通过串口、网口或者USB从主机端下载镜像到目从主机端下载镜像到目标机端点标机端点RAM中,然后再被中,然后再被BootLoader写到目标机写到目标机上的上的FLASH类固态存储设备中类固态存储设备中LOGOv1.3嵌入式系统的引导模式嵌入式系统的引导模式BootLoader引导模式引导模式非非BootLoader引导模式引导模式使用使用RESETVECTOR引导引导不使用不使用RESETVECTOR引导引导LOGOv1.4BootLoader的功能特性的功能特性并非所有平台都支持下面列出的功能特性,但大部分特并非所有平台都支持下面列出的功能特性,但大部分特性对所有平台来说都是有用的性对所有平台来说都是有用的BootLoader典型功能特性典型功能特性BootLoader应驻留在应驻留在FLASH等永久存储介质里等永久存储介质里BootLoader应提供消息反馈机应提供消息反馈机BootLoader要能加载要能加载BootLoader镜像和镜像和OS镜像,对镜像,对OS镜像要既能从镜像要既能从RAM加载,也能从加载,也能从FLASH加载加载提供数据正确性保障提供数据正确性保障LOGOBootLoader的推荐做法的推荐做法尽量使用微软提供的支持库开发尽量使用微软提供的支持库开发BootLoader和和OAL共享相同的硬件初始化代码共享相同的硬件初始化代码BootLoader的附加功能特性的附加功能特性在在BootLoader的输出信息中,应包含版本、开发者和构的输出信息中,应包含版本、开发者和构建日期等信息建日期等信息设计一个序列化的功能选项菜单,为用户开发提供便利设计一个序列化的功能选项菜单,为用户开发提供便利支持自更新支持自更新与与PB协调工作,实现复位下载,复位跳转和自更新协调工作,实现复位下载,复位跳转和自更新提供一种监视和反馈机制,监控下载过程提供一种监视和反馈机制,监控下载过程在其中尽肯能的包含以太网调试驱动在其中尽肯能的包含以太网调试驱动LOGOv1.5几种特殊的几种特殊的BootLoaderX86BIOSBootLoaderx86SerialBootLoaderx86ROMBootLLOGO2BootLoader的体系结构的体系结构v2.1BooterLoader的架构的架构BooterLoader的结构如图的结构如图2所是:
所是:
图LOGO五个组成部分五个组成部分BLCommon库,库,OEM代码,代码,Eboot库,库,EDBG驱动,以驱动,以及存储管理及存储管理OEM代码必须由用户自己编写代码必须由用户自己编写EDBG驱动,以及存储管理可能需要修改,视具体情况驱动,以及存储管理可能需要修改,视具体情况BLCommon库和库和Eboot库完全不用改库完全不用改OEM代码代码用户根据自己的平台特点编写或修改的代码用户根据自己的平台特点编写或修改的代码存放路径为:
存放路径为:
%_WINCEROOT%PlatformSrcELOGOv2.1BooterLoader支持库支持库微软提供的众多静态库中,微软提供的众多静态库中,BootLoader中常用的有以下所中常用的有以下所述的四种述的四种BLCommon库库存放路径:
存放路径:
%_WINCEROOT%PublicCommonOakDriversEthdbgBlcommon功能:
重定位功能:
重定位BooterLoader在在RAM中的位置,解码中的位置,解码.bin文件的内容、验证校验及加载跟踪过程等文件的内容、验证校验及加载跟踪过程等Blcommond代码的入口点:
代码的入口点:
BootloaderMainLOGOEboot库库存放路径:
存放路径:
%_WINCEROOT%PublicCommonOakDriversEthdbgEboot功能:
为功能:
为BooterLoader提供提供DHCP、TFTP和和UDP服务服务EDBG驱动驱动是一组以太网卡的驱动程序代码是一组以太网卡的驱动程序代码存放路径:
存放路径:
%_WINCEROOT%PublicCommonOakDriversEthdbg功能:
提供常用以太网卡驱动,为功能:
提供常用以太网卡驱动,为BootLoader和和OS的通的通信提供通用接口信提供通用接口WINCE5.0下已有的驱动:
下已有的驱动:
NE2000、CS8900、RTL8139、SMC9000、DEC21140等LOGO存储管理存储管理BootPart部分存放路径:
部分存放路径:
%_WINCEROOT%PublicCommonOakDriversEthdbgBootPart功能:
辅助功能:
辅助BootLoader进行分区管理,存储设备读进行分区管理,存储设备读/写等操作和管理写等操作和管理FlashFMD部分是用户自己编写的,存放在:
部分是用户自己编写的,存放在:
%_WINCEROOT%PlatformSrcEboot这部分是被这部分是被BLCommon库回调的代码库回调的代码LOGO3BootLoader的代码的组件和执行流程的代码的组件和执行流程v2.1BootLoader代码组件代码组件由两部分组成由两部分组成OEM启动代码启动代码汇编编写,最先执行,完成对汇编编写,最先执行,完成对CPU时钟频率,内部寄时钟频率,内部寄存器,高速缓存及其他一些硬件相关功能的初始化。
存器,高速缓存及其他一些硬件相关功能的初始化。
OEM主代码主代码C语言编写,语言编写,BootLoader的主要代码区,通常包含的主要代码区,通常包含镜像下载,串口调试,写镜像下载,串口调试,写Flash(可选),硬件监视器(可(可选),硬件监视器(可选)等几部分的代码选)等几部分的代码LOGOBootLoader代码的控制流程如图代码的控制流程如图3所示:
所示:
图LOGOv2.1BootLoader代码的执行流程代码的执行流程根据根据BootLoader的任务来划分,可将其代码的执行分的任务来划分,可将其代码的执行分为两个阶段:
为两个阶段:
Stage1完成对完成对CPU的初始化,地址的映射,然后跳到的初始化,地址的映射,然后跳到main函数函数Stage2数据的重定位,平台的初始化(主要是各种外围模块),数据的重定位,平台的初始化(主要是各种外围模块),镜像的加载镜像的加载整个整个BootLoader代码的执行过程,用交互图表示如下,代码的执行过程,用交互图表示如下,LOGOBootLoader代码的执行过程的交互图图LOGO4BootLoader开发前的硬件考虑开发前的硬件考虑4.1考虑的原因考虑的原因硬件密切相关硬件密切相关不同操作系统不同操作系统BootLoader的功能相同,但实现的功能相同,但实现方式不同方式不同LOGO4.1考虑的因素考虑的因素支持对支持对BootLoader的更新的更新支持对支持对BootLoader操作方式的切换操作方式的切换提供足够的提供足够的RAM或是或是FLASH存储空间供调试存储空间供调试在开发启动代码的早期阶段,提供调试指示在开发启动代码的早期阶段,提供调试指示4.3s3c2440的的sinosys的的M3开发板开发板2MB的的NORFLASH64MB的的NANDFLASH支持以太网卡支持以太网卡支持串口支持串口支持支持LED指示指示LOGO5BootLoader的设计与实现的设计与实现以下设计过程中的代码均是以以下设计过程中的代码均是以s3c2440BSP为例,平台是双为例,平台是双实科技的实科技的sinosys-m3试验箱试验箱5.1构建创建环境构建创建环境为要新建的为要新建的BootLoader创建一个新的目录,路径创建一个新的目录,路径为:
为:
%_WINCEROOT%PlatformMyPlatformSrcBootLoaderEbootMyPlatform是要创建是要创建BootLoader的平台名的平台名创建命令行环境创建命令行环境为为BootLoader提供所需要的静态库,这部分不是必须的,也提供所需要的静态库,这部分不是必须的,也可以通过可以通过SOURCES文件来提供静态库文件来提供静态库创建创建SOURCES文件和文件和makefile文件文件SOURCES文件为编译器提供编译信息文件为编译器提供编译信息makefile文件用于驱动编译过程文件用于驱动编译过程LOGO5.2startup函数的设计与实现函数的设计与实现BootLoader的入口代码的入口代码最早编写的最早编写的BootLoader函数,汇编编写,存放路径如下:
函数,汇编编写,存放路径如下:
%_WINCEROOT%PlatformMyPlatformSrcBootLoaderEbootMyPlatform是要创建是要创建BootLoader的平台名,文件扩展名为的平台名,文件扩展名为.sstartup函数的作用函数的作用主要完成对主要完成对CPU的初始化,地址映射以及的初始化,地址映射以及BootLoader代码代码的搬运的搬运LOGO5.3主函数主函数main的设计与实现的设计与实现由由Startup函数调用,函数调用,C语言代码的入口点,在该函数语言代码的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Bootloader 设计 实现