STM32通过以太网上传应用程序/软件

时间:2017-07-03 20:58:09

标签: stm32 ethernet bootloader mbed nucleo

有没有办法通过以太网将应用程序上传到STM32板?

我需要能够在~200个Nucleo F429ZI板上传代码,这些板只通过LAN与PC连接在一起。

3 个答案:

答案 0 :(得分:0)

您可以在LWIP_IAP文件夹下的STMCubeF4上找到STM324xG_EVAL和STM324x9I_EVAL板的示例代码,您可以按照文档UM1709和AN3968进行操作。您应该根据您的电路板调整示例代码。

答案 1 :(得分:0)

我没有使用LwIP_IAP - 正如GürtaçKadem所说 - 但它似乎是最简单的解决方案。

另一种方式(也适用于非ST板,以防其他人徘徊于此问题)将mbed bootloader添加到您的项目中。然后在您的主板上运行TCP server,让PC连接到主板并将新应用程序写入主板。将新二进制文件存储在闪存中,然后引导加载程序可以在重新启动时加载新的二进制文件。

虽然需要一些编码。此外,您还需要在计算机和主板之间添加信任关系,方法是使用私钥对新二进制文件进行签名并将公钥保留在主板上。 mbed TLS能够做到这一点(例如,通过X509)。

答案 2 :(得分:0)

我过去做的项目有以下设置。

  • 一个外置闪光灯
  • Boot-loader(我的IDE中的第一个STM32项目),每次启动时执行以下操作
    • 外置闪光灯中是否有新图像?我甚至在此步骤中添加了RSA签名
    • 如果图像验证正常,则擦除除第一个具有引导加载程序的64K之外的STM32闪存,并使用外部闪存中的数据重写它。并在完成后清除外部闪存中的第一个扇区,以避免在每次启动时重新刷新STM32
    • 跳入有效载荷
  • Payload(我的IDE中的第二个STM32项目)。我配置我的IDE将图像64K放入STM32的闪存中。我的有效负载使用LwIP作为其IP堆栈(git最新,并从另一个STM32示例中获取所需的硬件胶水代码)
  • 制作了一个小工具,可以读取我的IDE生成的.hex文件,用我的RSA密钥签名,然后输出我的控制软件理解的文件,并且当它以正常模式运行时可以传输到我的STM32