适于OMAP的多级启动Boot Loader

时间:2010-04-07来源:网络
(3)Flasher
 Flasher过程主要负责向Flash中烧写编译好的程序目标码,主要包括Boot Loader、MPU、DSP、FPGA等部分。采用RS232串行端口与主机相连,实现程序目标码的下载。传输协议采用大多数编译器都支持的Intel Hex格式[5]。Intel Hex格式采用ASCII字符表示方式,这样程序目标码的每个字节需要用2个ASCII字符来表示,包含冗余信息较大,而且Intel Hex格式仅含目标码的地址信息与具体内容,而无法区分目标码的类别,因而需要对Intel Hex进行扩展,以降低冗余并支持更多的操作。扩展的Hex不使用ASCII字符,而直接使用原数据格式,这样可以降低一半数据量。为了与Intel Hex格式有所区分,采用“;”作为前缀标识,格式如表1所示。同时对数据类型进一步扩展,用以区分各种目标码类别,如表2所示。

可以看出,表2中仅包括擦除各种类型目标码的指令,而没有包含写入目标码时区分类别的具体指令,这是因为写入时各种不同类型的目标码可以直接通过地址来区分,每种类型目标码都有自己单独的地址段,相互之间没有交叉。Flasher流程如图3所示,通过解析Hex记录格式,来判断命令类型,从而进行相应的操作。其中校验模式用于验证Flash中所存储的程序代码是否与串行端口上收到的数据一致。所有程序更新结束之后,通过重新启动命令复位OMAP芯片,使整个系统重新启动。

  
3 拷贝程序耗时对比测试
采用Intel公司RD48F3000P0ZBQ0 Flash存储器以及三星K4M56163PG移动版SDRAM与OMAP5910相连,组成OMAP5910运行所需的最小系统,OMAP运行频率144 MHz。分别采用传统启动方式(程序在Flash中运行)以及本文所述的启动方式(程序在RAM中运行)从Flash中拷贝相同长度的数据到SDRAM中,测试其耗时。每次拷贝数据量选取64 KB~8 192 KB,每种数据量每种方式测试5次,具体时间如表3所示,其中表3(a)为程序在RAM中运行时的耗时,表3(b)为程序在Flash中运行时的耗时。由表中数据对比可以看出,拷贝数据量较大时,本文中所述的RAM拷贝方式优势比较明显,有大约20%的提高,对于目前的嵌入式操作系统来说,基本内核的代码量都比较大,因而采用本文所述的方式能够带来比较大的耗时改善。

 OMAP作为一种整合了ARM控制能力与DSP数据处理能力的双核心处理器已经广泛应用于各种嵌入式设备中,但大多数OMAP处理器通过外部Flash启动,既浪费时间又有较高风险。本文针对OMAP启动过程中的这一缺陷,设计的多级启动Boot Loader较之传统方式有较大的性能改善,目前已在数字集群手持终端、网络多媒体可视电话等项目中得到成功应用,并取得很好的效果。

1 2

关键词: Boot Loader 启动 多级 OMAP 适于 通信协议

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版