在這篇文章中,我們將逐步完成一個(gè)示例設(shè)置,該設(shè)置以模擬 Arm Cortex-M3 微控制器為例,展示了如何使用 QEMU 在 Visual Studio Code (VSCode) 編輯器中調(diào)試 FreeRTOS 應(yīng)用程序。此示例不需要實(shí)際硬件,需要筆記本電腦或臺(tái)式機(jī)作為開(kāi)發(fā)環(huán)境。
首先,什么是 QEMU,我們?yōu)槭裁匆褂盟M(jìn)行調(diào)試?QEMU 是一個(gè)計(jì)算機(jī)仿真器,允許你虛擬化硬件類型,支持跨不同的CPU架構(gòu)進(jìn)行虛擬化。這對(duì)于嵌入式開(kāi)發(fā)非常有用,因?yàn)槟憧梢葬槍?duì)可能無(wú)法立即訪問(wèn)的硬件目標(biāo)板運(yùn)行應(yīng)用程序。這可能是因?yàn)椋?)你仍在為嵌入式產(chǎn)品設(shè)計(jì)選擇芯片的過(guò)程中,(2)你的電路板在其他地方,如實(shí)驗(yàn)室,(3)你希望在沒(méi)有物理硬件的情況下運(yùn)行自動(dòng)化測(cè)試,或(4)真正的硬件供不應(yīng)求。如果你遇到到這些限制中的任何一個(gè),并且軟件開(kāi)發(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)绾伍_(kāi)始?為了啟動(dòng)和運(yùn)行該示例,有許多先決條件和依賴項(xiàng)。我在下面分 7 個(gè)步驟列出了這個(gè)過(guò)程,你可以遵循這些步驟。順序并不那么重要,除了第7步應(yīng)該保持最后一步。開(kāi)發(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ǔ)庫(kù)的文件夾(FreeRTOS repository with the demo code:
https://github.com/FreeRTOS/FreeRTOS),例如 $ cd $HOME/project。然后,繼續(xù)從 GitHub 克隆 FreeRTOS 存儲(chǔ)庫(kù),如下所示:$ git clone https://github.com/FreeRTOS/FreeRTOS.git --recurse-submodules
克隆存儲(chǔ)庫(kù)完成后,啟動(dòng) VSCode。在 VSCode 中,在菜單中選擇“File > Open Folder'”。導(dǎo)航到你剛剛克隆的 FreeRTOS 存儲(chǔ)庫(kù),然后選擇此子文件夾
'.../FreeRTOS/FreeRTOS/Demo/CORTEX_MPS2_QEMU_IAR_GCC'
VScode 加載演示文件夾后,在編輯器中打開(kāi)“.vscode/launch.json”。找到 miDebuggerPath 參數(shù)并將值更改為你使用的電腦上“arm-none-eabi-gdb”所在的路徑。
現(xiàn)在打開(kāi)“main.c”并確保mainCREATE_SIMPLE_BLINKY_DEMO_ONLY設(shè)置為 1,代碼構(gòu)建后將生成簡(jiǎn)單的閃燈演示。
接下來(lái),在VSCode中按左側(cè)面板中的“Run and Debug”按鈕。從頂部的下拉菜單中選擇“Launch QEMU RTOSDemo”,然后按“play”按鈕。這將生成代碼、運(yùn)行程序并聯(lián)動(dòng)了調(diào)試器。
從那里,你可以從按鈕欄中“Continue”,“Step Over”,“Step Into”,“Step Out”和“Stop”,你還可以通過(guò)右鍵單擊行號(hào)旁邊,在代碼中添加斷點(diǎn)。
按“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è)范例,你可以使用此示例來(lái)嘗試和探索一切的可能性,來(lái)調(diào)試一下吧!
審核編輯:湯梓紅
-
ARM
+關(guān)注
關(guān)注
134文章
9279瀏覽量
374010 -
調(diào)試
+關(guān)注
關(guān)注
7文章
603瀏覽量
34451 -
FreeRTOS
+關(guān)注
關(guān)注
12文章
485瀏覽量
63592 -
qemu
+關(guān)注
關(guān)注
0文章
57瀏覽量
5594 -
vscode
+關(guān)注
關(guān)注
1文章
166瀏覽量
8299
原文標(biāo)題:在VSCode中使用QEMU調(diào)試FreeRTOS
文章出處:【微信號(hào):麥克泰技術(shù),微信公眾號(hào):麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
在VSCode中使用J-Link調(diào)試嵌入式系統(tǒng)

在Vscode中安裝RT-Thread Studio插件的步驟簡(jiǎn)析
基于RT-Thread ubuntu 18.04系統(tǒng)VSCode調(diào)試qemu程序的介紹
VScode調(diào)試qemu-vexpress-a9工程GDB出錯(cuò)有小伙伴遇到過(guò)嗎
在Windows平臺(tái)使用VSCode調(diào)試 RT-Thread qemu-vexpress-a9 BSP工程
是什么原因?qū)е?b class='flag-5'>QEMU在VSCODE終端上無(wú)法運(yùn)行的呢?
在VSCode中使用QEMU調(diào)試FreeRTOS
基于QEMU系統(tǒng)模擬器Xilinx/QEMU的運(yùn)行與調(diào)試
配置VScode編譯、調(diào)試STM32(二)Cortex-Debug插件

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

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

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

qemu-riscv在scode的gdb調(diào)試步驟

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

評(píng)論