0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在VSCode中使用QEMU调试FreeRTOS

麦克泰威廉希尔官方网站 来源:麦克泰威廉希尔官方网站 2023-03-06 09:24 次阅读

在这篇文章中,我们将逐步完成一个示例设置,该设置以interwetten与威廉的赔率体系 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:

2)下载和安装QEMU:

3)下载和安装 Arm GNU Toolchain:

4)下载和安装 CMake:

5)针对 Windows,环境 下载和安装 Git

(包括 Bash terminal):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”所在的路径。

401562f8-bb3b-11ed-bfe3-dac502259ad0.jpg

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

40388f58-bb3b-11ed-bfe3-dac502259ad0.jpg

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

404bf0de-bb3b-11ed-bfe3-dac502259ad0.jpg

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

405fd20c-bb3b-11ed-bfe3-dac502259ad0.jpg

按“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的一个范例,你可以使用此示例来尝试和探索一切的可能性,来调试一下吧!

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    134

    文章

    9087

    浏览量

    367403
  • 调试
    +关注

    关注

    7

    文章

    578

    浏览量

    33924
  • FreeRTOS
    +关注

    关注

    12

    文章

    484

    浏览量

    62145
  • qemu
    +关注

    关注

    0

    文章

    57

    浏览量

    5354
  • vscode
    +关注

    关注

    1

    文章

    155

    浏览量

    7698

原文标题:在VSCode中使用QEMU调试FreeRTOS

文章出处:【微信号:麦克泰威廉希尔官方网站 ,微信公众号:麦克泰威廉希尔官方网站 】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    VSCode中使用J-Link调试嵌入式系统

    Visual Studio Code是微软推出的免费的源代码编辑器,通过插件,可以实现GDB +J-Link+GDBServer方式VSCode调试嵌入式系统。
    发表于 08-18 11:06 1806次阅读
    <b class='flag-5'>在</b><b class='flag-5'>VSCode</b><b class='flag-5'>中使</b>用J-Link<b class='flag-5'>调试</b>嵌入式系统

    Vscode中安装RT-Thread Studio插件的步骤简析

    准备 linux 中安装 Vscode安装 QEMU:sudo apt-get install qemu-system-arm安装工具链:安装 ncurses 库sudo apt-g
    发表于 04-07 11:52

    基于RT-Thread ubuntu 18.04系统VSCode调试qemu程序的介绍

    RT-Thread Studio 则完美地解决了 Linux / MacOS 环境 qemu 程序的调试问题,下面介绍下如何使用插件。 VSCode 插件搜索界面输入 RT-Thr
    发表于 06-22 11:31

    VScode调试qemu-vexpress-a9工程GDB出错有小伙伴遇到过吗

    按官方教程编译了,也修改了qemu-dbg.bat文件。启动调试qemu窗口闪了一下,然后vscode弹窗表示不行。有小伙伴遇到过吗?
    发表于 09-01 14:13

    Windows平台使用VSCode调试 RT-Thread qemu-vexpress-a9 BSP工程

    摘要本应用笔记描述了 Windows 平台使用 VS Code 调试 RT-Thread qemu-vexpress-a9 BSP 工程。本文的目的和结构本文的目的和背景VS Code(全称
    发表于 10-26 15:25

    是什么原因导致QEMUVSCODE终端上无法运行的呢?

    使用环境:qemu-vexpress-a9RTTV5.0.0源码使用ENV可以运行vscode运行截图需要说明,敲完命令运行后,自动退出了。我都没见到RTT版本信息图如下任务管理器qemu
    发表于 01-29 16:49

    VSCode中使QEMU调试FreeRTOS

    在这篇文章中,我们将逐步完成一个示例设置,该设置以模拟 Arm Cortex-M3 微控制器为例,展示了如何使用 QEMU Visual Studio Code (VSCode) 编辑器中
    发表于 03-16 15:45

    基于QEMU系统模拟器Xilinx/QEMU的运行与调试

    Xilinx基于QEMU系统模拟器Xilinx/QEMU可用于模拟运行Zynq Linux的运行与调试
    的头像 发表于 07-04 07:50 9157次阅读

    Linux:QEMU调试内核的步骤

    Linux:QEMU调试内核的步骤
    的头像 发表于 06-23 09:03 3146次阅读
    Linux:<b class='flag-5'>QEMU</b><b class='flag-5'>调试</b>内核的步骤

    配置VScode编译、调试STM32(二)Cortex-Debug插件

    配置VScode编译、调试STM32(二)Cortex-Debug插件
    发表于 12-01 12:21 17次下载
    配置<b class='flag-5'>VScode</b>编译、<b class='flag-5'>调试</b>STM32(二)Cortex-Debug插件

    stm32cubeMX+vscode开发编译调试stm32程序

    stm32cubeMX+vscode开发编译调试stm32程序安装vscode安装make工具安装交叉编译工具链安装openocd安装clang llvm生成并编译代码配置vscode
    发表于 12-24 19:31 6次下载
    stm32cubeMX+<b class='flag-5'>vscode</b>开发编译<b class='flag-5'>调试</b>stm32程序

    Arduino IDE中使FreeRTOS信号量

    电子发烧友网站提供《Arduino IDE中使FreeRTOS信号量.zip》资料免费下载
    发表于 01-04 10:18 0次下载
    <b class='flag-5'>在</b>Arduino IDE<b class='flag-5'>中使</b>用<b class='flag-5'>FreeRTOS</b>信号量

    VSCode使用-搭建python运行调试环境

    VSCode是一个优秀的编辑工具,适合代码阅读,代码编辑,甚至配置好之后,可以编译与调试代码。
    的头像 发表于 05-04 10:00 939次阅读
    <b class='flag-5'>VSCode</b>使用-搭建python运行<b class='flag-5'>调试</b>环境

    qemu-riscvscode的gdb调试步骤

    qemu支持gdb调试,只需要在命令中添加 -s -S两个参数即可,bsp/qemu-riscv下已经有了qemu-dbg.sh,且加入了
    的头像 发表于 09-28 10:54 1513次阅读
    <b class='flag-5'>qemu</b>-riscv<b class='flag-5'>在</b>scode的gdb<b class='flag-5'>调试</b>步骤

    vscode运行qemu-vexpress-a9 qemu仿真环境F5后报错处理方法

    修改.vscode下launch.json中qemu debug为qemu simulator,preLaunchTask为调试前的任务执行,找task.json中label对应的任务
    的头像 发表于 09-28 11:17 1252次阅读
    <b class='flag-5'>vscode</b>运行<b class='flag-5'>qemu</b>-vexpress-a9 <b class='flag-5'>qemu</b>仿真环境F5后报错处理方法