关闭

BootLoader代码简析

标签: imagedownload数据结构工作osflash
2404人阅读 评论(0) 收藏 举报
分类:

--------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

总结:

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

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:43707次
    • 积分:564
    • 等级:
    • 排名:千里之外
    • 原创:15篇
    • 转载:1篇
    • 译文:0篇
    • 评论:22条
    最新评论