工具鏈文檔c-sky qemu user guide_W_第1頁
工具鏈文檔c-sky qemu user guide_W_第2頁
工具鏈文檔c-sky qemu user guide_W_第3頁
工具鏈文檔c-sky qemu user guide_W_第4頁
工具鏈文檔c-sky qemu user guide_W_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 C-SKY QEMU 用戶手冊 C-SKY QEMUUser GuideVersion 0.10杭州中天微系統(tǒng)有限公司2014 年 7 月 9 日1杭州中天微系統(tǒng)有限公司 C-SKY QEMU 用戶手冊 聲明:杭州中天微系統(tǒng)有限公司(C-SKY Microsystems Co.,Ltd)保留本文檔的所有權(quán)利。本文檔的內(nèi)容可能發(fā)生更改、更新、刪除、變動(dòng)、恕不另行。 版權(quán)所有 2009-2012 杭州中天微系統(tǒng)有限公司公司地址:浙江省杭州市華星路 99 號(hào)東軟創(chuàng)業(yè)大廈 A409 室郵政編碼:310012電話真8888主頁:www.c-s

2、 E-mail:2杭州中天微系統(tǒng)有限公司 C-SKY QEMU 用戶手冊 版本歷史:3杭州中天微系統(tǒng)有限公司版本 日期 描述 作者 0.13/20/2012C-SKY QEMU 使用手冊第一版 余超君、梁英超 0.23/3/2012添加了 SDHC 的使用說明 廉玉龍 0.33/3/2014添加了 IIS 控制器的使用說明 王會(huì)斌 0.44/22/2014添加了 windows 環(huán)境編譯,windows tap模式設(shè)置 張文蒙 0.56/5/2014添加了 Linux 下動(dòng)態(tài)插件的使用 修改了 windows 環(huán)境編譯 廉玉龍 0.66/27/2014添加

3、了windows 平臺(tái)下用戶模式的使用說明 王會(huì)斌 0.77/3/2014添加了對動(dòng)態(tài)插件的制作說明 毛晗 0.87/3/2014修改了windows 平臺(tái)下用戶模式的使用說明 王會(huì)斌 0.97/4/2014優(yōu)化用戶手冊結(jié)構(gòu) 王會(huì)斌、廉玉龍 0.107/9/2014修改了vdsp128/vdsp64 參數(shù)的使用說明 毛晗 C-SKY QEMU 用戶手冊 目錄:聲明:2版本歷史:3目錄:112概述1運(yùn)行環(huán)境32.1 硬件環(huán)境32.2 軟件環(huán)境3安裝33.1 Linux 環(huán)境下安裝33.1.1 解壓源代碼33.1.2 C-SKY QEMU 配置33.1.3 C-SKY QEMU 編譯和安裝43.2

4、 Windows 環(huán)境下安裝53.2.1 設(shè)置MinGW 環(huán)境53.2.2 CSKY QEMU 配置53.2.3 QEMU 編譯和安裝6簡單使用64.1 用戶模式64.2 系統(tǒng)模式7用戶模式85.1 選項(xiàng)85.2 GDB 使用85.3 Linux 平臺(tái)用戶模式使用實(shí)例93455.4Windows 平臺(tái)用戶模式使用實(shí)例96系統(tǒng)模式116.1 選項(xiàng)116.2 組合鍵136.3 Monitor146.4 磁盤鏡像156.5 SoC 的模擬166.5.1 NFC186.5.2 USB186.5.3 網(wǎng)卡196.5.4 LCDC216.5.5 Timer226.5.6 UART236.5.7 IIS23

5、6.5.8 SDHC231杭州中天微系統(tǒng)有限公司 C-SKY QEMU 用戶手冊 6.6 GDB 使用246.7 系統(tǒng)模式使用實(shí)例266.7.1 由小boot 引導(dǎo) Linux 的使用266.7.2 無小boot 引導(dǎo) Linux 的使用296.7.3 NAND Flash 控制器使用306.7.4 Timer 的使用326.7.5 LCDC 的使用326.7.6 UART 的使用346.7.7 網(wǎng)絡(luò)使用356.7.8 中斷控制器的使用386.7.9 IIS 控制器的使用396.7.10 SDHC 的使用39動(dòng)態(tài)插件437.1 Linux 平臺(tái)下的使用437.2 windows 平臺(tái)下的使用4

6、57.3 動(dòng)態(tài)外設(shè)插件的定義46附錄478.1 MinGW 環(huán)境自定義安裝478.1.1 軟件環(huán)境478.1.2 步驟478.2 vdsp 指令支持49788.3參考文獻(xiàn)502杭州中天微系統(tǒng)有限公司 C-SKY QEMU 用戶手冊 1概述C-SKY QEMU 是一個(gè)快速的支持 C-SKY 全系列處理器的軟件模擬器,有兩種工作模式: 1. 系統(tǒng)模式 用于模擬基于C-SKY CPU 的 SOC 及開發(fā)板,包括 CPU 和外圍設(shè)備,如 USB、LCDC、TIMER、NFC 等。運(yùn)行在實(shí)際開發(fā)板上的程序或者操作系統(tǒng)可以在 C-SKY QEMU 上直接運(yùn)行。它使得為系統(tǒng)源代碼進(jìn)行測試及除錯(cuò)工作變得容易。

