【问题标题】:How to flash NUCLEO F401RE with command line如何使用命令行刷新 NUCLEO F401RE
【发布时间】:2019-12-03 11:49:19
【问题描述】:

我正在寻找一个命令行工具,用于在 ubuntu 中刷新我的 NUCLEO 卡。我想要这个工具用 node.js 远程刷新我的 NUCLEO。我已经尝试过 st-flash 和 stm32flash 但这些工具不能正常工作。我的程序是mbed在线工具生成的。

你有什么建议吗?

感谢您的回答

【问题讨论】:

  • 您提到的工具确实可以正常工作,但必须像任何工具一样正确使用。寻求建议的问题不在主题范围内,而要获得特定工具的帮助,您必须包括尝试的确切细节以及由此产生的失败消息。
  • @ChrisStratton 在这种情况下它仍然是一个 X-Y 问题。问题应该是让这些工具发挥作用,而不是寻求更多替代方案。我仍然认为这些工具不起作用的原因可能与拖放方法失败的原因相同
  • 搜索选项肯定是题外话。但除了坏的 USB 电缆之外,各种 stlink 或基于虚拟串行的工具的故障通常是误用之一,因此与俗气的假大容量存储机制的相当常规的故障无关,以欺骗各种主机的文件系统代码操作系统。我同意此页面上目前没有合适的、可回答的问题。
  • FWIW 我个人使用 OpenOCD 来解决这个问题,虽然最初使用的是 texane/stlink(即 st-flash),但后来我通常在定制板上工作。当我需要使用 Nucleo 时,只需告诉 openocd 期望它们的 stlink 协议版本和 VID/PID 略有不同。我倾向于仅在嵌入式 Linux 系统需要更新包含在同一产品中的辅助 MCU 的情况下使用 UART 引导加载程序方法。但这些都是个人选择。

标签: node.js embedded nucleo


【解决方案1】:

您只需将 mbed 映像复制到连接到复合 USB 接口时出现的大容量存储设备即可更新 Nucleo 板。

当文件放在 USB 驱动器上时,集成的 STLink 设备会自动将映像文件写入微控制器闪存。这是一个“只写”设备;写入的文件无法读回 - 如果您询问驱动器,它总是显示为空。

在 Ubuntu 中,您可能必须显式挂载设备。如果它自动挂载,它将出现在/mnt(我猜)下。

由于它是标准的 USB 大容量存储接口,因此您不需要任何 Nucleo 或 ST 特定的驱动程序或软件。它是一个“拖放”编程界面。

如果您的主板没有显示为大容量存储设备,您可能需要按照https://os.mbed.com/teams/ST-Americas-mbed-Team/wiki/Preparing-the-STM32-Nucleo-Board 中的说明更新集成的 STLink 固件

【讨论】:

  • 感谢您的快速回复! :) 是的,我目前正在这样做,但问题是经过几次闪烁后,我的核卡似乎“损坏”了。当我的卡“损坏”时,我无法再刷新,我必须使用 STCubeProgrammer 重新刷新核固件:/
  • @TanguyHardelin :那么这是X-Y problem。您应该解决记录在案的闪烁方法不起作用的问题,而不是发明一个新问题然后解决它!可能您的应用程序无意中阻止了 SWI / JTAG 或设置 RDP?无论哪种方式,仅以不同的方式对其进行编程都不太可能是您认为的解决方案。
  • 这真的不是最好的机制,它是出了名的问题,大多数认真的用户最终会将他们的系统配置为不安装这个假的大容量存储设备,而是与 stlink 功能交互。也就是说,如果您在伪造品与主机操作系统行为之间的交互中走运,它起作用时,它就会起作用。
  • 我猜“损坏”是指目标 STM32 有点臭名昭著的习惯,即自行进入闪存锁定状态。通常,这需要解锁/整体擦除和真正的拔出所有电缆的电源循环。另一种可能性是 SWD 引脚禁用状态,可通过在连接期间小心地断言硬件复位或临时将引导模式引脚切换到引导加载程序以阻止不良固件启动和重新配置所需引脚来恢复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-18
  • 2015-01-26
  • 1970-01-01
  • 2013-07-05
  • 1970-01-01
  • 2015-08-11
  • 2020-07-12
相关资源
最近更新 更多