欢迎来到天天文库
浏览记录
ID:45204828
大小:2.41 MB
页数:42页
时间:2019-11-10
《手持式移动设备嵌入式WinCE开发(4.1)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、手持式移动设备嵌入式WinCE开发4WinCE映像文件下载第章本章目标理解BootLoader在映像文件下载过程中的作用掌握BootLoader烧写方法和原理掌握通过PB下载内核映像的方法4.1BootLoader概述BootLoader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,可以完成初始化硬件设备、建立内存空间的映射图、和内核镜像建立通讯通道和调试通道等等工作。(ARM2410的BootLoader分为Nboot和eboot)BootLoader是严重依赖于硬件,必须专门定制。Bootloader实现的功能都无外乎两个:启动内核镜像和下载内核镜像启动
2、加载(Bootloading)模式:即Bootloader自动加载系统的过程,整个过程并没有开发者和用户的介入。在正常条件下,必须保证这种启动方式的有效,特别是在嵌入式产品发布的时侯,BootLoader必须直接工作在这种模式下以保证系统的正常运行。4.1BootLoader概述下载(Downloading)模式:在这种模式下,目标机上的BootLoader将通过串口连接或网络连接等通信手段从主机(Host)下载内核等文件。从主机下载的文件通常首先被BootLoader保存到目标机的RAM中,然后再被BootLoader写到目标机上的FLASH类固态存储设备中。BootL
3、oader的这种模式通常在第一次安装内核与根文件系统时被使用;此外,以后的系统更新也会使用BootLoader的这种工作模式。工作于这种模式下的BootLoader通常都会向它的终端用户提供一个简单的命令行接口,并可以执行简单的交互。4.1BootLoader概述ARM2410上的WinCE系统和其他RTOS不同,它具有两级Bootloader来引导内核镜像。在Bootloader阶段,比起其他系统Bootloader来讲要复杂的多。4.2烧写BootloaderWinCE所需的Bootloader有多个镜像文件组成,分别为:2410loader.Bin————NBOOT
4、,烧写至Block0。Tocblock1————TOC,烧写至Block1。Eboot.nb0————EBOOT,烧写至Block2。Logo.bin————启动时的LOGO镜像,烧写至Block10,可省略。Nboot的烧写Nboot(NandFlashBootloader)是2410板子上WinCE的第一级Bootloader,位于NandFlash的Block0。主要负责初始化Flash,读取TOC等等工作,最后将Eboot内容拷贝到RAM中,把CPU执行权交给Eboot接管。Nboot将Eboot加载到2410的RAM,Eboot将NK.bin(内核镜像文件)加载
5、到2410.4.2烧写Bootloader使用SJF来把Nboot部分Bootloader烧写在第0个block中。使用方法如下:首先,修改BIOS中计算机并口的选项,设置并口为“378”模式。在平台和PC之间连接好JTAG(并口)下载线,并开始安装Giveio(JTAG口)驱动。在WinXP下安装Giveio驱动步骤如下:复制giveio.sys到C:WINDOWSsystem32drivers目录下。在控制面板选择“添加硬件”4.2烧写Bootloader4.2烧写Bootloader4.2烧写Bootloader4.2烧写Bootloader4.2烧写Boot
6、loader4.2烧写Bootloader4.2烧写Bootloader4.2烧写Bootloader4.2烧写Bootloader接下来就可以进行Nboot的烧写了。烧写的格式是:sjf2410/f:2410loader.bin烧写TOCTOC(TableOfContent)是整个NandFlash中存储内容的一个列表,这里面储存了有关启动和系统内核的一些相关存储信息,需要写在NandFlash的block1中,由Nboot里的函数读取。之后Nboot会按照读取的内容进行配置和跳转到不同的地址。TOC的烧写格式sjf2410/f:tocblock1注意TOC是被烧写到b
7、lock1的。4.2烧写BootloaderEbootEboot(EthernetBootloader)是一种高级Bootloader,可以理解为一个伪的KernelImage,位于从NandFlash的Block2(512KB)开始部分空间。它主要负责各个设备的初始化,内存地址映射,文件系统,网络系统驱动和加载内核镜像的相关准备工作,已经是比较复杂的Bootloader了。使用Eboot下载内核,Eboot执行完毕之后可以通过控制台来下载真正的KernelImage,并跳转到Kernel来执行,这时系统就引导起来了。在执行过
此文档下载收益归作者所有