RISC-V 模拟器与从零开始的 Linux 系统
摘要
本仓库提供了 RISC-V 模拟器的源代码,以及从零开始构建一个最小 Linux 系统的教程,包括设备模拟和 WebAssembly 支持。
暂无内容
查看缓存全文
缓存时间: 2026/09/11 14:24
WerWolv/riscv-emulator
源码仓库: https://github.com/WerWolv/riscv-emulator
从零构建RISC-V模拟器与Linux系统
本仓库包含跟随博客文章 https://werwolv.net/posts/linux_bringup/ 所需的全部源码
源代码
/lib包含完整的 rv32ima 指令集模拟器代码及最小化模拟设备集/main包含机器配置参数及提供给WebAssembly的接口函数
配置文件
构建Linux所需的所有配置文件位于 /boot 目录。主程序默认要求所有编译产物存放在 boot 文件夹
riscv32-unknown-linux-gnu.config—— crosstool-ng 工具链配置文件riscv_emulator_defconfig—— Linux内核配置文件device_tree.dts—— 最小化设备树描述文件- 可通过
dtc -I dts -O dtb device_tree.dts -o device_tree.dtb编译为二进制设备树
- 可通过
init.c—— 初始化程序源码- 可通过
riscv32-unknown-linux-gnu-gcc -static init.c -o init静态编译
- 可通过
initramfs.txt——gen_init_cpio配置文件(用于生成初始内存盘)- 可通过
usr/gen_init_cpio initramfs.txt -o initramfs.cpio生成cpio归档
- 可通过
相似文章
如何在新平台上移植Linux内核
本文以模拟RISC-V CPU为例,阐述如何在新平台上移植Linux内核,包含设置最小硬件组件的分步指导与代码实现。
突破 RISC-V 模拟的极限
这篇博客文章探讨了如何通过在非 RISC-V 机器上使用提前重编译器来加速 RISC-V 执行,该重编译器通过尾调用连接基本块,并利用 Clang 的 preserve_none 调用约定,作为 Axiom 的 OpenVM 项目的一部分。
书籍:RISC-V系统芯片设计
一本涵盖RISC-V微处理器和系统芯片详细设计的教材,包括用于单发射、超标量和多核实现的开源SystemVerilog代码和测试用例。
RISCBoy 是一款从零开始设计的开源便携游戏机
RISCBoy 是一款开源便携游戏机,采用 RISC-V CPU 和光栅图形流水线,基于 iCE40 FPGA 实现。该项目包含处理器设计、图形硬件、PCB 布局,并且完全开源。
Scratch 中的 8086 模拟器
一位开发者在 Scratch 中构建了一个 8086 CPU 模拟器,展示了在可视化编程环境中的复古硬件模拟。