本文描述如何在windows及linux平臺使用RT-Thread QEMU BSP,并運行RT-Thread GUI示例。
1 本文的目的和結構
1.1 本文的目的 和背景嵌入式軟件開發離不開開發板,在沒有物理開發板的情況下,可以使用QEMU等類似的虛擬機來模擬開發板。QEMU是一個支持跨平臺虛擬化的虛擬機,它可以虛擬很多開發板。為了方便大家在沒有開發板的情況下體驗RT-Thread,RT-Thread使用QEMU模擬了ARM vexpress A9開發板,并提供了相關的板級支持包(BSP)。本文主要介紹在windows平臺和linux平臺使用RT-Thread提供的qemu-vexpress-a9 BSP。
1.2 本文的結構本文首先介紹qemu-vexpress-a9 BSP在windows平臺的使用明細,其次介紹在linux平臺的使用明細。
2 在windows平臺使用qemu-vexpress-a9 BSP
2.1 準備工作
RT-Thread源碼
RT-Thread env工具
env是RT-Thread推出的圖形界面輔助工具,用來配置基于RT-Thread操作系統開發的項目工程。env自帶有編譯器和QEMU,因此在windows平臺可以不用下載編譯器和QEMU。請點擊下面鏈接獲取env詳細信息及env運行環境要求:
解壓RT-Thread源碼,在BSP目錄下找到qemu-vexpress-a9文件夾,RT-Thread qemu-vexpresss-a9 BSP實現了LCD、鍵盤、鼠標、SD卡、以太網卡、串口等相關驅動。
圖 2.1 1 qemu-vexpress-a9文件夾
2.2 運行qemu-vexpress-a9 BSP工程1、打開env文件夾,根據系統類型(32位/64位)雙擊對應的console.exe文件打開env控制臺:
圖 2.2 1 env文件夾
2、在命令行模式下使用cd d:projects t-threadspqemu-vexpress-a9命令切換到RT-Thread源碼文件夾下的qemu-vexpress-a9 BSP根目錄,然后輸入scons命令編譯工程:
圖 2.2 2 編譯工程
3、編譯完成后輸入qemu.bat啟動虛擬機及BSP工程,qemu.bat是windows批處理文件,此文件位于BSP文件夾下,主要包括QEMU的執行指令,第一次運行工程會在BSP文件夾下創建一份空白的sd.bin文件,這是虛擬的sd卡,大小為64M。env命令行界面顯示RT-Thread系統啟動過程中打印的初始化信息及版本號信息等,如下圖所示:
圖 2.2 3 運行工程
4、若電腦安裝有360安全衛士會有警告,點擊允許程序運行,這時qemu虛擬機就運行起來了。虛擬機中央的白色區域是虛擬的LCD屏,讀者可以自己寫些GUI相關代碼,相關圖形圖像信息會出現在這塊虛擬的LCD屏中,后面本文將演示RT-Thread提供的GUI示例代碼。
圖 2.2 4虛擬屏
5、RT-Thread支持finsh,用戶可以在命令行模式操作,輸入help或按tab鍵可以查看所有支持的命令,輸入list_device可以查看所有設備。這里可以看到設備里包括了我們前面提到的虛擬的sd卡“sd0”,接下來我們可以使用mkfs sd0命令格式化sd卡,執行該命令會將sd卡格式化成FatFS文件系統。FatFs是專為小型嵌入式設備開發的一個兼容微軟fat的文件系統,采用ANSI C編寫,采用抽象的硬件I/O層以及提供持續的維護,因此具有良好的硬件無關性以及可移植性。
圖 2.2 5 格式化sd卡
6、第一次格式化sd卡后文件系統不會馬上裝載上,第二次啟動才會被正確裝載。我們退出虛擬機,然后在env命令行界面輸入qemu.bat重新啟動虛擬機及工程,輸入ls命令可以看到新增了Directory目錄,文件系統已經裝載上,然后可以使用RT-Thread提供的其他命令體驗文件系統。
圖 2.2 6 文件系統其他命令
2.3 運行RT-Thread GUI示例1、關掉QEMU虛擬機,回到ENV控制臺。0.6.4版本的env工具中加入了自動更新軟件包和自動生成mdk/iar工程的選項,默認不開啟。可以使用menuconfig –s或者menuconfig --setting配置:
圖 2.3 1 menuconfig -s命令
選中“auto update pkgs config”,在使用menuconfig功能后env會自動使用pkgs --update命令來下載并安裝軟件包,同時刪除舊的軟件包:
圖 2.3 2 自動更新配置
2、使用menuconfig命令進入配置界面,進入“RT-Thread Components” ——→ “RT-Thread UI Engine”子菜單,按‘↓’鍵下翻選中“Enable the example of UI Engine”:
圖 2.3 3 選擇GUI示例
3、按‘→’鍵選中“save”保存配置,并按“Exit”鍵退出配置界面,回到命令行界面,輸入scons重新編譯工程:
圖 2.3 4 scons命令編譯工程
4、編譯完成后輸入qemu.bat命令啟動QEMU虛擬機及工程,可以看到QEMU虛擬的顯示屏上顯示了示例代碼展示的圖片、文字和圖形信息:
圖 2.3 5 虛擬屏GUI 示例展示
2.4 用eclipse調試qemu-vexpress-a9 BSP工程1、首先在eclipse的Eclipse Marketplace里下載并安裝支持QEMU的調試工具:
圖 2.4 1 Eclipse Marketplace
圖 2.4 2 調試工具安裝
2、首次調試工程需要配置調試參數,如下面圖片所示,打開調試配置界面及配置調試參數:
圖 2.4 3 eclipse調試配置選項
圖 2.4 4 創建新的調試項目
圖 2.4 5 選擇調試文件
圖 2.4 6 選擇調試工具
圖 2.4 7 選擇斷點
3、調試相關參數配置好后就可以開始調試了,回到env命令行界面輸入qemu-dbg.bat開啟調試模式:
圖 2.4 8 啟動調試
這時候啟動的QEMU虛擬機處于暫停狀態,等待連接調試:
圖 2.4 9 虛擬屏調試初始界面
4、點擊eclipse調試配置界面的“Debug”按鈕,或者點擊調試項目名稱,開啟eclipse調試界面,這時就可以對工程進行調試了:
圖 2.4 10 開始調試
圖 2.4 11 eclipse調試項目選擇
圖 2.4 12 eclipse調試界面
3 在linux平臺使用qemu-vexpress-a9 BSP
3.1 準備工作
下載RT-Thread源碼,使用命令:git clone https://github.com/RT-Thread/rt-thread.git
安裝QEMU,使用命令:sudo apt-get install qemu
安裝scons,使用命令:sudo apt-get install scons
安裝編譯器,使用apt-get命令安裝的編譯器版本太舊會導致編譯報錯,可依次使用如下命令下載安裝新版本.
安裝ncurses庫,使用命令:sudo apt-get install libncurses5-dev
編譯器安裝好以后需要修改qemu-vexpress-a9 BSP下面的rtconfig.py文件,修改對應路徑為解壓到opt目錄下的編譯器對應的bin目錄,參考下圖,目錄名字因下載的編譯器版本而異:
圖 3.1 1 編譯器路徑修改
3.2 使用menuconfig配置工程1、在qemu-vexpress-a9 BSP根目錄輸入scons --menuconfig開啟配置界面,配置操作和windows平臺一樣:
圖 3.2 1 menuconfig配置界面
2、使用scons --menuconfig命令后會安裝及初始化env工具,并在home目錄下面生成“.env”文件夾,此文件夾為隱藏文件夾,切換到home目錄,使用la命令可查看所有目錄和文件。env.sh文件是需要執行的文件,它會配置好環境變量,讓我們可以使用pkgs命令來更新軟件包,輸入source ~/.env/env.sh命令執行。若已經選擇了在線軟件包,就可以使用pkgs --update命令下載軟件包到BSP目錄下的packages文件夾里:
圖 3.2 2 .env文件夾
圖 3.2 3 pkgs --update命令下載軟件包
3.3 運行qemu-vexpress-a9 BSP工程1、在qemu-vexpress-a9 BSP目錄下輸入scons命令編譯工程:
圖 3.3 1 scons命令編譯工程
2、輸入ls命令查看BSP下面的文件明細,綠色顯示的文件是有執行權限的文件,我們需要給qemu.sh文件新增執行權限,輸入chmod +x qemu.sh命令:
圖 3.3 2 qemu.sh文件新增執行權限
3、輸入./qemu.sh命令執行腳本文件,這時候虛擬機便運行起來,如下圖所示,命令行顯示了RT-Thread操作系統啟動過程所打印的相關信息,白色窗口為虛擬的LCD屏,讀者可參考在windows平臺運行RT-Thread GUI示例和使用eclipse調試的內容,同樣可以在linux平臺實現,本文不在贅述。
圖 3.3 3 虛擬機運行界面
-
Linux
+關注
關注
87文章
11345瀏覽量
210417 -
WINDOWS
+關注
關注
4文章
3570瀏覽量
89313
原文標題:【應用筆記】如何在windows及linux平臺使用RT-Thread QEMU BSP
文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
如何在Ubuntu平臺使用QEMU運行RT-Threadqemu-vexpress-a9BSP工程?
如何在Windows平臺使用VSCode開發RT-Threadqemu-vexpress-a9BSP工程?
怎么使用Eclipse開發RT-Thread?
在Windows上使用VS Code開發RT-Thread qemu-vexpress-a9 BSP工程
如何在Window及Ubuntu平臺使用QEMU運行 RT-Thread qemu-vexpress-a9 BSP工程
在Windows平臺使用VSCode調試 RT-Thread qemu-vexpress-a9 BSP工程
在Windows平臺使用Eclipse調試RT-Thread qemu-vexpress-a9 BSP工程
RT-Thread BSP qemu-virt64-aarch64的編譯環境搭建步驟
RT-Thread BSP qemu-virt64-aarch64文件系統
手把手教你在RT-THREAD bsp上運行pikascript腳本點亮小燈
![手把手教你在<b class='flag-5'>RT-THREAD</b> <b class='flag-5'>bsp</b>上<b class='flag-5'>運行</b>pikascript腳本點亮小燈](https://file1.elecfans.com/web2/M00/8E/69/wKgaomTGflCAEE0SAAAYtwqeRXo631.png)
RT-Thread qemu mps2-an385 bsp移植制作 :環境搭建篇
![<b class='flag-5'>RT-Thread</b> <b class='flag-5'>qemu</b> mps2-an385 <b class='flag-5'>bsp</b>移植制作 :環境搭建篇](https://file1.elecfans.com/web2/M00/8E/CD/wKgaomTJ-ySAZ7tRAAJpdTlNcRE617.jpg)
RT-Thread BSP qemu-virt64-aarch64文件系統
![<b class='flag-5'>RT-Thread</b> <b class='flag-5'>BSP</b> <b class='flag-5'>qemu</b>-virt64-aarch64文件系統](https://file1.elecfans.com/web2/M00/A7/49/wKgaomUiaRKAcf2PAACt4_7IDoQ682.jpg)
【QEMU系列】不用開發板運行RT-Thread指南-ARM架構
![【<b class='flag-5'>QEMU</b>系列】不用開發板<b class='flag-5'>運行</b><b class='flag-5'>RT-Thread</b>指南-ARM架構](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
評論