应用程序验证机制允许引导加载程序在执行应用程序之前对其进行验证。可采用三种方法支持不同级别的代码规模和安全性:
- None:不验证应用程序,认为应用程序始终有效。可通过外部事件强制使用引导加载程序模式。不推荐。
- 复位向量:如果复位向量不同于 0xFFFF(已擦除状态),则认为应用程序有效并执行应用程序。
- CRC_CCITT:计算整个应用程序映像的 CRC CCITT,并将结果与期望值进行比较。请注意,基于 BSL 的协议(请参阅节 2.4.2.1)使用 CRC CCITT,因此在使用基于 BSL 的协议时建议使用此验证方法。此外,这个方法不考虑修改闪存内容(例如数据记录)的应用程序。当执行这种类型的应用程序时,存储在闪存中的 CRC CCITT 会变得不正确,即使可能有效,引导加载程序也不会允许应用程序运行。开发可以修改闪存的应用程序时,建议使用复位矢量验证方法。
请注意,验证方法可以防止执行损坏的应用程序,但是不能确保应用程序的完整性和功能,这是用户的责任。如果应用程序不具有预期的功能,则仍可以使用硬件进入序列来恢复 MSP430 器件。