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

Is there anybody using Keil MDK on Linux through wine?

我在 ubuntu 18.04 上使用 keil MDK 时遇到问题。经过几次试验后,我可以在 ubuntu os 上使用 keil 的 uVision IDE。一切正常,但在尝试对我的 MCU 进行编程时,它显示 "No ST-Link Found"。但是因为我坚持要使用 linux 我尝试安装 stm32cube 程序员跳来跳去尝试用 hex 文件做一些事情,但没有成功。但是我以某种方式管理了 st-link 实用程序(在命令行上运行)。

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

所以如果有人在他的linuxos上使用Keil MDK请敲这里。请帮帮我!

这本身并不能直接回答你的问题,但它仍然可以让你最终到达目的地,而且它不仅仅是评论,所以我会 post它作为答案:

具有本机 Linux 支持的 ST 开发跨平台工具:

我在 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
    
  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(or%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
      

      其中 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
      
  2. 您可以在 Linux 上使用 Eclipse 作为您的 IDE - 购买这本电子书(精通 STM32,作者 Carmine Noviello)以查看完整的设置说明 - https://leanpub.com/mastering-stm32


关于 运行ning Windows 工具在 Ubuntu 中的另一个注意事项:除了最简单的程序外,Wine 对我来说很少能很好地工作。通常我所做的是安装 Virtual Box (no cost) inside Ubuntu, install Windows 10 inside Virtual Box (no-cost download straight from Microsoft),然后在 Windows 10.

中安装我需要的任何 Windows 软件

话虽这么说,我仍然建议您放弃 Keil 并使用原生的 STM32 Linux 工具,但是当有一些软件确实无法 运行 并没有好的替代品。 Linux Ubuntu 现在是我所有家用计算机上的主要 OS,所以我不得不偶尔在 Virtual Box 中使用我的 Windows 10 虚拟机。