在這篇文章中,我們將逐步完成一個示例設置,該設置以模擬 Arm Cortex-M3 微控制器為例,展示了如何使用 QEMU 在 Visual Studio Code (VSCode) 編輯器中調(diào)試 FreeRTOS 應用程序。此示例不需要實際硬件,需要筆記本電腦或臺式機作為開發(fā)環(huán)境。
首先,什么是 QEMU,我們?yōu)槭裁匆褂盟M行調(diào)試?QEMU 是一個計算機仿真器,允許你虛擬化硬件類型,支持跨不同的CPU架構進行虛擬化。這對于嵌入式開發(fā)非常有用,因為你可以針對可能無法立即訪問的硬件目標板運行應用程序。這可能是因為(1)你仍在為嵌入式產(chǎn)品設計選擇芯片的過程中,(2)你的電路板在其他地方,如實驗室,(3)你希望在沒有物理硬件的情況下運行自動化測試,或(4)真正的硬件供不應求。如果你遇到到這些限制中的任何一個,并且軟件開發(fā)必須繼續(xù)進行,那么 QEMU 可以提供幫助。
QEMU支持許多不同的硬件平臺,從x86到ARM再到RISC-V。FreeRTOS 也支持許多不同的硬件平臺。因此,值得指出的是,我們將在下面介紹的示例不僅限于 FreeRTOS 和 Arm Cortex-M3硬件平臺。如果你有 Arm Cortex-M3 以外的目標板或者其他OS,你可以調(diào)整一下,使用基本相同的方法。
我們?nèi)绾伍_始?為了啟動和運行該示例,有許多先決條件和依賴項。我在下面分 7 個步驟列出了這個過程,你可以遵循這些步驟。順序并不那么重要,除了第7步應該保持最后一步。開發(fā)計算機上可能已經(jīng)安裝了部分或全部這些工具,如果是這種情況,請仔細檢查它們是否是最新的,并存在于你的工作路徑中。
Step
步驟
1)下載和安裝VSCode:
2)下載和安裝QEMU:
3)下載和安裝 Arm GNU Toolchain:
4)下載和安裝 CMake:
5)針對 Windows,環(huán)境 下載和安裝 Git
(包括 Bash terminal):Git應該已經(jīng)安裝MacOS 和 Linux 系統(tǒng)里面。
6)確保系統(tǒng)上安裝了“make”。根據(jù)你的平臺,有不同的方法可以做到這一點。
在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' 安裝路徑到你的路徑環(huán)境參數(shù)中。操作系統(tǒng)不同,完成方法不一樣,確信使用了正確的方式。
安裝必備工具后,繼續(xù)克隆我們將使用的源代碼。從命令行中,導航到要在其中使用演示代碼克隆 FreeRTOS 存儲庫的文件夾(FreeRTOS repository with the demo code:
https://github.com/FreeRTOS/FreeRTOS),例如 $ cd $HOME/project。然后,繼續(xù)從 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 參數(shù)并將值更改為你使用的電腦上“arm-none-eabi-gdb”所在的路徑。
現(xiàn)在打開“main.c”并確保mainCREATE_SIMPLE_BLINKY_DEMO_ONLY設置為 1,代碼構建后將生成簡單的閃燈演示。
接下來,在VSCode中按左側面板中的“Run and Debug”按鈕。從頂部的下拉菜單中選擇“Launch QEMU RTOSDemo”,然后按“play”按鈕。這將生成代碼、運行程序并聯(lián)動了調(diào)試器。
從那里,你可以從按鈕欄中“Continue”,“Step Over”,“Step Into”,“Step Out”和“Stop”,你還可以通過右鍵單擊行號旁邊,在代碼中添加斷點。
按“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的一個范例,你可以使用此示例來嘗試和探索一切的可能性,來調(diào)試一下吧!
審核編輯:湯梓紅
-
ARM
+關注
關注
134文章
9097瀏覽量
367581 -
調(diào)試
+關注
關注
7文章
578瀏覽量
33943 -
FreeRTOS
+關注
關注
12文章
484瀏覽量
62181 -
qemu
+關注
關注
0文章
57瀏覽量
5357 -
vscode
+關注
關注
1文章
155瀏覽量
7714
原文標題:在VSCode中使用QEMU調(diào)試FreeRTOS
文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論