0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在VSCode中使用QEMU調(diào)試FreeRTOS

麥克泰技術(shù) ? 來源:麥克泰技術(shù) ? 2023-03-06 09:24 ? 次閱讀

在這篇文章中,我們將逐步完成一個(gè)示例設(shè)置,該設(shè)置以模擬 Arm Cortex-M3 微控制器為例,展示了如何使用 QEMU 在 Visual Studio Code (VSCode) 編輯器中調(diào)試 FreeRTOS 應(yīng)用程序。此示例不需要實(shí)際硬件,需要筆記本電腦或臺(tái)式機(jī)作為開發(fā)環(huán)境。

首先,什么是 QEMU,我們?yōu)槭裁匆褂盟M(jìn)行調(diào)試?QEMU 是一個(gè)計(jì)算機(jī)仿真器,允許你虛擬化硬件類型,支持跨不同的CPU架構(gòu)進(jìn)行虛擬化。這對(duì)于嵌入式開發(fā)非常有用,因?yàn)槟憧梢葬槍?duì)可能無法立即訪問的硬件目標(biāo)板運(yùn)行應(yīng)用程序。這可能是因?yàn)椋?)你仍在為嵌入式產(chǎn)品設(shè)計(jì)選擇芯片的過程中,(2)你的電路板在其他地方,如實(shí)驗(yàn)室,(3)你希望在沒有物理硬件的情況下運(yùn)行自動(dòng)化測(cè)試,或(4)真正的硬件供不應(yīng)求。如果你遇到到這些限制中的任何一個(gè),并且軟件開發(fā)必須繼續(xù)進(jìn)行,那么 QEMU 可以提供幫助。

QEMU支持許多不同的硬件平臺(tái),從x86到ARM再到RISC-V。FreeRTOS 也支持許多不同的硬件平臺(tái)。因此,值得指出的是,我們將在下面介紹的示例不僅限于 FreeRTOS 和 Arm Cortex-M3硬件平臺(tái)。如果你有 Arm Cortex-M3 以外的目標(biāo)板或者其他OS,你可以調(diào)整一下,使用基本相同的方法。

我們?nèi)绾伍_始?為了啟動(dòng)和運(yùn)行該示例,有許多先決條件和依賴項(xiàng)。我在下面分 7 個(gè)步驟列出了這個(gè)過程,你可以遵循這些步驟。順序并不那么重要,除了第7步應(yīng)該保持最后一步。開發(fā)計(jì)算機(jī)上可能已經(jīng)安裝了部分或全部這些工具,如果是這種情況,請(qǐng)仔細(xì)檢查它們是否是最新的,并存在于你的工作路徑中。

Step

步驟

1)下載和安裝VSCode:

2)下載和安裝QEMU:

3)下載和安裝 Arm GNU Toolchain:

4)下載和安裝 CMake:

5)針對(duì) Windows,環(huán)境 下載和安裝 Git

(包括 Bash terminal):Git應(yīng)該已經(jīng)安裝MacOS 和 Linux 系統(tǒng)里面。

6)確保系統(tǒng)上安裝了“make”。根據(jù)你的平臺(tái),有不同的方法可以做到這一點(diǎn)。

在Windows上,你可以使用 Chocolatey在命令提示符下使用下面命令安裝 “make”:> choco install make。

在MacOS上,您可以使用以下命令在終端應(yīng)用程序中使用Homebrew安裝“make” $ brew install make。

在 Linux 上,您可以使用以下命令從終端使用包管理器安裝“make”:$ sudo apt install build-essential。

7)添加 QEMU, Arm GNU Compiler, CMake, 和 'make' 安裝路徑到你的路徑環(huán)境參數(shù)中。操作系統(tǒng)不同,完成方法不一樣,確信使用了正確的方式。