7、 系統(tǒng)模式框架如下: 2. 用戶模式 用于模擬運(yùn)行標(biāo)準(zhǔn)的 C-SKY CPU Linux 應(yīng)用程序。用戶模式框架如下: 1杭州中天微系統(tǒng)有限公司 C-SKY QEMU 用戶手冊 QEMU 的特點(diǎn):1.可以模擬 IA-32 (x86)個(gè)人電腦,AMD 64 個(gè)人電腦,MIPS R4000,升陽的 SPARC sun3 與PowerPC (PReP 及Power Macintosh)架構(gòu)以及其他架構(gòu) (請參看QEMU 主頁獲得完整) 2.3.支持其他架構(gòu),不論在主機(jī)或虛擬系統(tǒng)上(請參看QEMU 主頁獲得完整) 在支持硬件虛擬化的 x86 構(gòu)架上可以使用 KVM 加速配合內(nèi)核 ksm 大頁面?zhèn)浞輧?nèi)存

8、,速 度穩(wěn)定遠(yuǎn)超過VMware ESX.8.9.增加了模擬速度,某些程序甚至可以實(shí)時(shí)運(yùn)行可以在其他平臺(tái)上運(yùn)行 Linux 的程序 可以儲(chǔ)存及還原運(yùn)行狀態(tài)(如運(yùn)行中的程序) 可以虛擬網(wǎng)絡(luò)卡 可模擬多CPUQEMU 不再依賴于GCC3.X 版本,并且做到了“真正” 的動(dòng)態(tài)翻譯。 C-SKY QEMU 支持以下CPU: 1)C-SKY V1 指令集 CK510(E) CK520 CK610(EM)CK6202)C-SKY V2 指令集CK802(J)CK803(J) CK810本文詳細(xì)介紹了C-SKY QEMU 軟件模擬器的安裝和使用,引導(dǎo)開發(fā)人員在沒有開發(fā)板的情況下,利用本模擬器進(jìn)行

9、基于 C-SKY CPU 的應(yīng)用程序開發(fā),調(diào)試,測試。下文主要通過以下幾個(gè)方面進(jìn)行介紹:運(yùn)行環(huán)境,安裝和使用,常用選項(xiàng),SOC 的模擬,調(diào)試模式使用,使用實(shí)例。 2杭州中天微系統(tǒng)有限公司 C-SKY QEMU 用戶手冊 2運(yùn)行環(huán)境2.1 硬件環(huán)境基于 x86 架構(gòu)的 PC 或服務(wù)器。2.2 軟件環(huán)境Linux 環(huán)境: 1、主機(jī)的 Linux 內(nèi)核版本Linux 2.6.31 及以上2、主機(jī)標(biāo)準(zhǔn)C 庫版本 glibc-2.3.4-2.43 及以上 Windows 環(huán)境: 1、 windows xp 及以上版本 2、 msys 1.0 及以上版本 3、 tdm gcc 4.6 版本 4、 SDL

10、1.2.15 版本 5、 Zlib 1.2.2 版本 3安裝3.1 Linux 環(huán)境下安裝3.1.1 解壓源代碼在當(dāng)前用戶目錄(這里為/home/liangyc)下新建一個(gè) qemu 目錄(該目錄可以由用戶自行指定), 并把源碼的壓縮文件qemu-0.14.1.tar.gz 拷貝到該目錄下,解壓縮后進(jìn)入源碼目錄: 3.1.2 C-SKY QEMU 配置進(jìn)入源碼目錄后就可以配置 C-SKY QEMU 了,配置命令如下: 3杭州中天微系統(tǒng)有限公司/home/liangycmkdir qemu/home/liangyccd qemu/home/liangyc/qemutar zxvf qemu-0.

11、14.1.tar.gz/home/liangyc/qemucd qemu-0.14.1 C-SKY QEMU 用戶手冊 配置時(shí)通過-prefix 參數(shù)指定程序安裝的路徑,這里將 C-SKY QEMU 安裝到 qemu/qemu-install 目錄下;-target-list 參數(shù)指定編譯的目標(biāo),目前支持八種模式的配置,在配置時(shí)可以選擇其中的一種或者幾種模式來進(jìn)行配置,這八種模式分別是: 更多的配置參數(shù)可以通過配置時(shí)加上-help 來查看:3.1.3 C-SKY QEMU 編譯和安裝配置完成后下一步就是安裝了:C-SKY QEMU 的安裝路徑已經(jīng)在配置時(shí)通過-prefix 參數(shù)指定,安裝后生成

12、的可執(zhí)行文件在 qemu/qemu-install/bin 下面,如下圖所示: 4杭州中天微系統(tǒng)有限公司/home/liangyc/qemu/ qemu-0.14.1make/home/liangyc/qemu/ qemu-0.14.1make install/home/liangyc/qemu/qemu-0.14.1./configure -help-target-list=cskyv1-linux-userC-SKY CPU V1 小端用戶模式-target-list=cskyv2-linux-userC-SKY CPU V2 小端用戶模式-target-list=cskyv1eb-lin

