ZHCUC78A August 2024 – September 2024 AWRL1432 , AWRL6432 , IWRL1432 , IWRL6432 , IWRL6432AOP
从 SFLASH 引导应用程序通常由 ROM 引导加载程序 (RBL) 完成。RBL 将查看 SFLASH,在读取到有效的映像标头后,将该映像加载到 RAM 中并启动应用程序。但是,RBL 的局限性在于它只能引导一个应用程序,不能灵活更改该应用程序,因为如果不修改板上的 SOP 设置,它是无法配置的。如需对应用程序进行更改,需要将器件设置为刷写模式,将新的应用程序加载到 SFLASH,然后返回到功能模式,重新启动引导过程。本节讨论的辅助引导加载程序具有更高的灵活性,可以更为轻松地实现二进制更新,让用户能够更灵活地控制加载内容和加载方式。
辅助引导加载程序 (SBL) 是一种允许通过串行接口对 SFLASH 进行“无线”二进制更新并随后执行新应用程序的工具。该程序允许在 SFLASH 中修改二进制,而无需切换 SOP 模式。它还允许用户刷写多个映像:一个主应用程序映像和一个备份映像,以防无法加载主映像。主映像由 SBL 应用程序通过 UART 直接加载到 SFLASH 中,然后引导应用程序。但是,可以修改 SBL 以使用 SPI、CAN 和 LIN 等其他接口。
与 RBL 不同的是,SBL 只专注于使用应用程序代码引导器件,而不会同时初始化器件。它还可以在 SFLASH 的多个分区中加载映像,而 RBL 只在具有有效映像的第一个分区加载映像。SBL 也是可配置的,因为它是由 RBL 从闪存加载的应用程序,而不像 RBL 那样在器件上进行 ROM。SDK 中 SBL 示例的一些限制包括不支持映像验证,并为没有主机控制的系统增加了复杂性。不过,SDK 中提供了 SBL 源代码,用户可以对其进行修改以解决这些限制,同时还可添加加密等功能,从而满足用例要求。