|
|
@ -28,9 +28,19 @@ PKE实验在[头歌平台](https://www.educoder.net/)上进行了部署,但因
|
|
|
|
|
|
|
|
|
|
|
|
<a name="subsec_ubuntu"></a>
|
|
|
|
<a name="subsec_ubuntu"></a>
|
|
|
|
|
|
|
|
|
|
|
|
### 2.1.2 Ubuntu操作系统环境
|
|
|
|
### 2.1.2 Windows环境(WSL)
|
|
|
|
|
|
|
|
|
|
|
|
实验环境我们推荐采用Ubuntu 16.04LTS或18.04LTS(x86_64)操作系统,我们未在其他系统(如arch,RHEL等)上做过测试,但理论上只要将实验中所涉及到的安装包替换成其他系统中的等效软件包,就可完成同样效果。另外,我们在EduCoder实验平台(网址:https://www.educoder.net )上创建了本书的同步课程,课程的终端环境中已完成实验所需软件工具的安装,所以如果读者是在EduCoder平台上选择的本课程,则可跳过本节的实验环境搭建过程,直接进入通过终端(命令行)进入实验环境。
|
|
|
|
如果读者的工作环境是Windows10的专业版,可采用WSL(Windows Subversion Linux)+MobaXterm的组合来搭建PKE的实验环境。在Windows10专业版上配置该环境的说明,可以参考[这里](https://zhuanlan.zhihu.com/p/81769058)。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
需要说明的是,PKE实验并不需要中文字体、图形界面或者JAVA的支持,所以读者在安装WSL的过程中无须安装于汉化相关的包,也无需安装xfce、JDK等。只需要安装WSL的基础环境后,再按照[下一节](#subsec_ubuntu)的说明继续完成PKE开发环境的安装。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<a name="subsec_ubuntu"></a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 2.1.3 Ubuntu操作系统环境
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
实验环境我们推荐采用Ubuntu 16.04LTS或18.04LTS(x86_64)操作系统,以及WSL中的相应版本。我们未在其他系统(如arch,RHEL等)上做过测试,但理论上只要将实验中所涉及到的安装包替换成其他系统中的等效软件包,就可完成同样效果。另外,我们在EduCoder实验平台(网址:https://www.educoder.net )上创建了本书的同步课程,课程的终端环境中已完成实验所需软件工具的安装,所以如果读者是在EduCoder平台上选择的本课程,则可跳过本节的实验环境搭建过程,直接进入通过终端(命令行)进入实验环境。
|
|
|
|
|
|
|
|
|
|
|
|
PKE实验涉及到的工具软件有:
|
|
|
|
PKE实验涉及到的工具软件有:
|
|
|
|
|
|
|
|
|
|
|
@ -40,7 +50,7 @@ PKE实验涉及到的工具软件有:
|
|
|
|
|
|
|
|
|
|
|
|
以下分别介绍这两个部分的安装过程。对于新安装的Ubuntu操作系统,**我们强烈建议读者在新装环境中完整构建(build)RISC-V交叉编译器,以及spike模拟器**。(对于熟练用户)为了避免耗时且耗资源的构建(build)过程,一个可能的方案是从https://toolchains.bootlin.com 下载,**但是要注意一些依赖包(如GCC)的版本号**。如果强调环境的可移植性,可以考虑在虚拟机中安装完整系统和环境,之后将虚拟机进行克隆和迁移。
|
|
|
|
以下分别介绍这两个部分的安装过程。对于新安装的Ubuntu操作系统,**我们强烈建议读者在新装环境中完整构建(build)RISC-V交叉编译器,以及spike模拟器**。(对于熟练用户)为了避免耗时且耗资源的构建(build)过程,一个可能的方案是从https://toolchains.bootlin.com 下载,**但是要注意一些依赖包(如GCC)的版本号**。如果强调环境的可移植性,可以考虑在虚拟机中安装完整系统和环境,之后将虚拟机进行克隆和迁移。
|
|
|
|
|
|
|
|
|
|
|
|
#### 2.1.1 RISC-V交叉编译器
|
|
|
|
#### RISC-V交叉编译器
|
|
|
|
|
|
|
|
|
|
|
|
RISC-V交叉编译器是与Linux自带的GCC编译器类似的一套工具软件集合,不同的是,x86_64平台上Linux自带的GCC编译器会将源代码编译、链接成为适合在x86_64平台上运行的二进制代码(称为native code),而RISC-V交叉编译器则会将源代码编译、链接成为在RISC-V平台上运行的代码。后者(RISC-V交叉编译器生成的二进制代码)是无法在x86_64平台(即x86_64架构的Ubuntu环境下)直接运行的,它的运行需要模拟器(我们采用的spike)的支持。
|
|
|
|
RISC-V交叉编译器是与Linux自带的GCC编译器类似的一套工具软件集合,不同的是,x86_64平台上Linux自带的GCC编译器会将源代码编译、链接成为适合在x86_64平台上运行的二进制代码(称为native code),而RISC-V交叉编译器则会将源代码编译、链接成为在RISC-V平台上运行的代码。后者(RISC-V交叉编译器生成的二进制代码)是无法在x86_64平台(即x86_64架构的Ubuntu环境下)直接运行的,它的运行需要模拟器(我们采用的spike)的支持。
|
|
|
|
|
|
|
|
|
|
|
@ -86,7 +96,7 @@ RISC-V交叉编译器的构建需要一些本地支撑软件包,可使用以
|
|
|
|
|
|
|
|
|
|
|
|
以上命令设置了RISCV环境变量,指向在第三步中的安装目录,并且将交叉编译器的可执行文件所在的目录加入到了系统路径中。这样,我们就可以在PKE的工作目录调用RISC-V交叉编译器所包含的工具软件了。
|
|
|
|
以上命令设置了RISCV环境变量,指向在第三步中的安装目录,并且将交叉编译器的可执行文件所在的目录加入到了系统路径中。这样,我们就可以在PKE的工作目录调用RISC-V交叉编译器所包含的工具软件了。
|
|
|
|
|
|
|
|
|
|
|
|
#### 2.1.2 spike模拟器
|
|
|
|
#### spike模拟器
|
|
|
|
|
|
|
|
|
|
|
|
接下来,安装spkie模拟器。首先取得spike的源代码,有两个途径:一个是从github代码仓库中获取:
|
|
|
|
接下来,安装spkie模拟器。首先取得spike的源代码,有两个途径:一个是从github代码仓库中获取:
|
|
|
|
|
|
|
|
|
|
|
@ -104,7 +114,7 @@ RISC-V交叉编译器的构建需要一些本地支撑软件包,可使用以
|
|
|
|
|
|
|
|
|
|
|
|
`$ make install`
|
|
|
|
`$ make install`
|
|
|
|
|
|
|
|
|
|
|
|
在以上命令中,我们假设RISCV环境变量已经指向了RISC-V交叉编译器的安装目录。如果未建立关联,可以将$RISCV替换为2.1.1节中的[your.RISCV.install.path]。
|
|
|
|
在以上命令中,我们假设RISCV环境变量已经指向了RISC-V交叉编译器的安装目录,即[your.RISCV.install.path]。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|