13、ux-userC-SKY CPU V1 大端用戶模式-target-list=cskyv2eb-linux-userC-SKY CPU V2 大端用戶模式-target-list=cskyv1-softmmuC-SKY CPU V1 小端系統(tǒng)模式-target-list=cskyv2-softmmuC-SKY CPU V2 小端系統(tǒng)模式-target-list=cskyv1eb-softmmuC-SKY CPU V1 大端系統(tǒng)模式-target-list=cskyv2eb-softmmuC-SKY CPU V2 大端系統(tǒng)模式/home/liangyc/qemu/qemu-0.14.1./con

14、figure-target-list=”cskyv1-linux-user cskyv1eb-linux-user cskyv2-linux-usercskyv2eb-linux-user cskyv1-softmmucskyv1eb-softmmucskyv2-softmmu cskyv2eb-softmmu” -prefix=/home/liangyc/qemu/qemu-install C-SKY QEMU 用戶手冊 為了執(zhí)行程序的方便,將可執(zhí)行文件的路徑設(shè)置到$PATH 環(huán)境變量中: 3.2 Windows 環(huán)境下安裝3.2.1 設(shè)置 MinGW 環(huán)境在 Windows 平臺(tái)下編譯安裝

15、 QEMU 需要設(shè)置 MinGW 環(huán)境,設(shè)置 MinGW 環(huán)境的過程較為繁瑣耗時(shí),所以我們提供了已經(jīng)設(shè)置好環(huán)境的 MinGW 壓縮包 MinGW-csky-qemu.tar.gz,用戶可直接解壓縮即可得到設(shè)置好的MinGW 環(huán)境。當(dāng)然,用戶也可以自定義配置 MinGW 環(huán)境,請參考附錄 8.1(MinGW 環(huán)境自定義安裝)。為敘述方便,這里以%mingw-path%代表 MinGW 所在路徑。 3.2.2 CSKY QEMU 配置將qemu源 碼 拷 貝 到 %mingw-path%msys1.0homeuser目 錄 下 , 在 到 %mingw-path%msys1.0 運(yùn)行 msys.b

16、at 腳本,會(huì)出現(xiàn)一個(gè)類似linux shell 的命令行窗口,在 Windows 下 QEMU 的編譯配置與 linux 的類似,比如要編譯一個(gè)執(zhí)行 ABIV2 系統(tǒng)模式的QEMU。因 Windows 平臺(tái)下 QEMU 用戶模式是利用系統(tǒng)模式的封裝來實(shí)現(xiàn)的,所以在 configure 的時(shí)候不需要在目標(biāo)列表中指明用戶模式的 qemu 應(yīng)用程序。比如要編譯一個(gè)能執(zhí)行執(zhí)行 ABIV2系統(tǒng)模式或用戶模式的QEMU,需要按照如下方式配置: 故 windows 平臺(tái)下的QEMU 只支持四種target-list 選項(xiàng),這四種模式分別是: 5杭州中天微系統(tǒng)有限公司./configure target-l

17、ist=cskyv2-softmmu prefix=”C:Program FilesQemu”/home/liangyc/qemu/qemu-installexportPATH=$PATH:/home/liangyc/qemu/qemu-install/bin C-SKY QEMU 用戶手冊 3.2.3 QEMU 編譯和安裝Windows 下的編譯與安裝也跟 linux 類似。如果前面configure 指定了prefix,則會(huì)安裝到指定的安裝目錄,否則會(huì)安裝到默認(rèn)的C:Program FilesQemu,建議將安裝目錄添加到環(huán)境變量Path 中(右鍵“計(jì)算機(jī)”-屬性-高級(jí)系統(tǒng)設(shè)置-環(huán)境 變量

18、-修改 Path 環(huán)境變量)。 4簡單使用4.1 用戶模式這里以一個(gè) Main 程序?yàn)槔唵谓榻B下C-SKY QEMU 用戶模式的使用。main.c: Main 程序經(jīng) csky-elf-gcc 工具編譯后生成可執(zhí)行文件 main: 用 qemu 運(yùn)行 main 程序,結(jié)果如下:6杭州中天微系統(tǒng)有限公司/home/liangyc csky-linux-gcc main.c o main#include int main()printf(“Hello C-SKY!n”); return 0;makemake install-target-list=cskyv1-softmmuC-SKY CPU

19、V1 小端系統(tǒng)模式和用戶模式-target-list=cskyv2-softmmuC-SKY CPU V2 小端系統(tǒng)模式和用戶模式-target-list=cskyv1eb-softmmuC-SKY CPU V1 大端系統(tǒng)模式和用戶模式-target-list=cskyv2eb-softmmuC-SKY CPU V2 大端系統(tǒng)模式和用戶模式 C-SKY QEMU 用戶手冊4.2 系統(tǒng)模式C-SKY QEMU 的系統(tǒng)模式下可支持三種文件格式的程序加載:elf 文件,uimage 文件和 bin 文 件。以加載運(yùn)行C-SKY Bootloader V3.0 的 elf 映像文件為例: -soc:

