跳转至

硬件平台模拟环境

第二章 硬件平台模拟环境

模拟环境基于Qemu,可以模拟真正的硬件实验平台,可以运行监控程序,并且可以与终端程序进行交互。模拟环境可以运行在Windows,Linux以及MacOS下。运行在MacOS和Linux下的配置方法类似。

模拟环境在Windows下的快速安装

在Windows下面已经准备了一个快速安装包,无需任何设置就可以使用,整个模拟环境就是一个压缩文件rv.zip,直接解压缩使用即可。

模拟环境包括了:32位监控程序源代码,RISC-V编译器,QEMU模拟器和GDB调试器。在C盘或者其它盘的根目录下解压缩即可。(之所以建议是根目录的原因是Windows对目录名的长度限制比较短,如果在其它目录下解压缩会出现目录名不够长的错误,大部分情况下忽略即可。)

下图是解压缩之后进入目录的情况:

解释一下各个子目录和文件的构成

  • msys子目录,里面是Minimal SYStem的环境。Minimal SYStem是在Windows下面模拟UNIX环境的工具,提供一些开发的基础支撑环境,最重要的是make工具,可以自动执行编写好的Makefile脚本。具体信息可以参看http://www.mingw.org/msys.shtml

  • python37-32子目录,python的执行环境,已经配置好所需要的python环境,可以直接使用。

  • QEMU子目录,RISC-V的QEMU模拟器。

  • supervisor-rv子目录,监控程序的源代码以及编译环境。这个目录下的代码和文件不见得是最新的,请参考前一章的内容从网上下载最新的监控程序。

  • thinpad_top子目录,Vivado的顶层项目文件,同学们可以基于这个项目文件来编写自己的硬件代码。这个目录下的代码和文件不见得是最新的,请参考前一章从网上下载最新的监控程序。

  • toolchain子目录,RISC-V的交叉编译工具。

  • tools子目录,一些工具,当前只有串口工具putty,如果是网络实验环境的话则不需要。

  • "编译Kernel并启动模拟器.cmd",这是在Windows下的可执行批处理文件,直接双击打开可以启动编译内核并启动模拟器。

  • "打开命令行.cmd",是已经配置好环境的Windows下的RISC-V的开发环境,直接双击打开即可。

  • "启动Term并连接模拟器.cmd",是Windows下面的terminal工具,连接模拟器,直接双击打开即可。

  • 文件说明.txt,说明文件。

下面看一下在rv子目录下的几个Windows可执行批处理程序开始执行的效果:

双击打开"编译Kernel并启动模拟器.cmd",可以看到内核被编译和执行。

上述命令执行后,内核已经在模拟器QEMU的模拟下执行,等待串口连接。

双击打开"启动Term并连接模拟器.cmd",可以看到终端已经连接上,可以键入命令。至于有一些什么样的命令,以及如何使用命令可以参考在监控程序源代码目录下的README.md文件。

双击打开"打开命令行.cmd",可以看到一个开发环境(环境参数已经配置完成,可以直接使用。)

上述是在Windows下面直接使用rv.zip进行模拟环境的安装和配置。如果同学们有兴趣要看一下这些已经配置好的模拟环境从什么地方来的,可以参考sifive网站。sifive的网站(https://www.sifive.com/software)上有现成的QEMU的编译版本,直接解压缩就可以使用。而Qemu(https://www.qemu.org)的官方网站上也有如何按照模拟器的信息,在安装和配置方面更为麻烦一些(主要是设置PATH,即执行路径)。

模拟环境在Ubuntu Linux环境下的安装和配置

任意的类似UNIX环境下(包括各个不同的Linux发行版,MacOS等)安装和配置模拟环境都是类似的。主要包括安装QEMU,安装编译工具链,安装pyserial等。Linux的各个发行版对于目录的组织方式,包管理的方式各不相同,例如在Ubuntu下面使用apt来管理包,对于CentOS或者Fedora则通过yum来进行包管理。这方面的使用方法参考不同的Linux发现版来进行。下面的安装过程是以Windows下对的Ubuntu环境为例说明在类似UNIX环境下的模拟环境如何进行安装和配置。

Windows下的Ubuntu环境开发

Windows 10的版本提供了兼容Ubuntu的开发环境,如果在Windows下面进行实验,也可以安装Ubuntu来进行,可以利用Linux环境下的很多方便的命令行工具。安装Ubuntu for Windows只需要通过Windows的Microsoft Store就可以安装。但是需要打开Windows下的一个操作系统组成组件开关,即先要打开UNIX Subsystem for Windows的选项。在搜索栏上搜索"turn Windows features on or off",或者"启用或者关闭Windows功能"。

安装完成之后,后续工作与原生的Ubuntu系统一样。Windows下的Ubuntu环境已经是原生的Linux开发环境,完全可以按照Linux的习惯来。其包管理方式,目录组织方式和纯粹的Ubuntu环境相同,而实验的Qemu模拟环境是用户态的应用程序,安装和配置方法和纯粹的Ubuntu环境相同。下面的安装和配置以Windows下的Ubuntu为例,纯粹的Ubuntu环境与这里的安装和配置过程相同。

安装QEMU模拟器

这一步的模拟器不需要安装(当然也可以通过qemu的官方网站安装,注意要安装完全,支持RISC-V指令的模拟),从下面网址直接下载解压缩即可:

https://www.sifive.com/boards

解压缩

tar zxvf riscv-QEMU-4.1.0-2019.08.0-x86_64-Linux-ubuntu14.tar.gz

安装工具链

工具链也不需要安装,直接从sifive网站下载即可:

使用命令解压缩即可

tar zxvf riscv64-unknown-elf-gcc-8.3.0-2019.08.0-x86_64-Linux-ubuntu14.tar.gz

安装Python环境以及pyserial

1. 安装python,python3版本都是可以的,从python的官网下载安装文件即可以安装。

2. 安装pip,或者pip3,取决于安装的版本(如果版本Python 2 >=2.7.9 or Python 3 >=3.4,pip是预先安装的,不需要手动安装)。如果需要手动安装的话,参考以下的网址进行安装。https://pip.pypa.io/en/stable/installing/

3. 安装pyserial

pip install pyserial

在安装完成python之后,尝试使用下列命令安装pip以及pyserial

sudo apt install python-pip

pip install pyserial

上述工具安装完成之后,需要设置环境变量,就是设置可执行程序的路径(下面是在教师笔记本上的例子,可以设置在.bash环境中,或者直接在当前命令行设置环境变量。设置需要依据具体的环境配置,不能照抄):

export PATH=/home/chenkang/riscv64-unknown-elf-gcc-8.3.0-2019.08.0-x86_64-Linux-ubuntu14/bin:\$PATH

export PATH=/home/chenkang/riscv-QEMU-4.1.0-2019.08.0-x86_64-Linux-ubuntu14/bin:\$PATH

Linux下面的辅助工具是现成的,不需要特别安装。

在ubuntu下面执行的时候,可能会出现找不到libpng12的错误,用下面的命令安装一下

wget -q -O /tmp/libpng12.deb http://mirrors.kernel.org/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.54-1ubuntu1_amd64.deb \ && dpkg -i /tmp/libpng12.deb \ && rm /tmp/libpng12.deb


最后更新: 2021年10月25日