riscv 相关问题

RISC-V是一种新的指令集架构(ISA),最初设计用于支持计算机体系结构研究和教育,现在已成为RISC-V Foundation治理下的行业实现的标准开放架构。

在RISC-V架构中,跳转指令(条件或JAL/JALR)是否会像其余指令一样将PC增加4?

我正在开发 RISC-V CPU 模拟器并已实现所有指令。问题是我不确定跳跃是否失败。这是我目前为 BGEU 实施的实施方案...

回答 1 投票 0

如何将c程序编译到裸机rv32i处理器?

我正在开发一个模拟 rv32i ISA 的 c++ risc-v 模拟器。我已安装工具链并正确生成文件。 我执行了这个命令: riscv32-unknown-elf-gcc testing_program.c ...

回答 1 投票 0

在xv6中swtch.s返回到哪里?

问题很困惑,Swtch.s 在 sched() 中调用后返回到哪里 .global 开关 开关: SD RA, 0(a0) SD SP, 8(a0) sd s0, 16(a0) SD s1, 2...

回答 1 投票 0

跳转到U模式时RISC-V PMP指令访问错误

我尝试在 16 字节区域上使用 PMP 来保护特定的内存区域。但是,当启用 PMP 配置时跳转到 U 模式时,我遇到指令访问错误。 详细...

回答 2 投票 0

risc-v ld 找不到 libc 和 libgloss

我使用window10和WSL,linux版本是ubuntu20.0.4 当我使用 riscv64-unknown-elf-gcc -lc --verbose 检查一些信息时, 日志如下: 使用内置规格。 COLLECT_GCC=riscv64-

回答 1 投票 0

数据存储器和指令存储器是否位于数据路径L1缓存中?

在CPU数据路径中,有称为数据存储器和指令存储器的块? 这些块是 L1 指令和 L1 数据缓存吗? 例如,查看此链接中的图 4.10。 我们知道将军...

回答 1 投票 0

如何使用RVV1.0进行矩阵转置?

描述 我是 RVV 的新手,正在使用 RVV1.0 重写一些汇编函数。现在我遇到了一些关于矩阵转置的问题。 Arm NEON 提供了 vtrn 指令,呵呵...

回答 1 投票 0

函数指针始终为零,但在取消引用和调用时起作用

这是我拥有的最小代码示例(我尝试运行最小示例以确保它重现我所看到的问题): 无效测试fn(无效){ printf("你好,世界! ”); } 在...

回答 1 投票 0

如何清除 risc-v 中处理程序中的异常?

以下是我在 FE310 Si Five-Hi Five1-Rev B 板上的陷阱例程。 我的陷阱例程: // 读取 mcause csrr t0,mcause; // 读取mepc csrr t1、mepc; 姆雷特; 现在,我生成了加载访问权限

回答 1 投票 0

在 ESP32-S3 上使用 ULP RISC-V 协处理器读取 I2C HDC1080 传感器

嗯,我正在尝试使用 ESP32S3 ULP Riscv 协处理器从带有 I2C 的 HDC1080 传感器读取深度睡眠时的温度值。首先,我在 Arduino 上编写代码进行测试。效果很好 双温度(){ ...

回答 1 投票 0

RVV1.0中的向量加载指令如何将有符号向量加载和无符号向量加载合并到一条指令中?

在RISC-V Vector指令中,有2个主要版本rvv0.7.1和rvv1.0。以加载32位为例。在rvv0.7.1中,有2条指令:vlwu和vlw,分别加载无符号数和有符号数

回答 2 投票 0

如何更改gem5 RVV向量长度

我目前正在尝试使用 RVV 内在函数在 RISCV 处理器上模拟算法。我想探索性能如何根据 RVV 向量长度而变化。我注意到 RISCV ISA f...

回答 1 投票 0

恢复Risc V中的除法算法

我想用RISCV汇编语言实现恢复除法算法(不使用div操作)。 我必须实现的算法如下 。 我实现了这个,但是......

回答 1 投票 0

RiscV 检查乘法期间是否发生溢出

使用这个算法来计算有符号整数的乘法(我们不能使用 mul、mulh 等,所以我用移位和加法实现了 mul),你如何检查结果是否溢出。亲...

回答 1 投票 0

QEMU6.2调试时如何获取RVV0.7.1中的向量寄存器信息?

QEMU6.2 支持 RISC-V 矢量扩展0.7.1,并且我还获得了 RVV0.7.1 的 riscv-gnu-toolchain。但是,在调试时,我无法使用命令 info reg vector 或 info r...

回答 1 投票 0

在 C 中从头文件调用函数

在xv6中,我在内核文件夹中有hello.h,在用户文件夹中有main.c。 错误在main.c中。 内核/hello.h: 无效你好(); 内核/hello.c: 无效你好(){ printf("你好 ); } 现在我想要...

回答 1 投票 0

“-”和“.”有什么区别QEMU 中 RISCV 指令的解码?

RISCV的指令被解码为32位。当需要从输入中获取已解码指令的某些部分时,点“.”用作每个位的占位符。然而,有...

回答 1 投票 0

madvise() 在虚拟内存中做什么?

以下代码在 xv6(risc-v) 中执行。我有点困惑。为什么我们需要在 malloc() 之后调用 madvise() ? 是为了页表项的换入/换出吗? 附言。 vmprint() 打印页表。 #包括“

回答 1 投票 0

将 64 位地址加载到寄存器中

我需要让我的 RISC-V 程序集即时编写指令 - (这是 Forth,以便用户可以扩展语言)。 当我使用 32 位 ISA 时,这相对简单,假设我想要一个...

回答 2 投票 0

“向量加载/存储整个寄存器指令”的区别

在 RISC-V 向量扩展中,提供了在单个命令中加载/存储单个或多个向量寄存器的指令。 其中,目前加载指令有四种类型...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.