在這篇文章中,我們將逐步完成一個示例設置,該設置以模擬 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”所在的路徑。
現在打開“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的一個范例,你可以使用此示例來嘗試和探索一切的可能性,來調試一下吧!
審核編輯:湯梓紅
-
ARM
+關注
關注
134文章
9084瀏覽量
367384 -
調試
+關注
關注
7文章
578瀏覽量
33923 -
FreeRTOS
+關注
關注
12文章
484瀏覽量
62139 -
qemu
+關注
關注
0文章
57瀏覽量
5354 -
vscode
+關注
關注
1文章
155瀏覽量
7696
原文標題:在VSCode中使用QEMU調試FreeRTOS
文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論