闪存引导器的关键作用

ZDNet软件频道 时间:2003-07-07 作者:ZDNet China |  我要评论()
本文关键词:embedded
在使用可重写的闪存(flash rom)作为程序代码存储器的嵌入式设备中,闪存引导装载程序扮演了一个至关重要的角色。让我们看看闪存引导装载程序必须执行的特殊动作。
本文译自Builder.com,未经许可请勿转载在使用可重写的闪存(flash rom)作为程序代码存储器的嵌入式设备中,闪存引导装载程序扮演了一个至关重要的角色。引导装载程序是系统重启后CPU首先执行的代码,因此这些代码必须初始化设备。它还必须可以对闪存的其它部分进行编程,包括应用程序代码(在闪存引导区之外的块中,有可能被破坏)。由于引导装载程序的作用至关重要,引导装载程序常常位于闪存中特定的引导区中(这里有特定的硬件保护来防止误擦除和破坏)。这就保证了引导装载程序不会在产品正常寿命之内不会发生变化。让我们看看闪存引导装载程序必须执行的特殊动作。

初始化硬件

在系统重启之后,引导装载程序必须立即执行基本硬件初始化。这可能包括对RAM的访问使能,设置时钟和PLL(译者注:Phase Lock Loop锁相环,用于控制时钟的相位和频率),并配置其它关键的外围设备。你可以让引导装载程序只执行最重要的初始化工作、其它初始化交给可以升级的应用程序来完成——这是一个好主意。

检查校验和

完成硬件初始化之后,你就可以运行应用程序代码了。但是在启动过程之中,闪存中的部分数据可能由于被破坏而发生错误。因此引导装载程序还应该计算应用程序代码的校验和(CRC,循环冗余校验码)并把它与保存在应用程序代码中的校验字对比。为此,你需要使用(或者自己编写)一个程序来计算并保存闪存映像文件的校验和。请确保你把校验和保存到偏移应用程序代码一个固定量的地址上,这样引导装载程序可以找到它。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134