1

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

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

4

3 回答 3

2

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

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

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

于 2017-07-03T21:29:14.043 回答
0

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

另一种方法(也适用于非 ST 板,以防其他人发现这个问题)是将mbed 引导加载程序添加到您的项目中。然后在你的开发板上运行一个TCP 服务器,让 PC 连接到开发板并将新的应用程序写入开发板。将新的二进制文件存储在闪存中,然后引导加载程序可以在重新启动时加载新的二进制文件。

虽然需要一些编码。此外,您还需要在计算机和董事会之间添加信任关系,可能通过使用私钥签署新二进制文件并将公钥保存在董事会上。mbed TLS 能够做到这一点(fe via X509)。

于 2017-07-04T04:04:00.453 回答