BootLoader的设计与实现.ppt
《BootLoader的设计与实现.ppt》由会员分享,可在线阅读,更多相关《BootLoader的设计与实现.ppt(56页珍藏版)》请在咨信网上搜索。
1、-1-嵌入式系统嵌入式系统BootLoaderBootLoader的设计与实现的设计与实现S3C44B0XS3C44B0X的的BootLoaderBootLoader-2-课件总目录课件总目录课件总目录课件总目录 2.移植前规划 3.Bootloader 1.绪论 -3-章节目录章节目录章节目录章节目录1.1.绪论绪论 1.1 BootLoader1.1 BootLoader简介简介 u 内容提要内容提要 -4-1.绪论绪论 内容提要内容提要 本章首先介绍了本章首先介绍了BootloaderBootloader的定义、特点、的定义、特点、安装媒介、下载方式、和启动过程等方面的内安装媒介、下载方
2、式、和启动过程等方面的内容。容。-5-1.1 BootLoader简介简介(1)BIOS定义:BIOS(BasicInput/OutputSystem)是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序;主要功能:是为计算机提供最底层的、最直接的硬件设置和控制。-6-1.1 BootLoader简介简介(2)嵌入式系统引导加载程序嵌入式系统引导加载程序对于PC机来说,其开机后操作系统启动前的硬件初始化操作是由BIOS完成的;对于嵌入式系统来说,出于通用性、价格等方面的考虑,通常并没有像BIOS那样的固件程序;
3、启动时用于完成初始化操作的引导加载程序必须自行编写,这段程序一般被称为Bootloader程序。BootLoaderBootLoader程序是系统加电(或复位)后运行的第一段软件代码。主要作用:通过这段代码,可以初始化系统硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便最终调用操作系统内核。-7-1.1 BootLoader简介简介(3)BootLoader特点特点BootLoader除了依赖CPU的体系结构外,还依赖于具体的嵌入式板级设备的配置;对于两块不同的嵌入式开发板,即使它们是基于同一种CPU而构建的,如果他们的硬件资源和配置不一致,要想让运行在一块板子上
4、的BootLoader程序也能运行在另一块板子上,也还是需要作一些必要的修改。通用通用BootLoader综上所述,为嵌入式系统建立一个通用的BootLoader是很困难的;尽管如此,我们仍然可以对BootLoader(尤其是基于同种Core的微处理器)归纳出一些通用的概念和设计思路,用来指导用户特定BootLoader的设计与实现。-8-1.1 BootLoader简介简介(4)BootLoader安装媒介安装媒介系统加电或复位后,所有的CPU通常都从CPU制造商预先安排的地址上取指令。举例说明举例说明基于ARM7TDMICore的嵌入式系统中,系统在上电或复位时是从0 x00000000地
5、址开始取第一条指令执行,而在这个地址安排的通常就是系统的BootLoader程序。嵌入式系统通常都有某种类型的固态存储设备(比如ROM、EPROM或FLASH等)被安排这个起始地址上用来存放BootLoader程序。-9-1.1 BootLoader简介简介(5)BootLoader下载方式下载方式目标机目标机串口串口网口网口JTAGJTAGMPUMPURAMRAMBOOT ROMBOOT ROM下载工具下载工具宿主机宿主机u 通过编程器将可执行目标文件烧写到通过编程器将可执行目标文件烧写到 BootROMBootROM中。中。u 通常通过串行口、网口或通常通过串行口、网口或JTAGJTAG等
6、接口等接口下载。下载。-10-1.1 BootLoader简介简介(6)BootLoader启动过程启动过程为了增加BootLoader的通用性和可移植性,本文把启动过程分为stagel和stage2两个阶段。stage1阶段:执行的是用汇编语言来实现的依赖CPU体系结构的代码,这样可以提高系统的启动速度。stage2阶段:完成的是OS内核启动前的准备工作,多采用处理能力强、可移植性好的C语言来实现。最小启动代码最小启动代码stage1阶段执行的代码,我们称之为最小启动代码。所谓最小启动代码是指为了完成系统(OS或用户应用程序)启动所必须的最少硬件的初始化程序。-11-1.3 C/OS-II移
7、植流程移植流程Phase 1 Phase 1 Phase 2 Phase 2 1.1.移植的硬件条件移植的硬件条件2.2.编译器的选择编译器的选择3.3.工作状态的选择工作状态的选择4.4.工作模式的选择工作模式的选择5.BootLoader5.BootLoader框架框架6.6.初始化流程初始化流程7.7.编写最小启动代码编写最小启动代码移植前规划阶段移植前规划阶段操作系统移植阶段操作系统移植阶段 -12-章节目录章节目录章节目录章节目录2.2.移植前规划移植前规划 2.1 2.1 移植的硬件条件移植的硬件条件 2.2 2.2 编译器的选择编译器的选择 2.3 2.3 工作状态工作状态的的选
8、择选择 2.4 2.4 工作模式工作模式的的选择选择 u 内容提要内容提要 -13-2.2 编译器的选择编译器的选择(2)常用的常用的ARM编译器编译器目前,比较流行的编译器有SDT、ADS、IAR、KEIL和GCC等,其中SDT和ADS均为ARM公司开发,ADS为SDT的升级版。本移植采用的编译器本移植采用的编译器ADS1.2(ARMDeveloperSuite)集成开发环境。-14-2.3 工作状态的选择工作状态的选择ARM处理器工作状态处理器工作状态自从ARM7TDMICore以后,体系结构中具有T变种的ARM处理器核可以工作在以下两种状态。ARM状态ARM状态下执行字对准的32位ARM
9、指令;Thumb状态Thumb状态下执行半字对准的16位Thumb指令。两种工作状态可以进行相互切换。本移植采用的工作状态本移植采用的工作状态本移植只实现COS-II在ARM状态下工作。-15-2.4 工作模式的选择工作模式的选择(1)ARM处理器工作模式处理器工作模式与用户模式类似,但具有可以直与用户模式类似,但具有可以直接切换到其它模式等特权接切换到其它模式等特权支持操作系统的特权任务支持操作系统的特权任务 系统系统 (sys)(sys)未定义指令异常时进入此模式未定义指令异常时进入此模式支持硬件协处理器的软件支持硬件协处理器的软件仿真仿真 未定义未定义(und)(und)在在ARM7TD
10、MIARM7TDMI没有大用处没有大用处用于支持虚拟内存和存储用于支持虚拟内存和存储器保护器保护 中止中止 (abt)(abt)复位和软件中断时进入此模式复位和软件中断时进入此模式操作系统保护代码操作系统保护代码 管理管理 (svc)(svc)IRQIRQ异常响应时进入此模式异常响应时进入此模式用于通用中断处理用于通用中断处理 中断中断 (irq)(irq)FIQFIQ异常响应时进入此模式异常响应时进入此模式支持高速数据传输及通道支持高速数据传输及通道处理处理 快中断快中断(fiq)(fiq)不能直接切换到其它模式不能直接切换到其它模式正常程序工作模式正常程序工作模式 用户用户 (usr)(u
11、sr)备注备注说明说明处理器模式处理器模式-16-2.4 工作模式的选择工作模式的选择(2)特权模式特权模式与用户模式类似,但具有可以直与用户模式类似,但具有可以直接切换到其它模式等特权接切换到其它模式等特权支持操作系统的特权任务支持操作系统的特权任务 系统系统 (sys)(sys)未定义指令异常时进入此模式未定义指令异常时进入此模式支持硬件协处理器的软件支持硬件协处理器的软件仿真仿真 未定义未定义(und)(und)在在ARM7TDMIARM7TDMI没有大用处没有大用处用于支持虚拟内存和存储用于支持虚拟内存和存储器保护器保护 中止中止 (abt)(abt)复位和软件中断时进入此模式复位和软
12、件中断时进入此模式操作系统保护代码操作系统保护代码 管理管理 (svc)(svc)IRQIRQ异常响应时进入此模式异常响应时进入此模式用于通用中断处理用于通用中断处理 中断中断 (irq)(irq)FIQFIQ异常响应时进入此模式异常响应时进入此模式支持高速数据传输及通道支持高速数据传输及通道处理处理 快中断快中断(fiq)(fiq)不能直接切换到其它模式不能直接切换到其它模式正常程序工作模式正常程序工作模式 用户用户 (usr)(usr)备注备注说明说明处理器模式处理器模式u 说明说明 1.1.除用户模式外,其它模式称为除用户模式外,其它模式称为特权模式特权模式;2.ARM2.ARM内部寄存
13、器和一些片内外设在硬件设计内部寄存器和一些片内外设在硬件设计 上只允许(或可选为只允许)特权模式下访问;上只允许(或可选为只允许)特权模式下访问;3.3.特权模式可以自由的切换处理器模式,而用户特权模式可以自由的切换处理器模式,而用户 模式不能直接切换到别的模式。模式不能直接切换到别的模式。-17-2.4 工作模式的选择工作模式的选择(3)异常模式异常模式与用户模式类似,但具有可以直与用户模式类似,但具有可以直接切换到其它模式等特权接切换到其它模式等特权支持操作系统的特权任务支持操作系统的特权任务 系统系统 (sys)(sys)未定义指令异常时进入此模式未定义指令异常时进入此模式支持硬件协处理
14、器的软件支持硬件协处理器的软件仿真仿真 未定义未定义(und)(und)在在ARM7TDMIARM7TDMI没有大用处没有大用处用于支持虚拟内存和存储用于支持虚拟内存和存储器保护器保护 中止中止 (abt)(abt)复位和软件中断时进入此模式复位和软件中断时进入此模式操作系统保护代码操作系统保护代码 管理管理 (svc)(svc)IRQIRQ异常响应时进入此模式异常响应时进入此模式用于通用中断处理用于通用中断处理 中断中断 (irq)(irq)FIQFIQ异常响应时进入此模式异常响应时进入此模式支持高速数据传输及通道支持高速数据传输及通道处理处理 快中断快中断(fiq)(fiq)不能直接切换到
15、其它模式不能直接切换到其它模式正常程序工作模式正常程序工作模式 用户用户 (usr)(usr)备注备注说明说明处理器模式处理器模式u 说明说明 1.1.这五种模式称为这五种模式称为异常模式异常模式;2.2.可以通过程序切换进入外,也可由特定的异常进入;可以通过程序切换进入外,也可由特定的异常进入;3.3.当特定的异常出现时,处理器进入相应的模式;当特定的异常出现时,处理器进入相应的模式;4.4.每种异常模式都有一些独立的寄存器;每种异常模式都有一些独立的寄存器;5.5.系统上电或复位后自动进入系统上电或复位后自动进入管理管理(SVC)(SVC)模式,模式,本移植本移植 COS-IICOS-II
16、的任务正常是运行在的任务正常是运行在管理模式管理模式。-18-章节目录章节目录章节目录章节目录3.3.操作系统移植操作系统移植 3.1 BootLoader3.1 BootLoader总体流程图总体流程图 3.2 3.2 BootLoader初始化初始化步骤步骤 3.3 3.3 编写编写最小启动代码最小启动代码 u 内容提要内容提要 -19-3.操作系统移植操作系统移植内容提要内容提要 本章首先介绍了本章首先介绍了BootLoader BootLoader 所必需实现所必需实现的功能;然后采用流程图方式介绍了的功能;然后采用流程图方式介绍了BootLoaderBootLoader编写的步骤;接
17、着用图示的方法介编写的步骤;接着用图示的方法介绍了最小启动代码的编写。绍了最小启动代码的编写。-20-3.1 BootLoader总体流程图总体流程图 3.1.1 3.1.1 总体流程图总体流程图硬件初始化stage1123设置中断向量表最小硬件初始化最小启动代码RTOS运行环境初始化RTOS初始化stage2456RTOS初始化启动RTOS硬件抽象层初始化软件初始化用户程序7用户程序初始化-21-3.2 BootLoader初始化初始化步骤步骤(1)3.2.1 3.2.1 硬件初始化阶段硬件初始化阶段123最小硬件初始化最小启动代码stage1设置中断向量表RTOS运行环境初始化u 中断向量
18、表放在上电后映射在从0 x00000000开始的8*4个字节的连续存储空间中;u 其作用是指定了各种异常中断处理程序的入口地址。设置中断向量表 -22-3.2 BootLoader初始化初始化步骤步骤(2)3.2.1 3.2.1 硬件初始化阶段硬件初始化阶段23最小硬件初始化最小启动代码设置中断向量表RTOS运行环境初始化stage11u 禁用看门狗定时器;u 屏蔽所有中断;u 设定CPU的时钟频率;u 初始化存储器;u 分配各种模式下的栈空间。最小硬件初始化 -23-3.2 BootLoader初始化初始化步骤步骤(3)3.2.1 3.2.1 硬件初始化阶段硬件初始化阶段123最小硬件初始化
19、最小启动代码设置中断向量表RTOS运行环境初始化stage1u 为RTOS运行准备合适的RAM;u 呼叫RTOS主(Main)程序。RTOS运行环境初始化 -24-3.2 BootLoader初始化初始化步骤步骤(4)3.2.2 RTOS3.2.2 RTOS初始化阶段初始化阶段456硬件抽象层初始化RTOS初始化启动RTOSstage2u 系统cache、总线设置;u 中断及中断处理程序初始化;u I/O端口配置;u 初始化定时器;u 对RTOS所需的其它设备初始化。硬件抽象层初始化 -25-3.2 BootLoader初始化初始化步骤步骤(5)456硬件抽象层初始化RTOS初始化启动RTOS
20、stage2u RTOS内核启动参数初始化;u RTOS扩展部件初始化。RTOS初始化 3.2.2 RTOS3.2.2 RTOS初始化阶段初始化阶段-26-3.2 BootLoader初始化初始化步骤步骤(6)3.2.2 RTOS3.2.2 RTOS初始化阶段初始化阶段456硬件抽象层初始化RTOS初始化启动RTOSstage2u 运行优先级最高的就绪任务;u 启动RTOS时钟中断。启动RTOS -27-3.2 BootLoader初始化初始化步骤步骤(7)3.2.3 3.2.3 用户程序初始化阶段用户程序初始化阶段7用户程序用户程序初始化u 用户程序正常运行所进行的初始化。用户程序初始化 -
21、28-3.3 编写最小启动代码编写最小启动代码3.3.1 3.3.1 设置中断向量表设置中断向量表向量地址向量地址异常中断类型异常中断类型转移指令转移指令0 x0000001CFIQLDRPC,=FIQHandler0 x00000018IRQLDRPC,=IRQHandler0 x00000014ReservedNOP0 x00000010DataAbortLDRPC,=DabortHandler0 x0000000CPrefechAbortLDRPC,=PabortHandler0 x00000008SWILDRPC,=SWIHandler0 x00000004UndefinedInstr
22、uctionLDRPC,=UndefHandler0 x00000000ResetBResetHandleru知识点讲解知识点讲解u中断向量表结构特点中断向量表结构特点n中断向量表中每种异常只分配中断向量表中每种异常只分配4 4个字节,所以不能放下个字节,所以不能放下整个异常中断处理程序,只能放一条跳转指令,用以跳整个异常中断处理程序,只能放一条跳转指令,用以跳转到相应的异常中断处理程序。转到相应的异常中断处理程序。u设置中断向量表示意代码分析设置中断向量表示意代码分析-29-3.3 编写最小启动代码编写最小启动代码知识点讲解知识点讲解禁用看门狗定时器和屏蔽所有中断为了避免初始化过程被打断,需
23、要禁用看门狗定时器和屏蔽所有中断。禁用看门狗定时器和屏蔽所有中断示意代码分析3.3.2 3.3.2 最小硬件初始化最小硬件初始化 WTCONEQU0 x01d30000;看门狗定时器控制寄存器LDRr0,=WTCONLDRr1,=0 x00000000;禁用看门狗定时器STRr1,r0INTMSKEQU0 x01e0000c;中断屏蔽寄存器LDRr0,=INTMSKLDRr1,=0 x07ffffff;屏蔽所用外部中断STRr1,r0-30-3.3 编写最小启动代码编写最小启动代码知识点讲解知识点讲解S3C44B0X时钟发生器组成主时钟源有两个:一个是XTAL0和EXTAL0连接的外部晶振,另
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- BootLoader 设计 实现
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。