2400|2

227

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

在VSCode中使用QEMU调试FreeRTOS [复制链接]

在这篇文章中,我们将逐步完成一个示例设置,该设置以模拟 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:

https://github.com/FreeRTOS/FreeRTOS),例如 $ cd $HOME/project。然后,继续从 GitHub 克隆 FreeRTOS 存储库,如下所示:$ git clone https://github.com/FreeRTOS/FreeRTOS.git --recurse-submodules

克隆存储库完成后,启动 VSCode。在 VSCode 中,在菜单中选择“File > Open Folder'”。导航到你刚刚克隆的 FreeRTOS 存储库,然后选择此子文件夹

'.../FreeRTOS/FreeRTOS/Demo/CORTEX_MPS2_QEMU_IAR_GCC'

VScode 加载演示文件夹后,在编辑器中打开“.vscode/launch.json”。找到 miDebuggerPath 参数并将值更改为你使用的电脑上“arm-none-eabi-gdb”所在的路径。

现在打开“main.c”并确保mainCREATE_SIMPLE_BLINKY_DEMO_ONLY设置为 1,代码构建后将生成简单的闪灯演示。

接下来,在VSCode中按左侧面板中的“Run and Debug”按钮。从顶部的下拉菜单中选择“Launch  QEMU RTOSDemo”,然后按“play”按钮。这将生成代码、运行程序并联动了调试器。

从那里,你可以从按钮栏中“Continue”,“Step Over”,“Step Into”,“Step Out”和“Stop”,你还可以通过右键单击行号旁边,在代码中添加断点。

按“Continue”按钮将执行代码,将在终端中产生如下输出:

QEMU RTOSdemo started

Message received from task

Message received from task

Message received from task

Message received from task

Message received from task

Message received from task

Message received from task

Message received from task

Message received from task

Message received from software timer

 

这就是你在VSCode中使用QEMU调试FreeRTOS的一个范例,你可以使用此示例来尝试和探索一切的可能性,来调试一下吧!

查看本帖全部内容,请登录或者注册

最新回复

谢谢分享,是个思路。   详情 回复 发表于 2023-3-23 15:39
点赞 关注
个人签名

欢迎关注“麦克泰技术”


回复
举报

743

帖子

0

TA的资源

纯净的硅(高级)

沙发
 

这个技术倒是真强大。

不过,现在开发板的成本很低,直接上一个硬件开发板,是不是学习的成本要比QEMU更低啊

 

 
 

回复

7763

帖子

18

TA的资源

五彩晶圆(高级)

板凳
 

谢谢分享,是个思路。

 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

回复
您需要登录后才可以回帖 登录 | 注册

猜你喜欢
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
有奖直播报名| TI 面向楼宇和工厂自动化行业的毫米波雷达解决方案
【内容简介】TI 60GHz IWRL6432和 IWRL1432毫米波雷达传感器如何帮助解决楼宇和工厂自动化应用中的感应难题
【直播时间】5月28日(周三)上午10:00
【直播礼品】小米双肩包、contigo水杯、胶囊伞、安克充电器

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 2

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表