本文描述如何在windows及linux平臺(tái)使用RT-Thread QEMU BSP,并運(yùn)行RT-Thread GUI示例。
1 本文的目的和結(jié)構(gòu)
1.1 本文的目的 和背景嵌入式軟件開(kāi)發(fā)離不開(kāi)開(kāi)發(fā)板,在沒(méi)有物理開(kāi)發(fā)板的情況下,可以使用QEMU等類似的虛擬機(jī)來(lái)模擬開(kāi)發(fā)板。QEMU是一個(gè)支持跨平臺(tái)虛擬化的虛擬機(jī),它可以虛擬很多開(kāi)發(fā)板。為了方便大家在沒(méi)有開(kāi)發(fā)板的情況下體驗(yàn)RT-Thread,RT-Thread使用QEMU模擬了ARM vexpress A9開(kāi)發(fā)板,并提供了相關(guān)的板級(jí)支持包(BSP)。本文主要介紹在windows平臺(tái)和linux平臺(tái)使用RT-Thread提供的qemu-vexpress-a9 BSP。
1.2 本文的結(jié)構(gòu)本文首先介紹qemu-vexpress-a9 BSP在windows平臺(tái)的使用明細(xì),其次介紹在linux平臺(tái)的使用明細(xì)。
2 在windows平臺(tái)使用qemu-vexpress-a9 BSP
2.1 準(zhǔn)備工作
RT-Thread源碼
RT-Thread env工具
env是RT-Thread推出的圖形界面輔助工具,用來(lái)配置基于RT-Thread操作系統(tǒng)開(kāi)發(fā)的項(xiàng)目工程。env自帶有編譯器和QEMU,因此在windows平臺(tái)可以不用下載編譯器和QEMU。請(qǐng)點(diǎn)擊下面鏈接獲取env詳細(xì)信息及env運(yùn)行環(huán)境要求:
解壓RT-Thread源碼,在BSP目錄下找到qemu-vexpress-a9文件夾,RT-Thread qemu-vexpresss-a9 BSP實(shí)現(xiàn)了LCD、鍵盤、鼠標(biāo)、SD卡、以太網(wǎng)卡、串口等相關(guān)驅(qū)動(dòng)。
圖 2.1 1 qemu-vexpress-a9文件夾
2.2 運(yùn)行qemu-vexpress-a9 BSP工程1、打開(kāi)env文件夾,根據(jù)系統(tǒng)類型(32位/64位)雙擊對(duì)應(yīng)的console.exe文件打開(kāi)env控制臺(tái):
圖 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啟動(dòng)虛擬機(jī)及BSP工程,qemu.bat是windows批處理文件,此文件位于BSP文件夾下,主要包括QEMU的執(zhí)行指令,第一次運(yùn)行工程會(huì)在BSP文件夾下創(chuàng)建一份空白的sd.bin文件,這是虛擬的sd卡,大小為64M。env命令行界面顯示RT-Thread系統(tǒng)啟動(dòng)過(guò)程中打印的初始化信息及版本號(hào)信息等,如下圖所示:
圖 2.2 3 運(yùn)行工程
4、若電腦安裝有360安全衛(wèi)士會(huì)有警告,點(diǎn)擊允許程序運(yùn)行,這時(shí)qemu虛擬機(jī)就運(yùn)行起來(lái)了。虛擬機(jī)中央的白色區(qū)域是虛擬的LCD屏,讀者可以自己寫些GUI相關(guān)代碼,相關(guān)圖形圖像信息會(huì)出現(xiàn)在這塊虛擬的LCD屏中,后面本文將演示RT-Thread提供的GUI示例代碼。
圖 2.2 4虛擬屏
5、RT-Thread支持finsh,用戶可以在命令行模式操作,輸入help或按tab鍵可以查看所有支持的命令,輸入list_device可以查看所有設(shè)備。這里可以看到設(shè)備里包括了我們前面提到的虛擬的sd卡“sd0”,接下來(lái)我們可以使用mkfs sd0命令格式化sd卡,執(zhí)行該命令會(huì)將sd卡格式化成FatFS文件系統(tǒng)。FatFs是專為小型嵌入式設(shè)備開(kāi)發(fā)的一個(gè)兼容微軟fat的文件系統(tǒng),采用ANSI C編寫,采用抽象的硬件I/O層以及提供持續(xù)的維護(hù),因此具有良好的硬件無(wú)關(guān)性以及可移植性。
圖 2.2 5 格式化sd卡
6、第一次格式化sd卡后文件系統(tǒng)不會(huì)馬上裝載上,第二次啟動(dòng)才會(huì)被正確裝載。我們退出虛擬機(jī),然后在env命令行界面輸入qemu.bat重新啟動(dòng)虛擬機(jī)及工程,輸入ls命令可以看到新增了Directory目錄,文件系統(tǒng)已經(jīng)裝載上,然后可以使用RT-Thread提供的其他命令體驗(yàn)文件系統(tǒng)。
圖 2.2 6 文件系統(tǒng)其他命令
2.3 運(yùn)行RT-Thread GUI示例1、關(guān)掉QEMU虛擬機(jī),回到ENV控制臺(tái)。0.6.4版本的env工具中加入了自動(dòng)更新軟件包和自動(dòng)生成mdk/iar工程的選項(xiàng),默認(rèn)不開(kāi)啟。可以使用menuconfig –s或者menuconfig --setting配置:
圖 2.3 1 menuconfig -s命令
選中“auto update pkgs config”,在使用menuconfig功能后env會(huì)自動(dòng)使用pkgs --update命令來(lái)下載并安裝軟件包,同時(shí)刪除舊的軟件包:
圖 2.3 2 自動(dòng)更新配置
2、使用menuconfig命令進(jìn)入配置界面,進(jìn)入“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命令啟動(dòng)QEMU虛擬機(jī)及工程,可以看到QEMU虛擬的顯示屏上顯示了示例代碼展示的圖片、文字和圖形信息:
圖 2.3 5 虛擬屏GUI 示例展示
2.4 用eclipse調(diào)試qemu-vexpress-a9 BSP工程1、首先在eclipse的Eclipse Marketplace里下載并安裝支持QEMU的調(diào)試工具:
圖 2.4 1 Eclipse Marketplace
圖 2.4 2 調(diào)試工具安裝
2、首次調(diào)試工程需要配置調(diào)試參數(shù),如下面圖片所示,打開(kāi)調(diào)試配置界面及配置調(diào)試參數(shù):
圖 2.4 3 eclipse調(diào)試配置選項(xiàng)
圖 2.4 4 創(chuàng)建新的調(diào)試項(xiàng)目
圖 2.4 5 選擇調(diào)試文件
圖 2.4 6 選擇調(diào)試工具
圖 2.4 7 選擇斷點(diǎn)
3、調(diào)試相關(guān)參數(shù)配置好后就可以開(kāi)始調(diào)試了,回到env命令行界面輸入qemu-dbg.bat開(kāi)啟調(diào)試模式:
圖 2.4 8 啟動(dòng)調(diào)試
這時(shí)候啟動(dòng)的QEMU虛擬機(jī)處于暫停狀態(tài),等待連接調(diào)試:
圖 2.4 9 虛擬屏調(diào)試初始界面
4、點(diǎn)擊eclipse調(diào)試配置界面的“Debug”按鈕,或者點(diǎn)擊調(diào)試項(xiàng)目名稱,開(kāi)啟eclipse調(diào)試界面,這時(shí)就可以對(duì)工程進(jìn)行調(diào)試了:
圖 2.4 10 開(kāi)始調(diào)試
圖 2.4 11 eclipse調(diào)試項(xiàng)目選擇
圖 2.4 12 eclipse調(diào)試界面
3 在linux平臺(tái)使用qemu-vexpress-a9 BSP
3.1 準(zhǔn)備工作
下載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命令安裝的編譯器版本太舊會(huì)導(dǎo)致編譯報(bào)錯(cuò),可依次使用如下命令下載安裝新版本.
安裝ncurses庫(kù),使用命令:sudo apt-get install libncurses5-dev
編譯器安裝好以后需要修改qemu-vexpress-a9 BSP下面的rtconfig.py文件,修改對(duì)應(yīng)路徑為解壓到opt目錄下的編譯器對(duì)應(yīng)的bin目錄,參考下圖,目錄名字因下載的編譯器版本而異:
圖 3.1 1 編譯器路徑修改
3.2 使用menuconfig配置工程1、在qemu-vexpress-a9 BSP根目錄輸入scons --menuconfig開(kāi)啟配置界面,配置操作和windows平臺(tái)一樣:
圖 3.2 1 menuconfig配置界面
2、使用scons --menuconfig命令后會(huì)安裝及初始化env工具,并在home目錄下面生成“.env”文件夾,此文件夾為隱藏文件夾,切換到home目錄,使用la命令可查看所有目錄和文件。env.sh文件是需要執(zhí)行的文件,它會(huì)配置好環(huán)境變量,讓我們可以使用pkgs命令來(lái)更新軟件包,輸入source ~/.env/env.sh命令執(zhí)行。若已經(jīng)選擇了在線軟件包,就可以使用pkgs --update命令下載軟件包到BSP目錄下的packages文件夾里:
圖 3.2 2 .env文件夾
圖 3.2 3 pkgs --update命令下載軟件包
3.3 運(yùn)行qemu-vexpress-a9 BSP工程1、在qemu-vexpress-a9 BSP目錄下輸入scons命令編譯工程:
圖 3.3 1 scons命令編譯工程
2、輸入ls命令查看BSP下面的文件明細(xì),綠色顯示的文件是有執(zhí)行權(quán)限的文件,我們需要給qemu.sh文件新增執(zhí)行權(quán)限,輸入chmod +x qemu.sh命令:
圖 3.3 2 qemu.sh文件新增執(zhí)行權(quán)限
3、輸入./qemu.sh命令執(zhí)行腳本文件,這時(shí)候虛擬機(jī)便運(yùn)行起來(lái),如下圖所示,命令行顯示了RT-Thread操作系統(tǒng)啟動(dòng)過(guò)程所打印的相關(guān)信息,白色窗口為虛擬的LCD屏,讀者可參考在windows平臺(tái)運(yùn)行RT-Thread GUI示例和使用eclipse調(diào)試的內(nèi)容,同樣可以在linux平臺(tái)實(shí)現(xiàn),本文不在贅述。
圖 3.3 3 虛擬機(jī)運(yùn)行界面
-
Linux
+關(guān)注
關(guān)注
87文章
11207瀏覽量
208716 -
WINDOWS
+關(guān)注
關(guān)注
3文章
3521瀏覽量
88317
原文標(biāo)題:【應(yīng)用筆記】如何在windows及l(fā)inux平臺(tái)使用RT-Thread QEMU BSP
文章出處:【微信號(hào):RTThread,微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論