(part3)-BootLoader中的main函数

(part3)-BootLoader中的main函数

ID:45030122

大小:251.16 KB

页数:31页

时间:2019-11-08

(part3)-BootLoader中的main函数_第1页
(part3)-BootLoader中的main函数_第2页
(part3)-BootLoader中的main函数_第3页
(part3)-BootLoader中的main函数_第4页
(part3)-BootLoader中的main函数_第5页
资源描述:

《(part3)-BootLoader中的main函数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、BootLoader中的main函数BootLoader中的main函数下面是SMDK2410(SamsungMCUDevelopmentKit三星开发板)中的BootLoader中的main函数实现代码:voidmain(void){//清空LEDOEMWriteDebugLED(0,0xF);//通用BootLoader(blcommon)主入口BootloaderMain();//注意,在此调用了BootloaderMain函数,并且没有返回值SpinForever();}BootLoade

2、r中的main函数(1)BLCOMMON模块函数下面列举出BLCOMMON中的控制函数并分析它们,这些函数在Blcommon.h中声明,代码实现在Blcommon.lib里:OEMDebugInit函数:在运行BootloaderMain程序后,将首先调用OEMDebugInit函数,它用来初始化调试信息的I/O设备,最常见的是串口设备。由于RS232协议简单性,在系统没有启动前对串口初始化较适用。在OEMDebugInit里,又通常调用OEMInitDebugSerial函数来初始化串口。Boo

3、tLoader中的main函数OEMPlatformInit函数OEM层的初始化函数,它主要负责目标机上的硬件初始化。在汇编阶段只是初始化了很小一部分硬件,这是由于BootLoader要求处理时间短,因此在汇编阶段的硬件初始化是十分简单的。所以有必要用高级语言完成对目标机的硬件设置,这包括具体的时钟设置、驱动和传输设备接口的初始化。BootLoader中的main函数OEMPreDownload函数在下载操作系统前执行这个函数,它可以用来设置如何进行Image文件下载。例如,可以设置成从网络下载或

4、者跳过下载直接加载Flash中的Image文件。BootLoader中的main函数DownloadImage这个函数将执行把操作系统Image文件下载到目标机的操作。OEMLaunch函数这个函数将PC指针直接设置到Image文件的开始地址,它是启动操作系统前BootLoader的最后一个函数,没有返回值。在此之后,BootLoader就消失了。BootLoader中的main函数(2)下载模块函数下载函数是由DownloadImage函数调用的。 下面列出下载模块函数并解释它们。OEMRea

5、dDataBLCOMMON调用这个函数从文件的传输器中读取数据。读者可以参看PublicCommon OakEthdbgEbootEbsimp.c文件中网络传输的例子BootLoader中的main函数OEMShowProgressBLCOMMON在下载操作系统镜像文件的时候调用这个函数。在这个函数中,可以实现通知用户下载状态的各种手段比如可以用LED灯交替闪烁或者向主机的串口发送进度信息等。BootLoader中的main函数OEMMapMemAddr如果目标系统的需求是要能支持把操作

6、系统的镜像文件下载到FLASH中去,就必须调用本函数。由于FLASH操作速度比RAM慢,在片擦除的时候甚至会使读写操作停滞,这样在每次下载操作系统镜像文件时,由于FLASH的擦写都会使下载停滞。而OEMMapMemAddr使用了RAM缓冲操作系统镜像文件的方式,使得用户在下载操作系统镜像文件时感觉不到停滞,这个函数将FLASH地址映射到RAM地址,这样向FLASH写的数据实际上先被缓冲到RAM中,然后再写到FLASH中。BootLoader中的main函数(3)FLASH编程模块FLASH函数用于

7、对不同的FLASH存储器进行编程。开发人员需要实现微软公司提供的框架里的函数。OEMIsFlashAddr函数判别地址是否为有效的FLASH地址。注意,这里的FLASH地址与平台相关的,如S3C2410芯片和PXA255芯片的FLASH地址是不一样的,即便是同一款CPU,由于硬件结构的不同(FLASH大小、位置等)FLASH地址也不尽相同。BootLoader中的main函数OEMStartEraseFlash函数BLCOMMON在获取FLASH的实际大小和开始地址后,将立即调用这个函数。这个函数

8、将进行FLASH的擦除工作。BootLoader中的main函数OEMContinueEraseFlash函数BLCOMMON在下载操作系统镜像文件的过程中可以调用这个函数。当FLASH擦除发生错误的时候,可以用这个函数来重复擦除操作,并且进行校验。BootLoader中的main函数OEMFinishEraseFlash函数FLASH擦除完成时,BLCOMMON调用这个函数。这个函数将校验所有的擦除工作是否完成。BootLoader中的main函数OEMWriteFlash函数调

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。