仿真
不是原創(chuàng)只提供翻譯!機器翻譯可能不正常!
仿真
QEMU的微型代碼生成器(TCG)提供了模擬 任何受支持的主機平臺上的 CPU 體系結構數(shù)量。同時支持系統(tǒng)仿真和用戶模式仿真?取決于來賓體系結構。
支持的來賓仿真體系結構
體系結構(qemu 名稱)
系統(tǒng)
用戶
筆記
阿爾法
是的
是的
由DEC開發(fā)的舊版64位RISC ISA
手臂(手臂,aarch64)
是的
是的
功能廣泛,有關詳細信息,請參閱?A 配置文件 CPU 架構支持
AVR
是的
不
8位微控制器,常用于創(chuàng)客項目
克里斯
是的
是的
安訊士開發(fā)的嵌入式RISC芯片
六角形
不
是的
高通公司的DSP系列
PA-RISC (hppa)
是的
是的
惠普舊小型計算機中使用的傳統(tǒng)RISC系統(tǒng)
x86 (i386, x86_64)
是的
是的
無處不在的臺式 PC CPU 架構,32 位和 64 位。
龍拱
是的
是的
中國開發(fā)的類似MIPS的64位RISC架構
M68K
是的
是的
摩托羅拉68000變體和ColdFire
微焰
是的
是的
基于 RISC 的賽靈思軟核
MIPS (MIPS*)
是的
是的
源自斯坦福大學的古老RISC架構
尼奧斯2
是的
是的
32位嵌入式軟核,由Altera提供
OpenRISC
是的
是的
OpenRISC社區(qū)開發(fā)的開源RISC架構
功率 (ppc, ppc64)
是的
是的
現(xiàn)在由 IBM 管理的通用 RISC 架構
RISC-V
是的
是的
由RISC-V International維護的開放標準RISC ISA
接收
是的
不
瑞薩電子開發(fā)的32位微控制器
S390X
是的
是的
在IBM的System Z大型機中找到的64位CPU
SH4
是的
是的
日立開發(fā)的32位RISC嵌入式CPU
SPARC (sparc, sparc64)
是的
是的
最初由Sun Microsystems開發(fā)的RISC ISA
三核
是的
不
英飛凌開發(fā)的32位RISC/uController/DSP
Xtensa
是的
是的
可配置的32位軟核,現(xiàn)在歸Cadence所有
許多功能僅在以下情況下可用 仿真,包括錄制/回放和?QEMU TCG 插件。
半托管
半托管是由架構所有者定義的一項功能 允許程序與調(diào)試主機系統(tǒng)交互。在真實 硬件 這通常由在線仿真器 (ICE) 提供 直接鉤在板上。QEMU的實施允許 要傳遞到主機系統(tǒng)的半托管調(diào)用或通過 .gdbstub
通常,半托管可以更容易地在 已啟用功能更齊全的操作系統(tǒng)。在QEMU上它 還允許嵌入式微控制器代碼,而這些代碼通常不會 有一個完整的libc在QEMU的用戶模式下作為“裸機”代碼運行 仿真。它對于編寫測試用例也很有用,實際上 編譯器套件的數(shù)量以及 QEMU 本身使用半托管調(diào)用 退出測試代碼,同時報告成功狀態(tài)。
半托管僅使用 TCG 仿真可用。這是因為 觸發(fā)半托管調(diào)用的說明通常是保留的 導致大多數(shù)虛擬機管理程序捕獲并出錯。
警告
半托管本質(zhì)上繞過了兩者之間可能存在的任何隔離 客人和主人。因此,使用半托管的程序可以 愉快地丟棄您的主機系統(tǒng)。你應該只運行受信任的 啟用了半托管的代碼。
重定向
半托管呼叫可以重定向到(可能是遠程的)gdb 在通過?gdbstub?進行調(diào)試期間。輸出到 半托管控制臺配置為 所以可以 像任何其他設備一樣重定向到文件、管道或套接字。chardev
chardev
支持的目標
大多數(shù)目標提供類似的半托管實現(xiàn),其中一些 微小的更改,以定義適當?shù)闹噶顏砭幋a 半托管調(diào)用和哪個寄存器保存參數(shù)。他們傾向于 呈現(xiàn)一個簡單的類似POSIX的API,允許您的程序讀取和 編寫文件、訪問控制臺和其他一些基本交互。
有關特定目標的 ABI 的完整詳細信息,以及 調(diào)用它提供,您應該查閱半托管規(guī)范 對于該體系結構。
注意
QEMU 做出實施決策以實施所有文件 在模式下訪問。用戶可見的效果是 無論程序設置QEMU將采用何種文本/二進制模式 始終選擇二進制模式,確保無線路終止符轉換 在輸入或輸出上執(zhí)行。這是因為 gdb 半托管 支持不會區(qū)分模式和 神奇地處理行尾可能會令人困惑。O_BINARY
支持半托管的來賓體系結構
建筑
模式
規(guī)范
手臂
系統(tǒng)和用戶模式
https://github.com/ARM-software/abi-aa/blob/main/semihosting/semihosting.rst
M68K
系統(tǒng)
https://sourceware.org/git/?p=newlib-cygwin.git;a=blob;f=libgloss/m68k/m68k-semi.txt;hb=HEAD
MIPS
系統(tǒng)
統(tǒng)一主機接口 (MD01069)
尼奧斯二世
系統(tǒng)
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;a=blob;f=libgloss/nios2/nios2-semi.txt;hb=HEAD
RISC-V
系統(tǒng)和用戶模式
https://github.com/riscv/riscv-semihosting-spec/blob/main/riscv-semihosting-spec.adoc
Xtensa
系統(tǒng)
天硅國際空間站西姆卡爾