MCU可提供一种方便的方式来更新flash内容以进行错误修复bugfix或产品更新update。可以使用以下任何模式更新flash内容:
•系统内编程(ISP,In-System Programming):用于使用内部bootloader程序和UART/SPI对片上闪存进行编程program或重新编程reprogram。
•应用程序内编程(IAP,In-Application Programming):用于按照最终用户应用程序代码的指示对片上闪存执行擦除erase和写入write操作。
主处理器更新LPC86x的一个案例。主引导加载程序(primary bootloader)是驻留在微控制器引导ROM块中的firmware固件,在通电和复位时执行。在执行引导ROM之后,执行辅助引导加载程序(SBL,secondary bootloader),然后执行最终用户应用程序。防止这种情况:当固件更新失败时,闪存中没有可执行代码。SPI SBL支持双固件更新:新固件不会覆盖旧固件的位置。因此,如果固件更新失败,旧固件仍然有效。比如主处理器更新LPC86x的架构图: