goldjack 发表于 2024-12-2 22:11

《RISC-V 体系结构编程与实践(第2版)》阅读心得之二--搭建RISC-V实验环境

本帖最后由 goldjack 于 2024-12-2 22:19 编辑

<p style="text-align:justify"><span style="color:#000000">&nbsp; &nbsp; &nbsp; 因为手头没有RISC-V开发板,所以就借助奔跑吧Linux社区提供的VM</span><span style="color:#000000">ware</span><span style="color:#000000">镜像在Windows上搭建了模拟的测试环境,并做了该书第二章中的主要实验。</span></p>

<p style="text-align:justify"><span style="color:#000000">&nbsp; &nbsp; &nbsp; 首先根据奔跑吧Linux社区提供的网址下载了rlk_vmware_image_第二版_v1.5.2压缩包,把它加压后备用。</span></p>

<p style="text-align:justify"><span style="color:#000000">&nbsp; &nbsp; &nbsp; 接着下载了VMware-player-full-17.5.0-22583795-win11用这个版本.exe文件,在 Win11上安装。</span></p>

<p style="text-align:justify"><span style="color:#000000">&nbsp; &nbsp; &nbsp; 启动VMware Workstation 17 Player之后,导入上面已解压的虚拟机rlk_image_v2。</span></p>

<p style="text-align:justify"> &nbsp;</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; 当你启动虚拟机的时候,可能会遇到一些问题:</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; 1)提示你运行虚拟机时启用了侧通道缓解。</p>

<p style="text-align:justify"> &nbsp;</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; 解决办法:VMware Workstation Player本身不含&ldquo;高级&rdquo;选项,你可以忽略或安装VMware Workstation。</p>

<p style="text-align:justify">&nbsp;</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; 2) 此平台不支持虚拟化的Intel VT-x/EPT,模块&rdquo;HV&rdquo;&rdquo;启动失败。</p>

<p style="text-align:justify"> &nbsp;</p>

<p style="text-align:justify"> &nbsp;</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; 解决办法:你可以通过从Windows控制面板--&gt;程序--&gt;程序和功能--&gt;启用或关闭Windows功能中,关闭Hyper-V功能。</p>

<p style="text-align:justify">&nbsp;</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; 该书的大部分试验是基于一个简单的小型操作系统试验平台BenOS,这个平台可以运行在QEMU和NEMU上。QEMU(Quick EMUlator)和NEMU是两种开源的模拟器。</p>

<p style="text-align:justify">&nbsp;</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; 实验一:在QEMU上运行BenOS:</p>

<p style="text-align:justify"> &nbsp;&nbsp; &nbsp; &nbsp; QEMU输出&ldquo;Welcome RISC-V!&rdquo;说明成功运行了BenOS。</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; 关闭QEMU的方法是先按CTRL+A,然后松手、快速按X键。</p>

<p style="text-align:justify">&nbsp;</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; 实验二:单步调试BenOS和MySBI(运行在M模式下的固件):</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; 先在第一个终端(Terminal)中启动QEMU虚拟机的gdbserver:</p>

<p style="text-align:justify"> &nbsp;</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; 再在第二个终端(Terminal)中启动GDB工具:</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; cd /home/rlk/rlk/riscv_programming_practice/chapter_2/benos</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; gdb-multiarch -tui benos.elf</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; 执行如上命令就可以用工具对BenOS进行单步调试了。</p>

<p style="text-align:justify">&nbsp;</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; 同理,也可以用同样的方法用GDB工具单步调试MySBI固件的elf文件。</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; 先在第一个终端(Terminal)中启动QEMU虚拟机的gdbserver:</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; cd /home/rlk/rlk/riscv_programming_practice/chapter_2/benos</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; make debug</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; 再在第二个终端(Terminal)中启动GDB工具调试MySBI:</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; cd /home/rlk/rlk/riscv_programming_practice/chapter_2/benos</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; gdb-multiarch -tui&nbsp;mysbi.elf</p>

<p style="text-align:justify"> &nbsp;</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; 初步的模拟实验环境搭好了,后面可以边学边做实验了。</p>

<p style="text-align:justify">&nbsp;</p>

<p style="text-align:justify"><em><em>&nbsp; &nbsp; &nbsp; To be continued......</em></em></p>

lihaodushu01 发表于 2024-12-3 14:10

<p>收益匪浅,正在作这方面的工作,试了好多次都没成功,无意间看到这个贴子,照着做了一遍,差不多有点意思了,还在继续努力中</p>

goldjack 发表于 2024-12-3 15:48

<p>希望能为你的工作提供些许可借鉴之处。<img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/handshake.gif" width="48" /></p>

<p>&nbsp;</p>

<p>其实软件安装中还有一些其他Tips,但不一定具有普遍性。比如有些版本的Windows上没有安装Hyper-V,需要自行安装。但限于篇幅,没有面面俱到。</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

goldjack 发表于 2024-12-3 17:54

gtq 发表于 2024-12-3 15:55
哇塞,学到啦,超感谢!多多积累经验哈,盼着有那么一天能派上用场呢。

<p>一起学习!</p>
页: [1]
查看完整版本: 《RISC-V 体系结构编程与实践(第2版)》阅读心得之二--搭建RISC-V实验环境