快速體驗(yàn)鴻蒙Liteos-A:IMX6ULL的QEMU系統(tǒng)(Windows版本)
想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):
51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)
1. 簡(jiǎn)介
QEMU可以模擬x86,也可以模擬各種ARM板子,還可以模擬各種外設(shè)。
百問(wèn)網(wǎng)對(duì)QEMU做了很多改進(jìn),支持更多硬件,支持更多GUI現(xiàn)實(shí),
讓用戶可以更有真實(shí)感地使用QEMU來(lái)模擬IMX6ULL板子。
1.1 100ASK-QEMU特點(diǎn):
- 模擬網(wǎng)卡
- 模擬LCD顯示功能
- 模擬led燈、按鍵
- 模擬at24cxx i2c存儲(chǔ)芯片,直接可以通過(guò)用戶態(tài)操作看到效果
- 模擬觸摸屏(單點(diǎn)觸摸)
- 后續(xù)會(huì)逐漸增加更多的模擬硬件模塊
1.2 已經(jīng)移植的系統(tǒng)
- Linux
- 鴻蒙Liteos-A
2. 使用QEMU
2.1 下載
下載本GIT倉(cāng)庫(kù):
- git clone https://gitee.com/weidongshan/qemu_image_for_imx6ull.git
也可以直接到文末下載完整的資源包!
如果你下載的是zip包,解壓后目錄名太長(zhǎng),會(huì)導(dǎo)致GUI界面無(wú)法顯示。
把目錄名改短即可。
2.2 體驗(yàn)Linux
雙擊運(yùn)行env.bat, 在里面執(zhí)行l(wèi)inux.bat即可啟動(dòng)Linux,輸入root登錄。
1. 體驗(yàn)LCD和觸摸屏
執(zhí)行如下命令:
- [root@qemu_imx6ul:/]# myfb-test /dev/fb0 // 在屏幕上畫同心圓
- [root@qemu_imx6ul:/]# ts_test // 可在開發(fā)板的LCD界面使用鼠標(biāo)點(diǎn)擊、畫線
- [root@qemu_imx6ul:/]# // 按ctrl+shift+c退出程序
2. 體驗(yàn)LED
執(zhí)行如下命令,觀察開發(fā)板上第1個(gè)LED:
- [root@qemu_imx6ul:~]# insmod 100ask_led.ko
- [root@qemu_imx6ul:~]# ls /dev/100ask_led0
- /dev/100ask_led0
- [root@qemu_imx6ul:~]# ledtest /dev/100ask_led0 on
- [root@qemu_imx6ul:~]# ledtest /dev/100ask_led0 off
3. 體驗(yàn)按鍵
執(zhí)行如下命令,并在"設(shè)備管理器"中點(diǎn)擊"buttons"按鈕顯示出按鍵的操作界面
- [root@qemu_imx6ul:~]# insmod 100ask_led.ko // 如果前面執(zhí)行過(guò),這里不需要再次執(zhí)行
- [root@qemu_imx6ul:~]# cd button_driver_qemu/
- [root@qemu_imx6ul:~/button_driver_qemu]# insmod button_drv.ko
- [root@qemu_imx6ul:~/button_driver_qemu]# insmod board_100ask_qemu_imx6ull.ko
- [root@qemu_imx6ul:~/button_driver_qemu]# ./button_led_test
4. 讀寫I2C EEPROM AT24C02
首先在“設(shè)備管理器”中打開at24c02的界面,然后執(zhí)行以下命令測(cè)試:
- // 0x50是AT24C02的I2C設(shè)備地址
- [root@qemu_imx6ul:~]# i2c_usr_test /dev/i2c-0 0x50 r 0 // 讀地址0 data: , 0, 0x00
- [root@qemu_imx6ul:~]# i2c_usr_test /dev/i2c-0 0x50 w 1 0x58 // 寫地址1,寫入0x58
效果如下:
5. 通過(guò)ssh登錄開發(fā)板
本GIT倉(cāng)庫(kù)中,env.bat啟動(dòng)的是終端軟件ConEmu,它比Windows命令行稍微好用點(diǎn)。
但是它不支持鍵盤的箭頭,可以通過(guò)ssh登錄開發(fā)板。
linux.bat中設(shè)置了端口轉(zhuǎn)換,如下:
可以使用其他ssh軟件,比如MobaXterm通過(guò)23端口遠(yuǎn)程登錄開發(fā)板,操作更方便。
2.3 體驗(yàn)鴻蒙Liteos-A
雙擊運(yùn)行env.bat, 在里面執(zhí)行harmony_liteos.bat即可啟動(dòng)、進(jìn)入Liteos-A。
1. 執(zhí)行shell命令
執(zhí)行help命令,可以看到支持的SHELL命令,如下:
2. 執(zhí)行數(shù)碼相框GUI程序
注意:必須用“./bin/digitpic”,不能用絕對(duì)路徑“/bin/digitpic”
注意:這個(gè)GUI程序是我們自己寫得,很丑,與鴻蒙無(wú)關(guān)。
3. 退出程序
執(zhí)行task命令確定進(jìn)程號(hào),然后執(zhí)行“kill -9 PID”殺掉進(jìn)程,比如:
3. 學(xué)習(xí)更多
3.1 Linux
為QEMU編譯Linux:http://wiki.100ask.net/qemu
Linux開發(fā)教程:
- 官網(wǎng):http://www.100ask.net
- 微信小程序:搜“韋東山”
3.2 鴻蒙Liteos-A
鴻蒙Liteos-A開發(fā)教程:
GIT倉(cāng)庫(kù)(無(wú)法直接打開鏈接,用git命令下載):
- git clone https://e.coding.net/weidongshan/openharmony/doc_and_source_for_openharmony.git
官網(wǎng):http://www.100ask.net
微信小程序:搜“韋東山”
4. 常見問(wèn)題
4.1 不能放在中文目錄下
否則會(huì)提示無(wú)法加載文件,比如:
4.2 目錄名不能有空格
否則有如下提示:
4.3 目錄名太長(zhǎng)
如果你下載的是zip包,解壓后目錄名太長(zhǎng),會(huì)導(dǎo)致GUI界面無(wú)法顯示。
把目錄名改短即可。
4.4 ConEmu無(wú)法運(yùn)行
系統(tǒng)原因,錯(cuò)誤提示如下:
可以嘗試運(yùn)行另一個(gè)程序:
如果ConEmu程序都無(wú)法執(zhí)行,直接雙擊harmony_liteos.bat或linux.bat,它使用DOS命令行作為終端,有亂碼。
4.5 退出程序
注意:ctrl+c是退出QEMU,也就是退出Linux或Liteos-A。
要退出Linux中的當(dāng)前程序:使用 ctrl+shift+c。
Liteos-A中沒(méi)有當(dāng)前程序,只能使用kill命令殺死進(jìn)程。
4.6 鼠標(biāo)無(wú)法移出開發(fā)板界面
當(dāng)你的鼠標(biāo)點(diǎn)擊QEMU的GUI界面時(shí),鼠標(biāo)將無(wú)法移出這個(gè)GUI界面。
這時(shí)可以通過(guò)快捷鍵“Ctrl+Alt+g”把鼠標(biāo)從GUI界面中退出來(lái)。
5. 更新記錄
2020.05.20 首次發(fā)布
6. 聯(lián)系方式
公眾號(hào):
想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):
51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)