有没有人通过wine在Linux上使用Keil MDK?

naa*_*sif 4 linux ubuntu microcontroller stm32 keil

我在 ubuntu 18.04 上使用 keil MDK 时遇到问题。经过几次试用后,我可以在我的 ubuntu 操作系统上使用 keil 的 uVision IDE。一切正常,但在尝试对我的 mcu 进行编程时,它显示“未找到 ST-Link”。但是当我坚持使用 linux 时,我尝试安装 stm32cube 程序员跳跃尝试使用 hex 文件做一些事情,但没有成功。但不知何故,我管理了 st-link 实用程序(在命令行上工作)。

现在,如果我将 eclipse 的 elf 文件转换为 bin 或 hex 并通过 st-link 实用程序加载到我的 stm32f103vet 中,它就很好用!但是当我刷新由 keil 生成的十六进制文件时,它什么也没显示。不起作用。我厌倦了尝试使用keil MDK 编写stm32。

所以如果有人在他的 linux 操作系统上使用 Keil MDK,请敲这里。请帮帮我!

Gab*_*les 5

这本身并不完全是对您问题的直接回答,但它最终仍可能使您到达需要去的地方,而且不仅仅是评论,因此我将其作为答案发布:

具有原生 Linux 支持的 ST Development 跨平台工具:

我在 Linux 上开发。我强烈建议您切换到原生 Linux 工具并放弃 Keil。ST 拥有一整套本地支持的 Linux 工具,这也是我非常喜欢 ST 的原因之一(他们所做的一切都真正支持 Linux):

  1. STM32CubeIDE - https://www.st.com/en/development-tools/stm32cubeide.html

  2. STM32CubeProgrammer - https://www.st.com/en/development-tools/stm32cubeprog.html <-- 我喜欢这个工具,因为它有一个运行良好的命令行版本。用于写入、验证和启动的 Ex 命令:

    STM32_Programmer_CLI -c port=SWD -w path/to/myhex.hex -v -s
    
    Run Code Online (Sandbox Code Playgroud)
  3. STM32CubeMX(内置在 STM32CubeIDE 中,因此除非您使用 Eclipse 而不是 STM32CubeIDE,否则您不必单独使用它) - https://www.st.com/en/development-tools/stm32cubemx.html

  4. 2020 年 5 月更新:也请参阅我的 Eclipse 设置说明:https : //github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles/blob/master/eclipse/Eclipse%20setup%20instructions%20on%20a%20new%20Linux%20(或%20other%20OS )%20computer.pdf。STM32CubeIDE 是基于 Eclipse 的,所以我的 PDF 中的许多配置说明也应该适用于该程序,尽管我还没有尝试过,因为我现在正在处理其他项目。

您可能感兴趣的其他工具:

  1. Segger J-Link 调试和编程探针:https : //www.segger.com/products/debug-probes/j-link/

    • 与他们的免费 Ozone 软件完美配合,该软件也可以调试 FreeRTOS 应用程序:https : //www.segger.com/products/development-tools/ozone-j-link-debugger/

    • 也可用于从命令行上传代码。以下是如何使用 Segger J-Link 在单个命令中上传代码:

      JLinkExe -device STM32F777VI -if SWD -speed 12000 -AutoConnect 1 \
      -CommandFile /path/to/mycommandfile.txt
      
      Run Code Online (Sandbox Code Playgroud)

      其中mycommandfile.txt仅包含 4 个命令:

      # reset mcu; Note to self :): You MUST do this before attempting to call 
      # `loadfile` or else it will fail; this reset command is in place of 
      # power cycling which I otherwise used to have to do all the time when 
      # using the Segger programmer!
      r 
      # flash a hex file to your chip
      loadfile /path/to/myhex.hex
      # reset no halt (ie: reset the mcu and start running your application 
      # you just loaded to it)
      rnh 
      exit
      
      Run Code Online (Sandbox Code Playgroud)
  2. 您可以在 Linux 上使用 Eclipse 作为您的 IDE - 购买这本电子书(掌握 STM32,由 Carmine Noviello)查看完整的设置说明 - https://leanpub.com/mastering-stm32


关于在 Ubuntu 中运行 Windows 工具的另一个注意事项:除了最简单的程序外,Wine 很少对我有用。通常我所做的是在 Ubuntu 中安装Virtual Box(免费),在 Virtual Box 中安装 Windows 10(直接从 Microsoft 免费下载),然后在 Windows 10 中安装我需要的任何 Windows 软件。

话虽如此,我仍然建议你放弃 Keil 并使用原生的 STM32 Linux 工具,但是当有一些软件真的无法运行并且没有好的替代品时,Virtual Box 技巧确实派上用场。Linux Ubuntu 现在是我所有家用计算机上的主要操作系统,所以我有时不得不在 Virtual Box 中使用我的 Windows 10 虚拟机。

  • 他们通过 FreeRTOS 很好地支持 RTOS。我无法与 mcus 上的嵌入式 Linux 交谈,而且我从未使用过 Keil,但我怀疑它们是否像 Keil 一样丰富,因为我认为大多数付费产品都是通过添加一些额外的“丰富性”来找到自己的利基市场的。一般来说,我发现昂贵的付费产品在某些方面存在限制,但会让一些困难的事情变得容易,并且更容易上手。无成本工具通常提供更多的自由,但更难上手,并且可能需要更多的研究和社区支持。但正如我所说,我对 Keil 并不确定。 (2认同)