Professionaler(自由人)的专栏

open our's source! open our's code! open our's heart! make Professionaler! Are you ready? come on ....

BootLoader代码简析

--------Professionaler(自由人)

定义:首先,BootLoader是一段单独的程序代码(功能相当与PC机的BIOS),它存放于目标平台的非易失存储介质中,如ROMFlash

作用:在开发CE的过程中,它主要用于启动硬件和下载IMAGE到目标板上,并有一定的监控作用。

流程:(图传不上来)

分析:

Main函数 BootLoader里面的主函数,而BootloaderMain又是Main函数里面主要个函数,

先就BootloaderMain里面的函数做简单的介绍:(只分析流程不做代码评估)

1KernelRleocate :主要功能是OS Link Fill   ROM  IMAGEpToc .实际上BootLoad所做的工作就是按照pToc定义的数据结构来复制内存块。

2.接着调用OEMDebugInit函数,在这个函数里面主要做的工作是全局函数指针变量的初始化(包括错误报告,内存数据校验,通知多个BIN文件下载)。其中OEMInitDebugSerial函数用于初始化串口,以便调试信息通过UART来互交。

3. 下一个函数OEMPlatformInit主要初始化系统的时钟,中断,驱动,I/O口等。初始化DOC、自定义的菜单及升级IMAGE的代码也可以放到这函数里面。

4.接下来是OEMPreDownload 通过不同的检测判断,取得要DOWNLOAD IMAGE的方式

如果TOC里面已经存在可用的并通过数据校验的IMAGE就直接跳转到OS开始执行的地址,开始启动OS ,反之通过某个途径(USB  SD   硬盘等设备路径)来DOWNLOAD IMAGE 并检查数据。

5OEMLaunch:这个函数主要功能就是launch the image

总结:

这部分每家有自己不同的做法,架构自然千齐百怪,但最终目的可以归一。

 

阅读更多
上一篇SD卡驱动评估最新数据
下一篇SD卡驱动开发随笔(1)
想对作者说点什么? 我来说一句

最小bootloader的实现,完整源代码

2010年05月12日 463KB 下载

STM32F103 Bootloader代码

2016年12月01日 1.52MB 下载

STL简析入门基础学习

2011年05月16日 61KB 下载

简析搜索引擎实现原理

2010年12月13日 535KB 下载

迅达电梯3300ap常见故障

2012年02月17日 86KB 下载

车载控制器Bootloader开发指南

2017年09月05日 1.99MB 下载

CAPL编写的基于UDS的bootloader

2018年03月29日 65KB 下载

没有更多推荐了,返回首页

关闭
关闭