安裝必備工具后,繼續(xù)克隆我們將使用的源代碼。從命令行中,導(dǎo)航到要在其中使用演示代碼克隆 FreeRTOS 存儲(chǔ)庫的文件夾(FreeRTOS repository with the demo code:

https://github.com/FreeRTOS/FreeRTOS),例如 $ cd $HOME/project。然后,繼續(xù)從 GitHub 克隆 FreeRTOS 存儲(chǔ)庫,如下所示:$ git clone https://github.com/FreeRTOS/FreeRTOS.git --recurse-submodules

克隆存儲(chǔ)庫完成后,啟動(dòng) VSCode。在 VSCode 中,在菜單中選擇“File > Open Folder'”。導(dǎo)航到你剛剛克隆的 FreeRTOS 存儲(chǔ)庫,然后選擇此子文件夾

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

VScode 加載演示文件夾后,在編輯器中打開“.vscode/launch.json”。找到 miDebuggerPath 參數(shù)并將值更改為你使用的電腦上“arm-none-eabi-gdb”所在的路徑。

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

現(xiàn)在打開“main.c”并確保mainCREATE_SIMPLE_BLINKY_DEMO_ONLY設(shè)置為 1,代碼構(gòu)建后將生成簡(jiǎn)單的閃燈演示。

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

接下來,在VSCode中按左側(cè)面板中的“Run and Debug”按鈕。從頂部的下拉菜單中選擇“Launch QEMU RTOSDemo”,然后按“play”按鈕。這將生成代碼、運(yùn)行程序并聯(lián)動(dòng)了調(diào)試器。

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

從那里,你可以從按鈕欄中“Continue”,“Step Over”,“Step Into”,“Step Out”和“Stop”,你還可以通過右鍵單擊行號(hào)旁邊,在代碼中添加斷點(diǎn)。

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

按“Continue”按鈕將執(zhí)行代碼,將在終端中產(chǎn)生如下輸出:

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調(diào)試FreeRTOS的一個(gè)范例,你可以使用此示例來嘗試和探索一切的可能性,來調(diào)試一下吧!

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    8967

    瀏覽量

    365039
  • 調(diào)試
    +關(guān)注

    關(guān)注

    7

    文章

    551

    瀏覽量

    33763
  • FreeRTOS
    +關(guān)注

    關(guān)注

    12

    文章

    483

    瀏覽量

    61726
  • qemu
    +關(guān)注

    關(guān)注

    0

    文章

    57

    瀏覽量

    5298
  • vscode
    +關(guān)注

    關(guān)注

    1

    文章

    152

    瀏覽量

    7558

原文標(biāo)題:在VSCode中使用QEMU調(diào)試FreeRTOS

文章出處:【微信號(hào):麥克泰技術(shù),微信公眾號(hào):麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    VSCode中使用J-Link調(diào)試嵌入式系統(tǒng)

    Visual Studio Code是微軟推出的免費(fèi)的源代碼編輯器,通過插件,可以實(shí)現(xiàn)GDB +J-Link+GDBServer方式VSCode調(diào)試嵌入式系統(tǒng)。
    發(fā)表于 08-18 11:06 ?1471次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>VSCode</b><b class='flag-5'>中使</b>用J-Link<b class='flag-5'>調(diào)試</b>嵌入式系統(tǒng)

    Vscode中安裝RT-Thread Studio插件的步驟簡(jiǎn)析

    準(zhǔn)備 linux 中安裝 Vscode安裝 QEMU:sudo apt-get install qemu-system-arm安裝工具鏈:安裝 ncurses 庫sudo apt-g
    發(fā)表于 04-07 11:52

    基于RT-Thread ubuntu 18.04系統(tǒng)VSCode調(diào)試qemu程序的介紹

    RT-Thread Studio 則完美地解決了 Linux / MacOS 環(huán)境 qemu 程序的調(diào)試問題,下面介紹下如何使用插件。 VSCode 插件搜索界面輸入 RT-Thr
    發(fā)表于 06-22 11:31

    VScode調(diào)試qemu-vexpress-a9工程GDB出錯(cuò)有小伙伴遇到過嗎

    按官方教程編譯了,也修改了qemu-dbg.bat文件。啟動(dòng)調(diào)試qemu窗口閃了一下,然后vscode彈窗表示不行。有小伙伴遇到過嗎?
    發(fā)表于 09-01 14:13

    Windows平臺(tái)使用VSCode調(diào)試 RT-Thread qemu-vexpress-a9 BSP工程

    摘要本應(yīng)用筆記描述了 Windows 平臺(tái)使用 VS Code 調(diào)試 RT-Thread qemu-vexpress-a9 BSP 工程。本文的目的和結(jié)構(gòu)本文的目的和背景VS Code(全稱
    發(fā)表于 10-26 15:25

    是什么原因?qū)е?b class='flag-5'>QEMUVSCODE終端上無法運(yùn)行的呢?

    使用環(huán)境:qemu-vexpress-a9RTTV5.0.0源碼使用ENV可以運(yùn)行vscode運(yùn)行截圖需要說明,敲完命令運(yùn)行后,自動(dòng)退出了。我都沒見到RTT版本信息圖如下任務(wù)管理器qemu
    發(fā)表于 01-29 16:49

    VSCode中使QEMU調(diào)試FreeRTOS

    在這篇文章中,我們將逐步完成一個(gè)示例設(shè)置,該設(shè)置以模擬 Arm Cortex-M3 微控制器為例,展示了如何使用 QEMU Visual Studio Code (VSCode) 編輯器中
    發(fā)表于 03-16 15:45

    基于QEMU系統(tǒng)模擬器Xilinx/QEMU的運(yùn)行與調(diào)試

    Xilinx基于QEMU系統(tǒng)模擬器Xilinx/QEMU可用于模擬運(yùn)行Zynq Linux的運(yùn)行與調(diào)試。
    的頭像 發(fā)表于 07-04 07:50 ?8912次閱讀

    Linux:QEMU調(diào)試內(nèi)核的步驟

    Linux:QEMU調(diào)試內(nèi)核的步驟
    的頭像 發(fā)表于 06-23 09:03 ?3047次閱讀
    Linux:<b class='flag-5'>QEMU</b><b class='flag-5'>調(diào)試</b>內(nèi)核的步驟

    配置VScode編譯、調(diào)試STM32(二)Cortex-Debug插件

    配置VScode編譯、調(diào)試STM32(二)Cortex-Debug插件
    發(fā)表于 12-01 12:21 ?17次下載
    配置<b class='flag-5'>VScode</b>編譯、<b class='flag-5'>調(diào)試</b>STM32(二)Cortex-Debug插件

    stm32cubeMX+vscode開發(fā)編譯調(diào)試stm32程序

    stm32cubeMX+vscode開發(fā)編譯調(diào)試stm32程序安裝vscode安裝make工具安裝交叉編譯工具鏈安裝openocd安裝clang llvm生成并編譯代碼配置vscode
    發(fā)表于 12-24 19:31 ?6次下載
    stm32cubeMX+<b class='flag-5'>vscode</b>開發(fā)編譯<b class='flag-5'>調(diào)試</b>stm32程序

    Arduino IDE中使FreeRTOS信號(hào)量

    電子發(fā)燒友網(wǎng)站提供《Arduino IDE中使FreeRTOS信號(hào)量.zip》資料免費(fèi)下載
    發(fā)表于 01-04 10:18 ?0次下載
    <b class='flag-5'>在</b>Arduino IDE<b class='flag-5'>中使</b>用<b class='flag-5'>FreeRTOS</b>信號(hào)量

    VSCode使用-搭建python運(yùn)行調(diào)試環(huán)境

    VSCode是一個(gè)優(yōu)秀的編輯工具,適合代碼閱讀,代碼編輯,甚至配置好之后,可以編譯與調(diào)試代碼。
    的頭像 發(fā)表于 05-04 10:00 ?853次閱讀
    <b class='flag-5'>VSCode</b>使用-搭建python運(yùn)行<b class='flag-5'>調(diào)試</b>環(huán)境

    qemu-riscvscode的gdb調(diào)試步驟

    qemu支持gdb調(diào)試,只需要在命令中添加 -s -S兩個(gè)參數(shù)即可,bsp/qemu-riscv下已經(jīng)有了qemu-dbg.sh,且加入了
    的頭像 發(fā)表于 09-28 10:54 ?1277次閱讀
    <b class='flag-5'>qemu</b>-riscv<b class='flag-5'>在</b>scode的gdb<b class='flag-5'>調(diào)試</b>步驟

    vscode運(yùn)行qemu-vexpress-a9 qemu仿真環(huán)境F5后報(bào)錯(cuò)處理方法

    修改.vscode下launch.json中qemu debug為qemu simulator,preLaunchTask為調(diào)試前的任務(wù)執(zhí)行,找task.json中l(wèi)abel對(duì)應(yīng)的任務(wù)
    的頭像 發(fā)表于 09-28 11:17 ?1116次閱讀
    <b class='flag-5'>vscode</b>運(yùn)行<b class='flag-5'>qemu</b>-vexpress-a9 <b class='flag-5'>qemu</b>仿真環(huán)境F5后報(bào)錯(cuò)處理方法