20、指定 elf 文件運(yùn)行的 SOC 平臺(tái) -kernel:指定 elf 文件的路徑引導(dǎo)入ram 中運(yùn)行 -serial stdio:使模擬的串口輸入、輸出與當(dāng)前終端掛鉤運(yùn)行后如下:在 Bootloader 命令提示符下可以輸入命令,如下圖: 7杭州中天微系統(tǒng)有限公司 C-SKY QEMU 用戶手冊 5用戶模式5.1 選 項(xiàng)更多選項(xiàng)見 QEMU 用戶文檔。5.2 GDB 使用C-SKY QEMU 支持和 csky-gdb 進(jìn)行聯(lián)機(jī)調(diào)試,可以在 QEMU 運(yùn)行目標(biāo)程序的時(shí)候調(diào)試目標(biāo)程序,觀察程序運(yùn)行過程中的狀態(tài)。 仍以 4.1 中用戶模式下運(yùn)行 Main 程序?yàn)槔齺碚f明如何連接 csky-gdb 和

21、 C-SKY QEMU 來調(diào)試用戶程序。 首先用 C-SKY QEMU 裝載可執(zhí)行程序,并打開 1122 端口: 如上圖,C-SKY QEMU 正在等待 csky-gdb 連接到端口 1122。在另一終端開啟 csky-gdb 調(diào)試 main 程序,并通過target remote localhost:port 命令連接到端口1122,如centos55 的IP 為1,那么命令則為:target remote 1:11228杭州中天微系統(tǒng)有限公司-h顯示幫助信息 -s設(shè)置 c-sky 的堆棧大?。J(rèn)為 0x800000Byte) -cpu mode

22、l選擇 cpu 類型(例如-cpu ck803),可以輸入-cpu ?得到所有支持的 cpu類型 -d輸出 log 信息(logfile=/tmp/qemu.log) -g port等待 gdb 連接到端口:port-singlestep設(shè)置為目標(biāo)應(yīng)用程序?yàn)閱尾侥J竭\(yùn)行 C-SKY QEMU 用戶手冊 接下來便可以正常使用 GDB 進(jìn)行調(diào)試了。 5.3 Linux 平臺(tái)用戶模式使用實(shí)例在 C-SKY QEMU 用戶模式下運(yùn)行dhrystone 程序,該程序用來評(píng)估cpu 性能,如圖所示: 按照程序提示輸入執(zhí)行的次數(shù),如 10000000 次,測試結(jié)果如下: 5.4 Windows 平臺(tái)用戶模式

23、使用實(shí)例與 Linux 平臺(tái)下的QEMU 用戶模式不同,QEMU 模擬器在 windows 平臺(tái)下的用戶模式是用系統(tǒng)模式+內(nèi)核鏡像的方式實(shí)現(xiàn)的,其用法也和前者有較大的差異。 要在 windows 平臺(tái)下使用用戶模式,首先要編譯安裝系統(tǒng)模式的模擬器程序,這個(gè)過程包括設(shè)置 MinGW 環(huán)境、QEMU 配置、編譯和安裝以及設(shè)置 host 機(jī)網(wǎng)絡(luò)等步驟,詳細(xì)的說明請參照 3.2 節(jié)(windows 環(huán)境下安裝)和 小節(jié)(系統(tǒng)模式網(wǎng)絡(luò)使用),注意 host 機(jī)創(chuàng)建的 TAP 虛擬網(wǎng)卡必須命名為TAP0.在安裝 QEMU 系統(tǒng)模式時(shí),會(huì)默認(rèn)將用戶模式的執(zhí)行腳本 linux-user.bat

24、 和 csky Linux 內(nèi)核鏡像也安裝到對應(yīng)的安裝目錄中。(QEMU 在 windows 下默認(rèn)的安裝目錄是 C:Program FilesQemu, 如果用戶在configure 的時(shí)候指定了 prefix,則安裝到用戶指定的目錄;建議用戶將QEMU 的安裝目錄加入到環(huán)境變量Path 中,這樣在執(zhí)行QEMU 模擬器是就可以不用指明全路徑,非常方便) QEMU 安裝成功后,可以從 command 窗口用命令行的方式啟動(dòng) QEMU 用戶模式(如果沒有指定 Path 則 需 要 到 QEMU 的 安 裝 目 錄 或 輸 入 全 路 徑 運(yùn) 行 此 腳 本 ), 通 過 參 數(shù) -cskyv1/

25、-cskyv1eb/-cskyv2/-cskyv2eb 選擇 cpu 的 ABI 版本和大小端,其他參數(shù)都和 QEMU 的系統(tǒng)模式一樣。如下圖所示: 9杭州中天微系統(tǒng)有限公司 C-SKY QEMU 用戶手冊 回車,模擬器即開始運(yùn)行。 待內(nèi)核啟動(dòng)完畢后,用戶首先需根據(jù)自己的需要配置模擬器的 IP 地址(設(shè)置為與自己host 機(jī)上的TAP 虛擬網(wǎng)卡處于同一網(wǎng)段的合法 IP),這里做一個(gè)簡單的示例。 A 的 host 機(jī) TAP 虛擬網(wǎng)卡,IP 為 35,A 想設(shè)置模擬器內(nèi) Linux 內(nèi)核的 IP 為 0,如下圖: 經(jīng)過以上配置,用戶就可以通過

