项目2:CS61Classify
A部分截止日期:2026年2月26日,星期四,晚上11:59:59(太平洋时间)
B部分截止日期:2026年3月5日,星期四,晚上11:59:59(太平洋时间)
在此项目中,您将编写RISC-V汇编代码,使用简单的机器学习算法对手写数字进行分类。
此项目的目标是让您熟悉RISC-V,特别是调用约定、函数调用、堆的使用、文件交互以及编写一些测试。
办公时间政策
在来访办公时间之前,请确保您已完成以下事项:
- 为您函数中的每个寄存器添加描述以指示其用途("这保存i"太过模糊,请尽可能具体,以便我们更容易阅读和理解您的代码。)
- 阅读调用约定指南。
- 使用调用约定检查器并解决检查器捕获的所有调用约定错误(除非您的问题专门涉及如何修复这些错误)。
- 使用memcheck并解决所有内存访问错误(除非您的问题专门涉及如何修复这些错误)。
- 观看调试视频(链接如下)。
请确保在OH Queue上填写尽可能详细的模板描述。不使用模板或描述非常敷衍的问题(如"它不工作")将被跳过/删除。
调试视频
查看此播放列表,了解如何调试内存和调用约定问题的视频!在来办公时间或在Ed上提问之前,请确保您已观看这些视频。
设置
设置:Git
此作业可以单独完成或与合作伙伴一起完成。
警告:一旦您在Gradar上创建了小组,您将无法更改(添加、删除或交换)此项目的合作伙伴(项目2A和2B都是),因此请在开始项目之前确认您的合作伙伴。您必须在Gradar上和每次Gradescope提交时添加您的合作伙伴。
如果有特殊情况需要更换合作伙伴(例如您的合作伙伴退课、您的合作伙伴没有回应),请私下联系我们。
-
访问 Gradar。登录并注册您的项目2小组(如果您的合作伙伴,则添加您的合作伙伴),然后创建您或您小组的GitHub仓库。如果您有合作伙伴,一个合作伙伴应创建一个小组并邀请另一个合作伙伴加入该仓库。另一个合作伙伴应接受邀请而不创建自己的小组。
-
在您的本地机器上克隆仓库(此项目完全不需要hive机器)。Windows用户应在Git Bash中克隆。
(替换 sp26-proj2-USERNAME 为您的GitHub仓库名称)
-
导航到您的仓库:
-
添加起始仓库作为远程仓库:
-
拉取起始仓库的代码:
如果您遇到git问题,请查看常见错误页面。
设置:Java和Python
请确保您已按照实验0的练习2中的本地计算机设置说明进行操作。
设置:Venus
我们将使用Venus网页界面进行调试。过程与实验3中的Venus设置非常相似。
-
在
61c-proj2目录中,运行bash test.sh download_tools为此项目下载Venus。(您只需要运行一次。) -
在您的本地计算机上(不是hive机器),导航到您的
61c-proj2目录并运行此命令。Windows用户应在WSL之外运行(推荐使用Git Bash)。 -
在您的网络浏览器中打开 https://venus.cs61c.org(建议使用Chrome或Firefox)。在Venus网页终端中运行
mount local vmfs。在您的浏览器中,您可能会看到一个提示,说密钥已在Venus挂载服务器上显示!请将其复制并粘贴到此处的对话框中。您应该能够在本地终端输出的最新一行中看到一个密钥(字母和数字的字符串);将密钥复制并粘贴到对话框中。 -
现在,项目文件已从您的本地计算机加载到Venus网页界面中。在Venus中,您可以打开Files标签页或运行
ls vmfs在Venus终端中查看浏览器中的所有文件。
如果您可以在Venus中看到您的文件,您可以跳过本节的其余部分。如果上述步骤不起作用,您可以按照以下指南手动上传文件。
手动上传文件
-
在您的本地计算机或hive机器上,将您的
src、tests和test-src目录压缩。 -
导航到https://venus.cs61c.org,在Venus终端中输入
upload。 -
应该会出现文件上传提示。上传您在步骤1中创建的zip文件。
现在您可以在Venus上编辑和调试您的文件。
要下载您编辑过的任何文件,您可以在Venus终端中运行zip zipname file1 file2 file3。将zipname替换为您希望下载的zip文件的名称。将file1 file2 file3替换为您要下载的文件或目录列表(可以有少于或多于3个文件或目录)。
恢复起始文件
要恢复起始文件,请查看常见错误页面。