RISC-V是一种新的指令集架构(ISA),最初设计用于支持计算机体系结构研究和教育,现在已成为RISC-V Foundation治理下的行业实现的标准开放架构。
将整数作为 32 位值存储在跨 4 个字节的 char 数组中
我有一个简单的问题 我这里有这个函数,它将 4 个字节的整数存储为十六进制字符 void store_int(unsigned char* arr, int index, int value) { arr[索引] = (v...
在执行递归(第 26 行)时,我如何使用非保留寄存器(n-1)而不是 n?我已经尝试存储在不同的寄存器中,但结果是错误的,有什么想法吗? 主要的: 添加...
How to detect an overflow on assembler risc-v?
我正在尝试用 RISC-V 汇编语言实现递归阶乘函数,如果出现溢出,该函数会引发错误。但是,我正在努力检测它。有解决办法吗...
我在实施从 TYPE I 指令中提取即时值时遇到了一些问题 现在我的代码可以工作了,这是我要编码的指令集 现在我的代码......
我正在用 C 实现一个不一样但相似的 RISCV 风格系统 我的程序读取一个二进制文件并根据指令进行一些操作。但这无关紧要,因为那不是我...
如何更改存储在内存地址 0x304 中的内容,以便在 +1 中有 ab,在 0x308 +2 中有 34? 我正在尝试从地址 0x3 获得 little endian 和 big endian 类型的单词 0x1234ABCD ...
在 spike 模拟器中运行 fp16 vector add 时出现非法指令
我是 RISC-V 和 Spike 的新手。我最近一直在尝试在 Spike 模拟器上运行 float16 向量加法演示,但是当我尝试运行代码时,我收到一条错误消息,提示“非法
riscv64-unknown-linux-gnu-g++:错误:无法识别的命令行选项'-mavx2'
我正在尝试使用 riscv 工具链编译 Tensorflow lite 代码。我的目标是 RISC-V CVA6 内核。我使用最小示例作为起点。 我看到错误与向量有关
我正在尝试使用函数宏读取 csr 寄存器 我有一个结构数组,其中包含 csr 寄存器的名称和地址 typedef 结构 csr_lists { 内部地址; 常量 cahr* 名称; } csr_...
RISC-V 的 C++ 多读取器/写入器无锁 FIFO 队列?
我们公司正在考虑切换到基于 RISC-V 的嵌入式处理器。由于我们的应用程序大量使用队列作为主要的线程间通信系统,因此最好实现...
为什么在管道中没有MEM.flush for exceptions?
以下是RISC-V流水线的图片,其中包含了对异常的刷新 我有一个关于流水线对异常的刷新的问题。在RISC-V中,有IF.flush、ID.flush和EX.flush在管道中用于异常。但我想知道...
我看了RISC-V关于RV32A扩展的规范,我有一个问题:如果程序执行了这些指令,CPU如何验证LRSC序列的约束:LR.W x6,x0,(x0) jal x0,dest ......
我正在运行一个基于x86的Linux虚拟机,正在用RISC-V编译器和仿真器进行交叉编译(目标:RISC-V)。我想知道RISC-V仿真器(C文件)是如何仿真RISC-V ...
我在大学里学的是计算机体系结构,我想我不知道计算机系统和C语言的基本概念,有几件事情真的让我很困惑,我一直在搜索,但是......。
我想写一个Risc-V树检查器:每棵树的节点由三个字组成: 1)要么是0要么是1 2)左节点的地址 3)右节点的地址 我的程序应该探索树并返回...
RISC-V工具链Makefile中的分隔符和代码错误问题。我如何才能做到正确的?
我在创建Makefile时遇到了一个问题。我只是想逐个创建.elf文件,然后是dump,最后是bin文件,然后用python脚本将其转换为.hex文件。我的...
我有一个扩展名为.bo的文件。经过一些研究,它似乎是用bluespec构建的,它是用于risc-V架构的。我的目标是反转这个文件。当我这样做:文件myfile.bo ...。
为了教育目的,我用https:/godbolt.orgz7F-Lhm翻译/C++代码 char i = 3; char A[]= {0,1,2,3,4,5}; int myfunction() { return A[i]; } into # RISC-V instructions ...
我是RISC-V和操作系统开发的新手,现在想在RISC-V中做一个简单的类似hypervisor的接口。现在阻止我的是,我不知道如何触发一个 ...
我看到退出 risc-v 异常处理程序的标准方法是在 mret 之前将 mepc 更新为 mepc+4。但是,如果下一条指令只有2字节的压缩指令编码,这不会引起问题吗?