26、FTP 往模擬器中運(yùn)行的內(nèi)核文件系統(tǒng)中傳文件了(Linux 內(nèi)核里已經(jīng)默認(rèn)啟動(dòng)了 FTP 服務(wù)器),可以直接在 windows 資源管理器地址欄輸入 0或者利用其他專門的 ftp 軟件。 ftp 連接上之后,就可以向 FTP 服務(wù)器上傳文件了,因?yàn)橛脩裟康氖抢?QEMU 模擬器運(yùn)行CSKY 的 Linux 應(yīng)用程序,所以應(yīng)該把應(yīng)用程序文件以及所需要的數(shù)據(jù)文件都上傳的 FTP 服務(wù)器上。如 A 想在模擬器上跑hello 應(yīng)用程序,該程序需要一個(gè) input.dat 的數(shù)據(jù)文件,則將這兩個(gè)文件 傳到 ftp 服務(wù)器。 然后我們就可以在模擬器 Linux 內(nèi)核的

27、文件系統(tǒng)中看到該文件,默認(rèn)在根目錄的 ftp 目錄下。 這時(shí)可以到 ftp 目錄下執(zhí)行 hello 應(yīng)用程序,可以看到應(yīng)用程序的執(zhí)行結(jié)果,在這個(gè)例子中, 執(zhí)行結(jié)束后會(huì)產(chǎn)生一個(gè) output.dat 的輸出文件,然后 A 可以通過 ftp 下載該輸出文件。 上面的例子中,hello 是用靜態(tài)鏈接生成的應(yīng)用程序。如果使用動(dòng)態(tài)鏈接的程序,用戶還需要將所需要的動(dòng)態(tài)庫文件一并通過 ftp 上傳,并在 Linux 內(nèi)核中指定庫路徑,然后應(yīng)用程序才能正確運(yùn)行。 10杭州中天微系統(tǒng)有限公司 C-SKY QEMU 用戶手冊 6系統(tǒng)模式6.1 選 項(xiàng)常用選項(xiàng):USB 相關(guān):網(wǎng)絡(luò)相關(guān):默認(rèn)選項(xiàng):-net nic,

28、-net user-net nic,vlan=n ,macaddr=mac ,model=type ,name=name創(chuàng)建一個(gè)網(wǎng)卡,子選項(xiàng)含義如下: 11杭州中天微系統(tǒng)有限公司,vlan=n網(wǎng)卡連接到 vlan n,默認(rèn)為 vlan 0,macaddr=mac設(shè)置網(wǎng)卡 mac 地址 -usb使能USB 從設(shè)備的模擬 -usbdevice devname添加 USB 具體的從設(shè)備,可以通過查看控制臺(tái)命令 usb_add 幫助信息獲得更為詳細(xì)的信息 -h顯示幫助信息 -version顯示版本信息 -M machine選擇模擬的機(jī)器,可以輸入-M ?得到一個(gè)模擬的機(jī)器列表 -cpu model選擇

29、 cpu 類型(例如-cpu ck803),可以輸入-cpu ?得到所有支持的 cpu類型 -nographic使用這個(gè)選項(xiàng)可以禁止所有的圖形輸出,這樣 Qemu 只是一個(gè)簡單的命令行程序,模擬的串口將會(huì)重定向到命令行。所以,仍然可以在Qemu 平臺(tái)上使用串口命令來調(diào)試 Linux 內(nèi)核 -m megs設(shè)置目標(biāo)板內(nèi)存尺寸為megs M 字節(jié)。默認(rèn)情況下位 128M-serial dev重定向虛擬串口到主機(jī)的字符設(shè)備,在圖形化界面下默認(rèn)的設(shè)備類型C,在非圖形化界面下默認(rèn)的設(shè)備類型為stdio-parallel dev重定向虛擬并口到主機(jī)的設(shè)備 -monitor dev重定向監(jiān)視器到主機(jī)的設(shè)備 -

30、mtdblock file用此文件作為板子上的存儲(chǔ)鏡像 -snapshot寫入臨時(shí)文件而不是磁盤鏡像文件。在這種情況下,并沒有寫回所使用的磁盤鏡像文件,可以使用Ctrl-a s 來強(qiáng)制寫回磁盤鏡像文件 -bios指定一個(gè)小 boot 程序用于將 bin 文件引導(dǎo)入內(nèi)存中 -binstart當(dāng)載入的文件為 bin 文件且沒有小 boot 進(jìn)行引導(dǎo)時(shí),此參數(shù)可指定 bin 文件的開始運(yùn)行的地址 C-SKY QEMU 用戶手冊 -net user,option,option,.使用用戶模式網(wǎng)絡(luò) -net tap,vlan=n,name=name ,ifname=name,script=file,do

31、wnscript=dfile將 host 機(jī) tap 虛擬網(wǎng)卡到qemu 網(wǎng)絡(luò)的連接,子選項(xiàng)含義如下: -net socket,vlan=n,name=name,fd=h,listen=host:port,connect=host:port采用 tcp socket 連接兩個(gè) qemu 虛擬機(jī)中的 vlan n,子選項(xiàng)含義如下: -net socket,vlan=n,name=name,fd=h,mcast=maddr:port所有VLAN 連接到一個(gè) UDP 多播套接字上,從而使多個(gè)VLAN 通過一個(gè)總線通信。 -net vde,vlan=n,name=name,sock=socketpat

