金湖企业网站制作,sem推广方案,天津建筑工程公司有哪些,专业软文代写#x1f449;#x1f3fb; 文章汇总「从零实现模拟器、操作系统、数据库、编译器…」#xff1a;https://okaitserrj.feishu.cn/docx/R4tCdkEbsoFGnuxbho4cgW2Yntc
使用 C23 从零实现 RISC-V 模拟器
使用 C23 从零实现的 RISC-V 模拟器#xff0c;最终的模拟器可以运行 x… 文章汇总「从零实现模拟器、操作系统、数据库、编译器…」https://okaitserrj.feishu.cn/docx/R4tCdkEbsoFGnuxbho4cgW2Yntc
使用 C23 从零实现 RISC-V 模拟器
使用 C23 从零实现的 RISC-V 模拟器最终的模拟器可以运行 xv6 操作系统。
教程: everystep代码: crvemu
本教程参考了 Asami 所写的 Rust 版本的模拟器教程 但是原版只写了前三章。此外也参考了 Rare 对 rvemu 的改进 Rare 这也是一个 Rust 版本的并且已经完结了对 rust 版本感兴趣的可以参考上面所给出对应的链接。
接下来我将会用 C 23 来实现原则是即能用上的新特性全部都用上。以循序渐进的方式最终实现一个可以运行 xv6 操作系统的 RISC-V 模拟器。此外重新组织了实现方式一定程度上降低了难度梯度。
前置知识
假设读者学过 C 语言并且了解一点 C 的基本概念即 C with class 水平即可。
对于 RISC-V 方面的知识可以参考下面的内容
RISC-V SpecificationsRISC-V Reader手把手教你设计 RISC-V 处理器
开发环境
Linux / Win(WSL) / MacOS
使用 docker 开发其内部包含了一个 Ubuntu 20.04其中用到了 riscv64-unknown-elf-gcc 也可以用 clang 来编译。
lab0-start-code 分支是一个包含了 gtest 的启动代码。项目名称为 crvemu 即 C RISC-V emulate 的缩写。
git clone --recurse-submodules https://github.com/weijiew/crvemu
cd crvemu mkdir -p build cd build
cmake .. make -j $(nproc)
./crvemu
# Hello, World!验证 gtest
cmake .. make -j $(nproc) ./g_test问题
如有任何问题可以随时提 crvemu issue。 文章汇总「从零实现模拟器、操作系统、数据库、编译器…」https://okaitserrj.feishu.cn/docx/R4tCdkEbsoFGnuxbho4cgW2Yntc