原创 AT91SAM9261 EBOOT 函数调用概述

2010-4-11 21:40 2170 2 2 分类: MCU/ 嵌入式

 


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的执行脉络已经相关函数所在的文件的目录


 



 
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
2
关闭 站长推荐上一条 /3 下一条