32、h,port=n,group=groupname,mode=octalmode12杭州中天微系統(tǒng)有限公司,vlan=n將 vlan n 連接到VDE,name=name指令連接的名稱 ,sock=socketpath連接的 socket 路徑 ,port=n連接到 VDE 的端口n,vlan=n將 vlan n 連接到套接字上 ,name=name指定連接名稱,qemu 控制臺(tái)可見 ,fd=h指定已經(jīng)打開的 UDP 多播套接字 ,mcast=maddr:port指定共享總線的地址和端 ,vlan=n指定 vlan n,默認(rèn)為 vlan 0,name=name連接命名,qemu 控制臺(tái)可見 ,f

33、d=h指定已打開的 tcp socket,listen=host:port指定端口 ,connect=host:port連接到另一 qemu 虛擬機(jī)中 listen 指定的端口 ,vlan=ntap 連接到 vlan n,默認(rèn)為vlan 0,name=nameTAP 網(wǎng)卡命名,qemu 控制臺(tái)可見 ,ifname=name指定 tap 名 ,script=file制定網(wǎng)絡(luò)配置文件,默認(rèn)為/etc/qemu-ifup,downscript=dfile制定網(wǎng)絡(luò)配置清除文件,默認(rèn)為/etc/qemu-ifdownvlan=n指定 vlan n,默認(rèn)為 vlan 0name=name指定連接名,qem

34、u 控制臺(tái)可見 net=addr/mask設(shè)置網(wǎng)絡(luò) IP 和掩碼,目標(biāo)系統(tǒng)可見,默認(rèn)為 /8host=addr設(shè)置目標(biāo)機(jī)可見的 host 機(jī)地址,默認(rèn)為目標(biāo)機(jī)網(wǎng)絡(luò)段的第二個(gè) IP,即 x.x.x.2.restrict=y|yes|n|noy/yes 表示目標(biāo)機(jī)不能與HOST 機(jī)以及其他目標(biāo)機(jī)通信,即被孤立 ,model=type指定待創(chuàng)建的網(wǎng)卡,C-SKY QEMU 僅支持 csky_mac,name=name網(wǎng)卡命名,qemu 控制臺(tái)可見 C-SKY QEMU 用戶手冊 -net dump,vlan=n,file=file,len=len將 vlan n 的網(wǎng)絡(luò)情況 dump

35、 到文件中,默認(rèn)文件為 -net none網(wǎng)絡(luò)禁用,覆蓋默認(rèn)網(wǎng)絡(luò)配置-net nic net userLinux 啟動(dòng)相關(guān): 當(dāng)使用 Linux 相關(guān)的選項(xiàng)時(shí),可以指定一個(gè)內(nèi)核,而沒有將它安裝在磁盤鏡像中。這對于簡單的測試各種內(nèi)核是相當(dāng)有用的。 GDB 調(diào)試相關(guān):更多選項(xiàng)見 QEMU 用戶文檔。6.2 組合鍵在圖形化的模擬時(shí),可以使用下列組合鍵:在模擬中,如果使用“-nographic“選項(xiàng),可以使用Ctrl-a h 來得到終端命令: 13杭州中天微系統(tǒng)有限公司Ctrl-Alt-f全屏化 Ctrl-Alt-n切換虛擬終端 n,標(biāo)準(zhǔn)的終端映射如下: 1、 目標(biāo)系統(tǒng)顯示(target system

36、 display) 2、 控制臺(tái)(monitor) 3、 串口 Ctrl-Alt切換鼠標(biāo)和鍵盤 在虛擬控制臺(tái)中, 我們可以使用 Ctrl-up, Ctrl-dowm, Ctrl-PageUp 和 Ctrl-PageDown 在屏幕中進(jìn)行移動(dòng) -s等待 gdb 連接到端口(默認(rèn)端口為 1234) -gdb tcp:port改變連接的 gdb 端口 -S在啟動(dòng)時(shí)并不啟動(dòng)CPU-d輸出log 到/tmp/qemu.log 文件 -kernel bzImage使用 bzImage 作為內(nèi)核映像 -append cmdline使用 cmdline 作為內(nèi)核的命令行 -initrd file使用file

37、作為初始的 ram 磁盤 ,vlan=n指定 vlan n,默認(rèn)為 vlan 0,file=file指定 dump 目標(biāo)文件,默認(rèn)為qemu-vlan0.pcap,len=len指定每個(gè)包的最大字節(jié)數(shù),默認(rèn)為 64k,group=groupname修改通信端口的默認(rèn)組 ,mode=octalmode修改通信端口的默認(rèn)權(quán)限 C-SKY QEMU 用戶手冊 6.3 Monitor在 QEMU 模擬運(yùn)行目標(biāo)程序的時(shí)候,同時(shí)也會(huì)啟動(dòng) Monitor,用于查看目標(biāo)機(jī)的狀態(tài)或者控制目標(biāo)機(jī)的運(yùn)行。在 Monitor 中,可以完成的操作有添加刪除設(shè)備、獲取虛擬機(jī)運(yùn)行狀態(tài)、更改虛擬機(jī)在運(yùn)行時(shí)的配置等。 啟動(dòng) Q

