[手搓 RISC-V 高性能模拟器]笔记一

第一课主要是描述环境搭建,以及rvemu效果演示
我使用docker搭建了一个实验环境,其中使用了clang-15,根据老师的测试,比系统默认的版本是10要快。使用方法如下:

下载Ubuntu 22.04,并运行container执行脚本

docker pull ubuntu:22.04
docker run -it -v <本地文件夹路径>:<container中文件夹路径> --name <container名称> build.sh
docker exec -it <container名称> bin/bash

build.sh

#!/bin/bash
export DEBIAN_FRONTEND=noninteractive

apt-get update
apt-get upgrade
apt-get install -y apt-utils
apt-get install -y build-essential
apt-get install -y wget git-core
apt-get install -y autoconf automake autotools-dev curl python3 libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev ninja-build

mkdir -p /home/rvemu
cd /home/rvemu

wget https://github.com/riscv-collab/riscv-gnu-toolchain/releases/download/2023.01.31/riscv64-elf-ubuntu-22.04-nightly-2023.01.31-nightly.tar.gz
tar -zxvf riscv64-elf-ubuntu-22.04-nightly-2023.01.31-nightly.tar.gz
mv riscv /opt/
export PATH=$PATH:/opt/riscv/bin

apt-get install -y clang-15 lldb-15 lld-15
ln -s /usr/bin/clang-15 /usr/bin/clang

技术总结:

  1. 本课程使用了newlib而不是glibc,因为

我们之所以选择使用 Newlib 版本的工具链而不是常见的 glibc,是因为 Newlib
只需要实现很少的系统调用就可以完成大部分的功能,这样可以简化我们模拟器的实现。

  1. 需要补充很多前置知识
    例如:Makefile,C语言基础,最重要的是

RISC-V,尤其是 RV64GC 非特权指令集的部分

RISC-V 参考资料:
Volume 1, Unprivileged Specification version 20191213
The RISC-V Reader: An Open Architecture Atlas

你可能感兴趣的:(RV模拟器,risc-v,ubuntu,linux)