- RISC-V體系結構編程與實踐(第2版)
- 笨叔
- 562字
- 2024-09-23 17:55:59
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
- Implementing VMware Horizon 7(Second Edition)
- C#編程入門指南(上下冊)
- CKA/CKAD應試教程:從Docker到Kubernetes完全攻略
- 軟件工程
- H5頁面設計:Mugeda版(微課版)
- C語言程序設計實驗指導 (第2版)
- Julia高性能科學計算(第2版)
- 匯編語言編程基礎:基于LoongArch
- 現代C++編程實戰:132個核心技巧示例(原書第2版)
- Scratch3.0趣味編程動手玩:比賽訓練營
- HTML5開發精要與實例詳解
- Clean Code in C#
- C語言程序設計
- JavaWeb從入門到精通(視頻實戰版)
- 關系數據庫與SQL Server 2012(第3版)