学习开发一个RISC-V上的操作系统(汪辰老师) — unrecognized opcode `csrr t0,mhartid‘报错问题
  rWLfpslpeeJP 2023年11月02日 47 0


前言

(1)此系列文章是跟着汪辰老师的RISC-V课程所记录的学习笔记。
(2)该课程相关代码gitee链接;

正文

(1)在跟着汪辰老师做OS文件夹的实验时候,我先使用make clean将文件清空,然后再使用make编译出现了如下报错

riscv64-unknown-elf-gcc -nostdlib -fno-builtin -march=rv32ima -mabi=ilp32 -g -Wall -c -o start.o start.S

start.S: Assembler messages:
start.S:11: 错误:unrecognized opcode `csrr t0,mhartid'

(2)修改方法也很简单

cd ../..
vim common.mk
# -march=rv32ima 修改为 -march=rv32g

(3)个人猜测的原因,因为汪辰老师使用的老版本的RISC-V编译器,而新版本的编译器有所更新。所以会导致出现不兼容的特性。
(3)在老师的第二章课程里面,也说了,g == imafd 。经过测试发现csrr 指令是在f指令集里面的。

学习开发一个RISC-V上的操作系统(汪辰老师) — unrecognized opcode `csrr t0,mhartid‘报错问题_编译器

(4)关于RV32I指令集的更多介绍,可以查看https://zhuanlan.zhihu.com/p/540887151

参考文章

(1)在01-helloRVOS中使用make debug报错 unrecognized opcode;
(2)汪辰老师第二章课件;
(3)RISC-V汇编语言入门(六) —RV32I指令集


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
rWLfpslpeeJP