gpt4 book ai didi

gcc - RISC-V : Minimum CSR requirements for simple RV32I implementation capable of leveraging GCC

转载 作者:行者123 更新时间:2023-12-04 15:21:23 43 4
gpt4 key购买 nike

对于能够运行 GCC 生成的机器码的 RV32I,CSR 的最低要求是什么?

我正在考虑一个简单的基于 fpga 的(嵌入式)实现。不需要虚拟内存或 Linux 支持。

此外,我应该使用哪些 GCcflags以防止它使用未实现的 CSR 相关指令?

在浏览了 RISCV 特权 ISA 规范后,我仍然很困惑。

谢谢!

最佳答案

看看 RARS模拟器作为一个简单的 RISC V 实现的例子。它实现了足够的 CSR(例如异常原因、处理器状态、异常 pc、向量表地址等),您可以编写中断处理程序。

你需要:

  • utvec — 设置异常处理地址
  • ustatus — 启用/禁用中断,
  • uscratch — 软件异常处理程序需要,
  • ucause — 说明异常的原因
  • uepc — 异常时未完成指令的地址

还有一些。在 RARS 中,您可以在寄存器显示、控制和状态 选项卡中看到实现的寄存器。

我相信 RARS 支持计时器,所以有一些为此的企业社会责任。它还提供了一个浮点单元,因此一些 CSR对于异常(exception)情况以及舍入配置。为了处理内存访问异常,它有utval。然后它提供一些柜台。另见 Document Version20190608-Priv-MSU-Ratified 中的表 2.2

我认为您对 CSR 的使用仅限于独立的应用程序配置,例如初始启动和中断处理,两者都将用汇编语言编写。

很难想象编译后的 C 代码(目标文件,.o)会以任何方式触及 CSR。如果您有这方面的示例,请分享。

在某些环境中,C 实现允许独立(例如非托管)程序。某些编译器创建的此类程序可能包括启动配置和异常处理程序,但更有可能是用户提供的。参见,例如,http://cs107e.github.io/guides/gcc/

关于gcc - RISC-V : Minimum CSR requirements for simple RV32I implementation capable of leveraging GCC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63204255/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com