38、EMU 后通常是看不到 Monitor 界面的。要進(jìn)入該界面,可以在 QEMU 窗口激活的時(shí)候按住 Ctrl+Alt+2 進(jìn)入,切換回工作界面需要按 Ctrl+Alt+1。另外,還可以在 QEMU 啟動(dòng)的時(shí)候指定-monitor 參數(shù)。例如-monitor stdio 將允許標(biāo)準(zhǔn)輸入作為 monitor 命令源。 Monitor 的命令非常多,可以參考 QEMU 用戶文檔,下面只列舉幾個(gè)常用的命令: help 和 help cmd:Help 可以打印所有命令的幫助信息(help)或者查詢顯示某個(gè)命令的簡要幫助信息(help cmd) info:info 命令主要用來顯示虛擬機(jī)的運(yùn)行信息嗎,比如

39、 info blockstatus 將顯示虛擬機(jī)中的塊 設(shè)備的讀寫操作的信息。下面是在 Minitor 中執(zhí)行help info 命令的結(jié)果: 14杭州中天微系統(tǒng)有限公司Ctrl-a h打印幫助信息 Ctrl-a x退出模擬 Ctrl-a c在終端和控制臺(tái)之間進(jìn)行切換 Ctrl-a s將磁盤信息保存入文件(如果為-snapshot) C-SKY QEMU 用戶手冊 q:退出模擬器logfile filename:輸出 log 信息到 filename usb_add devname:添加 USB 設(shè)備 usbdevname:從 QEMU 虛擬的 USB hub 上刪除 USB 設(shè)備,可以輸入

40、infousb_del來查看可以刪除的 USB 設(shè)備6.4 磁盤鏡像C-SKY QEMU 的磁盤鏡像可以作為存儲(chǔ)NAND FLASH 的鏡像文件來保存寫入NAND FLASH中的數(shù)據(jù)。用下面的命令來創(chuàng)建一個(gè)磁盤映像: 這里myimage.img 是磁盤映像的文件名,而 mysize 是以K 表示的尺寸.。我們也可以使用 M后綴來表示尺寸,或是使用 G 作為后綴來表示尺寸。 qemu-img 的使用方法:15杭州中天微系統(tǒng)有限公司/home/liangycqemu-img create myimage.img mysize C-SKY QEMU 用戶手冊 可以支持下面的一些命令:命令參數(shù): fi

41、lename base_image修改的數(shù)據(jù) fmt(1) raw(2) qcow(3) cow磁盤映像文件名 只讀的磁盤映像,可以作為拷貝到寫映像的基礎(chǔ)。寫映像上的拷貝只存儲(chǔ) 磁盤映像格式。在大多數(shù)情況下可以自動(dòng)檢測,可以支持下面的格式: raw 是磁盤的默認(rèn)格式。這種格式有簡單并且易于移植到其他模擬器的優(yōu)點(diǎn)。Qemu 映像格式。最通用的格式,可以獲得較小的映像。 在寫映像格式上的用戶模式的 Linux 拷貝。在 QEMU 中作為增長的映像格式使 用.這個(gè)選項(xiàng)只是為了與以前版本的兼容,并不能在Win32 上使用。 (4) vmdk(5) cloop sizeVMware 3 和 4 兼容的映

42、像格式。 Linux 壓縮的循環(huán)映像,重用直接壓縮的 CD-ROM 映像。 以 K 表示的磁盤映像的尺寸,同時(shí)可以支持M 或是G 作為后綴。 output_filename output_fmt-c-e目的磁盤映像文件名目標(biāo)格式 表明目標(biāo)映像必須是壓縮的(只是qcow 格式) 表明目標(biāo)映像必須是加密的(只是qcow 格式)例如我們要?jiǎng)?chuàng)建一個(gè) 1G 的名為 test 格式為 raw 的磁盤鏡像,命令如下 6.5 SoC 的模擬模擬的 SOC 具有和實(shí)物開發(fā)板一樣的內(nèi)存空間分布和外圍設(shè)備及其地址空間分布。同樣,類似實(shí)物開發(fā)板,模擬的 SOC 也可以支持不同的 CPU(由-cpu 選項(xiàng)確定),包括的

43、 CPU 有: 1)C-SKY V1 指令集 CK510(E) CK520 CK610(EM)CK6202)C-SKY V2 指令集16杭州中天微系統(tǒng)有限公司/home/liangyccreate -e -b base_image -f fmt filename size/home/liangyccommit -f fmt filename/home/liangycconvert -c -e -f fmt filename -O output_fmt output_filename/home/liangycinfo -f fmt filename/home/liangycqemu-img co

44、mmand command options C-SKY QEMU 用戶手冊 CK802(J)CK803(J) CK810總體存儲(chǔ)空間分布如下:內(nèi)存地址分配如下:外圍設(shè)備及其地址空間如下:17杭州中天微系統(tǒng)有限公司地址空間(16 進(jìn)制)設(shè)備0x1000_0000-0x1000_0FFFAHB arbiter0x1000_1000-0x1000_1FFFMMCA0x1000_2000-0x1000_2FFFPower Management0x1000_3000-0x1000_3FFFDMA controller0x1000_4000-0x1000_4FFFLCDC controller0x1000

45、_5000-0x1000_5FFFUSB device controller0x1000_6000-0x1000_6FFFMAC controller -registers0x1000_7000-0x1000_7FFFMAC controller -buffer descriptor0x1000_8000-0x1000_AFFFNFC controller0x1000_B000-0x1000_BFFFUSB host controller0x1000_C000-0x1000_FFFFReserved0x1001_0000-0x1001_0FFFInterrupt controller0x100

