跳转至

监控程序和终端程序

监控程序是实验过程中会涉及到的运行在所设计的处理器以及硬件平台上的简化的操作系统。监控程序会从串口读出命令,并依据命令执行相应的程序。终端程序通过串口与监控程序进行交互。

监控程序的组织

监控程序的获取方式和地址:

git clone https://github.com/thu-cs-lab/supervisor-rv.git

Windows 用户可在解压缩 rv.zip 之后,从 supervisor-rv 子目录中找到监控程序,但强烈建议依据上述的 URL 获得最新版本的监控程序。

进入目录后,可以看到两个文件和两个目录:

  • LICENSE Apache 版权申明文件;
  • README.md 这个文件非常重要,务必仔细阅读,包含了监控程序的相关内容,以及需要实现的指令和格式;
  • kernel 这个目录包含了监控程序的代码,务必仔细阅读;
  • term 这个目录包含了终端程序的代码,务必仔细阅读。

编译与执行

进入到 kernel 目录,编译并启动监控程序(这里显示的信息在任何平台上都是类似的):

  • Linux: make sim
  • Windows: 编译 Kernel 并启动模拟器.cmd

上面可以看到监控程序已经开始运行,等待串口连接进入。

下面的命令行打开终端程序代码,连接监控程序:

  • Linux: python3 term.py -t 127.0.0.1:6666
  • Windows: 启动 Term 并连接模拟器.cmd

以上是关于监控程序和终端程序互相连接交互的情况举例。再次强调同学们务必仔细阅读监控程序目录下的 README.md 文件,包含了监控程序的信息以及处理器大实验所需要实现的指令的情况。

文档

监控程序和终端程序的文档见仓库中的 README.md

在本实验中,主要需要阅读监控程序文档的部分有:

  1. “Kernel”部分:如何在 QEMU 中启动监控程序,并等待终端程序连接;
  2. “Term”部分:如何运行终端程序,以连接上 QEMU 中运行的监控程序;
  3. “用户程序编写”部分:即如何向内存写入汇编指令并执行。

最后更新: 2023年9月20日
作者:Jiajie Chen (30.0%), Youyou Lu (42.0%), gaoyichuan (28.0%)