新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于S3C2440的WinCE Bootloader的分析与设计

基于S3C2440的WinCE Bootloader的分析与设计

作者: 时间:2011-03-08 来源:网络 收藏

OEMPlatformInit()函数是BootLoader的最重要的OEM函数,所有与BootLoader所需硬件功能有关的目标平台板级外设如以太网接口、Fl-ash存储器等都在这里进行初始化,包括CPU芯片内置的外设。它结束后就开始下载工作了。函数代码如下:
g.JPG
OEMPreDownload():所有在硬件初始化完成以后、开始下载操作系统镜像之前所需要处理的任务都可以放在该函数完成。它主要任务是以太网下载前的准备工作。DownloadImage()的任务是从远程开发机上下载操作系统镜像到RAM。它通过调用OEMReadData()从下载端口读取操作系统镜像的数据,在本文的EBoot中,该函数主要负责从以太网端口读取操作系统镜像数据;它还调用OEMShowProgress()函数用来向用户显示BootLoader下载操作系统镜像时的下载状态。OEMMapMemAddr()函数用于当下载得到的操作系统镜像自身所记录的目的地址是Flash存储设备时该OEM函数要负债将镜像的数据以重定位的方式暂存到RAM内存缓冲区中。
OEMLaunch()是最后一个被BootLaderMain()函数调用的。它的主要功能是实现目标系统程序执行流跳转。无论BootLoader是通过以太网端口下载操作系统镜像还是从本地读取操作系统镜像到内存,都要依靠该函数将程序的执行流从BootLoader转移到Windows CE的操作系统。Downloadlmage()函数下载的操作系统镜像是暂存在RAM中的,所以我们还需要在OEMLaunch()函数指令执行跳转之前保存下载所得的操作系统镜像以及用户配置数据到Flash,以便系统从新启动或者复位时可以直接从本地存储读取镜像数据。

本文引用地址:https://www.eepw.com.cn/article/150979.htm

3 配置文件
Bootloader源代码编译后会产生一个名为eboot.exe的可执行文件,但写入Flash的Bootloader是一个二进制的映像文件,也就是.bin文件或.nbO文件,所以需要把eboot.exe文件转换成.bin文件或.nbO文件。

g.JPG
4 烧写Bootloader
配置好了之后,在PC机中编译产生了Eboot.bin文件,把Bootloader烧写到目标机中。利用三星公司的sjf2440工具烧写,使用JTAG实现下载。BootLoader下载后再通过以太网口把操作系统内核镜像文件下载到目标机中。下载镜像所使用的软件是DNW,DNW是三星公司为S3C2 440芯片配置的一款专用软件,它可以在Windows下通过USB方式烧写Flash。如图2所示,内核镜像已下载到NandFlash中。

i.JPG

5 结语
BootLoader的设计和实现是一个非常复杂并且重要的过程,一个好的Bootloader可以给产品的开发调试工作带来许多便利。本文从源代码人手详细分析了Wince Bootloader启动的两个阶段以及配置文件信息。实验达到了预期的效果,为项目后续的开发奠定了良好的基础。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 3 4 下一页

关键词: 嵌入式

评论


相关推荐

技术专区

关闭