46、1_1000-0x1001_1FFFTimer0x1001_2000-0x1001_2FFFReal Time clock0x1001_3000-0x1001_3FFFWatchdog0x1001_4000-0x1001_4FFFPWM0x1001_5000-0x1001_5FFFUart00x1001_6000-0x1001_6FFFUart10x1001_7000-0x1001_7FFFUart20x1001_8000-0x1001_8FFFI2C bus controller0x1001_9000-0x1001_9FFFGPIO controller0x1001_A000-0x1001_

47、AFFFSPI Maste0x1001_B000-0x1001_BFFFAC970x1001_C000-0x1001_CFFFSDHC地址空間大小描述控制器0x0000_0000-0x007F_FFFF8MBoff chip NOR-FLASHMMCA0x0080_0000-0x0080_1FFF8KBon chip SSRAMMMCB0x0800_0000-0x0FFF_FFFF128MBoff chip SDRMMCA地址空間大小描述0x0000_0000-0x0FFF_FFFF256Mon/off chip memory0x1000_0000-0x1FFF_FFFF256Mon chip

48、 peripheral0x2000_0000-0xFFFF_FFFFreversed C-SKY QEMU 用戶手冊 模擬的 SOC 開發(fā)板框架core select3 CPUcores clkgen & rstgenCPU/SoC select6.5.1 NFCC-SKY QEMU 模擬了NAND Flash 控制器,使用戶很方便的對 C-SKY CPU NAND Flash(即QEMU DISK IMAGE)進(jìn)行讀寫操作。NAND Flash 控制器由控制邏輯、寄存器單元、數(shù)據(jù)緩存、ECC 等模塊構(gòu)成。由于模擬的 C-SKY CPU NAND Flash 并不會(huì)出現(xiàn)硬件中的壞塊現(xiàn)象,所以

49、ECC 模塊以及NFC 使能和中斷等功能沒有進(jìn)行模擬,方便了用戶的操作。 模擬的 NAND Flash 控制器具有以下幾個(gè)特點(diǎn):a31.2.3.支持器件的頁面大小為 512Byte IO 寬度為 8支持兩個(gè)數(shù)據(jù)緩存器 Buf0 和 Buf1NAND Flash 控制器的地址空間分配如下: 寄存器14b00_0000_0000_0000-14b00_1111_1111_1111; 數(shù)據(jù)緩存器 014b01_0000_0000_0000-14b01_1000_0111_1111; 數(shù)據(jù)緩存器 114b10_0000_0000_0000-14b10_1000_0111_1111; NAND Flas

50、h 控制器中所有控制和狀態(tài)寄存器的地址映射與相關(guān)功能的描述見附錄。6.5.2 USB18杭州中天微系統(tǒng)有限公司other SoC parts0x1001_D000-0x1001_FFFFReserved0x1002_0000-0x1FFF_FFFFReserved C-S KY QEMU 用戶手冊 我們模擬了 USB 主控制器,這樣客戶可以插入各種USB 設(shè)備進(jìn)行開發(fā)、測試等工作。 支持的 USB 設(shè)備主要有:鼠標(biāo)、鍵盤、U 盤等常見 USB 設(shè)備,并且需要系統(tǒng)的相應(yīng)驅(qū)動(dòng)支持。加載USB 設(shè)備有兩種方法: 1. 在運(yùn)行程序開始時(shí)加載USB 設(shè)備,即命令行輸入時(shí)加入-usbdevice 設(shè)備:

51、2. 在運(yùn)行程序時(shí)使用-usb 選項(xiàng)使能 USB 主控器,在進(jìn)入程序后在 QEMU 控制臺(tái)用 usb_add 或 者 usb_del 加載或者卸載 USB 設(shè)備 6.5.3 網(wǎng)卡C-SKY QEMU 模擬了C-SKY MAC 控制器,是虛擬機(jī)能夠與外界進(jìn)行通信,示意圖如下。 + |Guest OS +-+|NIC|+-+-+-+-+ | +-+|+ Other IFVLAN | + Other IF+-+|+ +命令行上-net nic 即為虛擬機(jī)創(chuàng)建了 csky_mac 網(wǎng)卡,且目前僅支持該網(wǎng)卡。 虛擬機(jī)啟動(dòng)之后可以再 Monitor 中查看網(wǎng)絡(luò)狀態(tài): 虛擬機(jī)的虛擬網(wǎng)卡連接在模擬器虛擬的 VLAN 中。每個(gè) C-SKY QEMU 的運(yùn)行實(shí)例可以虛擬一些VLAN,虛擬機(jī)網(wǎng)絡(luò)設(shè)備接入這些VLAN 中。當(dāng)某個(gè) VLAN 上連接的網(wǎng)絡(luò)設(shè)備發(fā)送數(shù)據(jù)幀, 與它在同一個(gè)VLAN 中的其它網(wǎng)路設(shè)備都能接收到數(shù)據(jù)幀。沒有指定其連接的 VLAN 號(hào)時(shí),默認(rèn)將該網(wǎng)卡連入vlan0。各個(gè) VLAN 通過 4 種通信方式與外界聯(lián)網(wǎng)。 1、 User mode stack這種

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論