登录注册
论坛
一粒金砂(高级)
227
0
在这篇文章中,我们将逐步完成一个示例设置,该设置以模拟 Arm Cortex-M3 微控制器为例,展示了如何使用 QEMU 在 Visual Studio Code (VSCode) 编辑器中调试 FreeRTOS 应用程序。此示例不需要实际硬件,需要笔记本电脑或台式机作为开发环境。
首先,什么是 QEMU,我们为什么要使用它进行调试?QEMU 是一个计算机仿真器,允许你虚拟化硬件类型,支持跨不同的CPU架构进行虚拟化。这对于嵌入式开发非常有用,因为你可以针对可能无法立即访问的硬件目标板运行应用程序。这可能是因为(1)你仍在为嵌入式产品设计选择芯片的过程中,(2)你的电路板在其他地方,如实验室,(3)你希望在没有物理硬件的情况下运行自动化测试,或(4)真正的硬件供不应求。如果你遇到到这些限制中的任何一个,并且软件开发必须继续进行,那么 QEMU 可以提供帮助。
QEMU支持许多不同的硬件平台,从x86到ARM再到RISC-V。FreeRTOS 也支持许多不同的硬件平台。因此,值得指出的是,我们将在下面介绍的示例不仅限于 FreeRTOS 和 Arm Cortex-M3硬件平台。如果你有 Arm Cortex-M3 以外的目标板或者其他OS,你可以调整一下,使用基本相同的方法。
我们如何开始?为了启动和运行该示例,有许多先决条件和依赖项。我在下面分 7 个步骤列出了这个过程,你可以遵循这些步骤。顺序并不那么重要,除了第7步应该保持最后一步。开发计算机上可能已经安装了部分或全部这些工具,如果是这种情况,请仔细检查它们是否是最新的,并存在于你的工作路径中。
Step
步骤(以下链接请复制到浏览器中查看)
1)下载和安装VSCode:
https://code.visualstudio.com/download
2)下载和安装QEMU:
https://www.qemu.org/download/
3)下载和安装 Arm GNU Toolchain:
https://developer.arm.com/Tools%20and%20Software/GNU%20Toolchain
4)下载和安装 CMake:
https://cmake.org/download/
5)针对 Windows,环境 下载和安装 Git
(包括 Bash terminal):https://git-scm.com/downloads,Git应该已经安装MacOS 和 Linux 系统里面。
6)确保系统上安装了“make”。根据你的平台,有不同的方法可以做到这一点。
🔸在Windows上,你可以使用 Chocolatey在命令提示符下使用下面命令安装 “make”:> choco install make。
🔸在MacOS上,您可以使用以下命令在终端应用程序中使用Homebrew安装“make” $ brew install make。
🔸在 Linux 上,您可以使用以下命令从终端使用包管理器安装“make”:$ sudo apt install build-essential。
7)添加 QEMU, Arm GNU Compiler, CMake, 和 'make' 安装路径到你的路径环境参数中。操作系统不同,完成方法不一样,确信使用了正确的方式。
安装必备工具后,继续克隆我们将使用的源代码。从命令行中,导航到要在其中使用演示代码克隆 FreeRTOS 存储库的文件夹(FreeRTOS repository with the demo code:
克隆存储库完成后,启动 VSCode。在 VSCode 中,在菜单中选择“File > Open Folder'”。导航到你刚刚克隆的 FreeRTOS 存储库,然后选择此子文件夹
'.../FreeRTOS/FreeRTOS/Demo/CORTEX_MPS2_QEMU_IAR_GCC'
VScode 加载演示文件夹后,在编辑器中打开“.vscode/launch.json”。找到 miDebuggerPath 参数并将值更改为你使用的电脑上“arm-none-eabi-gdb”所在的路径。
640?wx_fmt=jpeg (20.44 KB, 下载次数: 0)
下载附件 保存到相册
2023-3-22 14:20 上传
现在打开“main.c”并确保mainCREATE_SIMPLE_BLINKY_DEMO_ONLY设置为 1,代码构建后将生成简单的闪灯演示。
640?wx_fmt=jpeg (34.36 KB, 下载次数: 0)
接下来,在VSCode中按左侧面板中的“Run and Debug”按钮。从顶部的下拉菜单中选择“Launch QEMU RTOSDemo”,然后按“play”按钮。这将生成代码、运行程序并联动了调试器。
640?wx_fmt=jpeg (7.47 KB, 下载次数: 0)
从那里,你可以从按钮栏中“Continue”,“Step Over”,“Step Into”,“Step Out”和“Stop”,你还可以通过右键单击行号旁边,在代码中添加断点。
640?wx_fmt=jpeg (15.46 KB, 下载次数: 0)
按“Continue”按钮将执行代码,将在终端中产生如下输出:
QEMU RTOSdemo started
Message received from task
Message received from software timer
这就是你在VSCode中使用QEMU调试FreeRTOS的一个范例,你可以使用此示例来尝试和探索一切的可能性,来调试一下吧!
欢迎关注“麦克泰技术”
扫一扫,分享给好友
纯净的硅(高级)
743
这个技术倒是真强大。
不过,现在开发板的成本很低,直接上一个硬件开发板,是不是学习的成本要比QEMU更低啊
五彩晶圆(高级)
7763
18
谢谢分享,是个思路。
默认摸鱼,再摸鱼。2022、9、28
发表回复 回帖后跳转到最后一页
研讨会 : Tektronix 嵌入式系统调试及混合信号系统验证测试中示波器的使用
EEWorld Datasheet 技术支持
查看 »