官术网_书友最值得收藏!

2.1 實驗平臺

2.1.1 QEMU

QEMU Virt實驗平臺(QEMU模擬器中內置的一塊虛擬開發板)模擬的是一款通用的RISC-V開發板,包括內存布局、中斷分配、CPU配置、時鐘配置等信息,這些信息目前都在QEMU的源代碼中實現,具體文件是qemu/hw/riscv/virt.c。QEMU Virt實驗平臺具有如下硬件特性。

最多支持8個RV32GC/RV64GC通用處理器內核。

支持CLINT。

支持平臺級別的中斷控制器。

支持NOR Flash存儲器。

支持兼容NS16550的串口。

支持RTC。

支持8個VirtIO-MMIO傳輸設備。

支持1個PCIe主機橋接設備。

支持fw_cfg,用于從QEMU獲取固件配置信息。

QEMU Virt開發板的地址空間布局如表2.1所示。

表2.1 QEMU Virt開發板的地址空間布局

QEMU Virt模擬的開發板的中斷號分配如表2.2所示。

表2.2 QEMU Virt模擬的開發板的中斷號分配

2.1.2 NEMU

NEMU(NJU Emulator)最早是由南京大學實現的一個用于教學的計算機指令集體系結構(Instruction Set Architecture,ISA)模擬器,香山處理器團隊基于2019版的NEMU進行了增強和維護,以模擬香山處理器前期指令集和體系結構。本章把NEMU簡稱為香山模擬器。NEMU支持x86、RV32和RV64等指令集體系結構。

RV64版本NEMU具有如下硬件特性。

支持1個RV64GC通用處理器內核。

支持CLINT。

支持NOR Flash存儲器。

支持兼容NS16550的串口。

支持Xilinx UartLite串口控制器。

支持RTC。

支持單步調試。

RV64版本的NEMU Virt開發板的地址空間布局如表2.3所示。

表2.3 NEMU Virt開發板的地址空間布局

表2.3中的信息都可以在NEMU的Configure菜單中配置。

使用NEMU之前需要自行編譯。

$ sudo apt install libsdl2-dev libreadline-dev
$ git clone https://github.com/runninglinuxkernel/NEMU.git
$ cd NEMU
$ export NEMU_HOME=$(pwd)
$ make riscv64-benos_defconfig
$ make -j$(nproc)
$ sudo cp build/riscv64-nemu-interpreter /usr/local/bin
主站蜘蛛池模板: 琼海市| 鸡西市| 舟山市| 武义县| 西畴县| 龙海市| 咸丰县| 那坡县| 宁南县| 罗甸县| 堆龙德庆县| 界首市| 靖安县| 县级市| 岫岩| 香河县| 青田县| 文化| 陇川县| 长兴县| 南平市| 高阳县| 工布江达县| 江安县| 花垣县| 通城县| 黄石市| 天台县| 措勤县| 安多县| 宜宾县| 浦江县| 宜川县| 凤山县| 遂溪县| 南京市| 正宁县| 邹城市| 龙陵县| 望奎县| 松滋市|