如何从外部闪存STM32L4加载程序

时间:2018-08-27 12:42:57

标签: embedded stm32 electronics ota stm

大家好,                 我正在尝试在STM32L4 MCU上开发空中固件(FOTA)。在这里,我想使用新下载的固件加载/引导MCU,并将固件下载并存储在外部闪存中,并使用SPI通信。 因此,我需要建议,在将固件下载到外部闪存中然后将MCU作为新的更新固件运行之后,该如何进行固件更新。

谢谢...

2 个答案:

答案 0 :(得分:0)

解决此问题的常用方法是使用引导加载程序。这是一种固件,具有单独程序(单独的项目等)的形式,该固件在主应用程序之前启动,并位于内部闪存中的自己的区域中。通常,生产后就永远不会碰到这个区域-引导加载程序不会更改-尽管您可以根据需要进行处理。

启动引导程序启动时,它可能负责以下操作(您可能并不需要全部,但是我列出了各种可能性,因为您似乎发现它们很有用)

  • 验证您的MCU内是否有已加载的应用程序,它是否有效以及它的版本是什么
  • 检查外部闪存中是否有已下载的应用程序,如果有效,其版本是什么,
  • 基于上述两个步骤,确定是否需要升级内部应用程序,如果需要,则对其进行升级(擦除内部闪存中应用程序占用的闪存区域,从外部闪存写入应用程序,然后进行验证),
  • 完成后-跳至应用程序。

答案 1 :(得分:-1)

我猜您想开发一个IAP。在我通过CanBus开发IAP应用程序之前。首先,您需要具有指定闪存大小的引导加载程序软件。然后,您在此代码中检查是否有程序。如果没有代码,则必须通过通信协议等待新代码。或检查外部闪光灯是否有程序。我认为,以下链接可以为您提供帮助。使用此链接可以很容易地自己开发IAP。 the IAP developing