# 前两章图书内容总结
第一章重点介绍了RISC-V体系结构的基础知识,从指令集发展及优点、体系结构的基本概念,到RISC-V的通用寄存器,运行模式及作用,再到著名的香山处理器。让我对RISC-V有一个初步的了解。下图为本章的思维导图。
第二章搭建了RISC-V的实验环境,书中推荐使用QEMU或NEMU两个模拟系统,并介绍了运行于M模式的mySBI和运行于S模式的BenOS,以及他们的代码实现,链接脚本,编译环境。由于模拟环境需要一个统一可执行文件,书中还介绍了文件合并的方式,并采用链接脚本的形式,将benos.bin以payload的方式,加载到.payload区中,从而完成两个部分程序的合并。合并后的程序可以基于QEMU来进行模拟运行和调试运行。下图为本章的思维导图。
# 实验环境搭建
我手头有DongshanPI-D1s的评估板,因此,本书的实验将采用基于D1s的实体评估板来实验。
实际线路板照片:
评估板集成BL702S的仿真调试工具,使用T-Head-DebugServer作为调试服务器,编译器采用Windows版Xuntie-900-gcc-elf-newlib-mingw-V2.6.1-gdbtui-20230210 。
# 实验测试
以下实验内容基于韦东山先生的DongshanPI-D1s的教程完成。
根据书中代码完成向D1s裸机程序的移植,编译和仿真执行。
代码编译:
进入调试状态,首先按下FEL键,然后复位评估板,打开T-HeadDebugServer,可以看到系统已经识别了处理器内核。
运行riscv64_unknown-elf-gdb benos_payload.elf命令,启动调试
运行 target remote 127.0.0.1:1025 链接到gdbserver,执行load 状态程序
打开串口调试工具,连接调试串口。在调试环境执行c命令后,串口打印了“Welcome RISC-V!”的信息,表示程序得到了运行。
到此基本环境搭建完成,后面随着本书的内容的深入,逐渐完善实现代码,完成书中的相关内容的实验验证。