bsp源文件为:AT91SAM9261EK_CE6.0_Source_BSP_v1.0.3(从官方网站下载)
Eboot的程序还是很复杂的,用了一天的时间整理整个Eboot的执行脉络。
主要的内容就是StartUp()和BootloaderMain()这两个函数,StartUp()已经在我的博客中说过了:
http://blog.ednchina.com/tractor/1222934/message.aspx
今天主要是讲讲BootloaderMain()和Eboot的执行脉络,以后再慢慢解析。
BootloaderMain()是BLCOMMON支持库中的接口函数。
BLCOMMON是一个库,其实现代码位于%_WINCEROOT%\Public\Common\Oak\Drivers\
Ethdbg\Blcommon目录下。它实现了Windows CE BootLoader的基本框架。这个库的工作为:将bootloader加载到RAM中执行、解压缩.bin文件、校验硬件平台的完整性、对加载的进度进行跟踪。在BLCOMMON阶段执行的过程中,主要使用OEM函数集。
BLCOMMON库的入口点为BootloaderMain函数,它有Startup汇编函数完成后跳转至该入口。BLCOMMON库将被BootLoader的程序链接在一起。在系统启动时,CPU首先执行StartUp函数,这是个由汇编实现的函数。StartUp函数主要的功能为:设置CPU工作频率、关闭看门狗、设置cache、设置RAM的刷新率、填写内存控制寄存器(通知CPU有效的数据总线引脚数)等。在StartUp完成任务后,就跳转到BootLoaderMain函数中。这个是由C语言编程实现的函数入口点。
关于BootloaderMain()的详细描述:http://blog.ednchina.com/tractor/1299046/message.aspx
附件是EBOOT的执行脉络已经相关函数所在的文件的目录
文章评论(0条评论)
登录后参与讨论