通过bin文件形式实现EBOOT的读取、下载LOGO

时间:2011-09-04

  BOOTLOADER的主要作用是将操作系统运行时映像加载到内存,并跳转到OS的启动程序处。它的这一作用跟前一篇介绍的NBOOT的作用完全一致。BOOTLOADER获取运行时映像(一般对应的文件名为NK)一般有两种方法。它可以通过有线连接的方式象网络(Ethernet)﹑USB或串口从外部NK。它可以从本地的存储器(Flash﹑Hard)中加载NK。同城通过Ethernet操作系统映像故将其称为EBOOT。在开发的过程中使用EBOOT,可以提高开发率。通过使用EBOOT,你可以很快的NK到目标设备中。一般的WINCE系统都是在EBOOT阶段初始化LCD,所以要想显示自己的LOGO就需要在EBOOT阶段将LOGO内容显示出来,读取LOGO的方式可以和从存储器中读取NK一样而利用Flash编程工具或者通过JTAG则很慢。在一些产品终发布时,EBOOT是可以去掉的,但也有一些则必须包括BOOTLOADER像X86平台就是如此。  ﹑

  在EBOOT阶段LOGO保存到FLASH中可以采用bin文件的方式,bin文件中的内容可以参考eboot.bin和nk.bin。

  根据\WINCE500\PUBLIC\COMMON\OAK\DRIVERS\ETHDBG\BLCOMMON下blcommon.c文件中各函数分析eboot.bin文件的结构:

  Eboot.bin的前7个字节("B000FF\x0A")用来判断是否为WINCE的bin文件,接下边分别是4字节映像的起始地址dwImageStart、4字节映像大小dwImageLength,接着分别是4字节接收地址dwRecAddr、4字节接收长度dwRecLen、4字节接收检验和dwRecChk,接下来是eboot.nb0压缩后的数据,即eboot运行时的数据,查看eboot.bin文件dwRecLen值为4,即根据dwRecChk后边的4字节数据得到dwRecChk,VerifyChecksum()函数是将这4字节数据相加得到dwRecChk。

  Offset          0   1   2   3   4   5   6   7    8   9   A   B   C   D   E   F

  00000000   42 30 30 30 46 46 0A 00  80 03 80 88 20 07 00 00  

  00000010   80 03 80 04 00 00 00 E2  01 00 00 9B 5C 01 EA 40  

  00000020   80 03 80 08 00 00 00 F1  02 00 00 45 43 45 43 F0  

  00000030   67 0A 80 48 80 03 80 04  00 00 00 DD 01 00 00 F0  

  9B 5C 01 EA 正好是我的eboot.nb0的起始4个字节。

 

   所以只要将图片的24位数据再加上前边的结构就可以生成一个bin文件,便可以通过USB或者Ethernet并被eboot正确识别并处理。



  
上一篇:用微控制器驱动显示器
下一篇:Eclipse IDE下调试工具TRACE32的使用

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料