有人通过 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 他们所做的一切):
STM32CubeIDE - https://www.st.com/en/development-tools/stm32cubeide.html
STM32CubeProgrammer - https://www.st.com/en/development-tools/stm32cubeprog.html <-- 我喜欢这个工具,因为它有一个运行良好的命令行版本。用于编写、验证和启动的 Ex 命令:
STM32_Programmer_CLI -c port=SWD -w path/to/myhex.hex -v -s
STM32CubeMX(内置于 STM32CubeIDE,因此您不需要单独使用它,除非您使用 Eclipse 而不是 STM32CubeIDE)- https://www.st.com/en/development-tools/stm32cubemx.html
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 中的很多配置说明也应该适用于此,尽管我还没有尝试过,因为我现在正在从事其他项目。
您可能感兴趣的其他工具:
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
您可以在 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 虚拟机。
我在 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 他们所做的一切):
STM32CubeIDE - https://www.st.com/en/development-tools/stm32cubeide.html
STM32CubeProgrammer - https://www.st.com/en/development-tools/stm32cubeprog.html <-- 我喜欢这个工具,因为它有一个运行良好的命令行版本。用于编写、验证和启动的 Ex 命令:
STM32_Programmer_CLI -c port=SWD -w path/to/myhex.hex -v -s
STM32CubeMX(内置于 STM32CubeIDE,因此您不需要单独使用它,除非您使用 Eclipse 而不是 STM32CubeIDE)- https://www.st.com/en/development-tools/stm32cubemx.html
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 中的很多配置说明也应该适用于此,尽管我还没有尝试过,因为我现在正在从事其他项目。
您可能感兴趣的其他工具:
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
您可以在 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 虚拟机。