问题标签 [riscv]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
system-calls - riscv:qemu scall 与穗 ecall
我的理解是scall
和ecall
在riscv
. 但是,qemu
riscv
scall
实现不同于尖峰ecall
实现。请你解释一下区别。谢谢。
linux - 如何从 RISC-V Linux (Zedboard) 中保留物理内存?
我想在启动 Linux 时保留一部分物理内存。在 Zedboard 上运行默认 RISC-V 内核时,我看到物理内存的大小为 254MB(0xfe00000 字节,260096K):
所以我尝试通过提供内核参数“mem=128M memmap=126M$128M”来预留126MB的物理内存,但是Linux看到的物理内存大小还是一样的。
riscv - 如何在 RISCV 指令集中添加新的自定义指令
很多天以来,我一直在尝试使用 RISV ISA 模拟器模拟新的自定义指令,但未能成功创建新指令并使用 riscv 汇编器对其进行编译。我尝试在 risk-tools/riscv-opcodes/opcodes 中添加我自己的新操作码。我尝试创建一个自定义操作码来执行 ADD 的功能,然后用我在汇编代码中的自定义指令替换 ADD,但汇编器未能编译它说找不到指令。此外,当我尝试使用内置自定义指令 custom0、1、2 时,我总是会收到无效操作数的错误。
linux-kernel - 在 ZC706 上引导 linux-3.14.41:内核恐慌
在 FPGA ZC706 上启动 linux-3.14.4 时出现以下错误。我已经按照以下方式构建了所有工具:
火箭芯片:
根盘镜像:
开机:
启动开始,但停留在某个点。以下是启动错误
任何人都可以帮助我,无论我错过什么。我也尝试过使用 linux-3.14.33;同样的错误来了
linux - Linux内核如何干扰Zedboard上RISC-V custom0指令的执行?
dummy_rocc 是 RISCV 工具中一个简单的内置 RoCC 加速器示例,其中定义了几个 custom0 指令。设置 dummy_rocc 后(在 Spike ISA 模拟器或 Rocket-FPGA 上,不同),我们使用 dummy_rocc_test - 一个用户程序测试用例来验证 dummy_rocc 加速器的正确性。我们有两种方法来运行 dummy_rocc_test,在 pk(代理内核)或 Linux 上。
我曾经在 Spike ISA 模拟器上设置 dummy_rocc,dummy_rocc_test 在 pk 或 Linux 上运行良好。
现在我在 Zedboard 上用 Rocket-FPGA 替换 Spike。虽然 pk 执行成功:
Linux 上的执行失败:
屏幕截图显示“信号 4”是由 custom0 指令引起的。 dummy_rocc_test 的 readelf 截图
所以我的问题是“Linux 内核怎么会干扰 RISC-V custom0 指令在 Zedboard 上的执行?”
dummy_rocc_test 的源代码作为参考提供:
benchmarking - 使用 RISCV 架构运行 SPEC06
我想使用我对 RISC-V Rocket 芯片架构和 RISC-V 编译器所做的更改来运行 SPEC06 基准测试。我知道 Dhrystone 已经存在,但我想用其他基准来衡量性能。能够在 RISC-V 环境中运行 SPEC06 基准测试的步骤是什么?
编辑:你能帮我如何在 FPGA(特别是 zc706)上安装和运行 SPEC06 吗?我可以在 Rocket-chip 编程的 zc706 上启动 linux-3.14.41。
riscv - 使用 riscv64-unknown-elf-gcc 编译的多线程程序的编译错误
我遇到的错误是 thread-ex.c:24:5: error: unknown type name 'pthread_t' pthread_t thread1, thread2; /* 线程变量 */ ^ thread-ex.c:36:5: 警告:函数 'pthread_create' [-Wimplicit-function-declaration] pthread_create (&thread1, NULL, (void *) &print_message_function, (void ) &data1的隐式声明); ^ thread-ex.c:42:5: 警告:函数“pthread_join”的隐式声明 [-Wimplicit-function-declaration] pthread_join(thread1, NULL); ^ thread-ex.c:在函数'print_message_function'中:thread-ex.c:61:5:警告:函数'pthread_exit'的隐式声明[-Wimplicit-function-declaration] pthread_exit(0); /退出*/
riscv - 在尖峰中运行使用 riscv64-unknown-linux-gnu-gcc 编译的二进制文件时出现分段错误
prashantravi@ubuntu:~/rocket-chip$ riscv64-unknown-linux-gnu-gcc -o asm_test asm_test.c prashantravi@ubuntu:~/rocket-chip$ spike riscv/bin/pk asm_test z 0000000000000000 ra 0000000000000000 sp 00000000fefffb50 gp 0000000000801fb8 tp 0000000000000000 t0 0000000000000000 t1 0000000000000008 t2 00000000008012e0 s0 0000000000000000 s1 0000000000000000 a0 0000000000800430 a1 0000000000000001 a2 00000000fefffb58 a3 0000000000800484 a4 0000000000800514 a5 0000000000000000 a6 00000000fefffb50 a7 0000000000000000 s2 0000000000000000 s3 0000000000000000 s4 0000000000000000 s5 0000000000000000 s6 0000000000000000 s7 0000000000000000 s8 0000000000000000 s9 0000000000000000 sA 0000000000000000 sB 0000000000000000 t3 ffffffffffffffff t4 0000000000000000 t5 0000000000000000 t6 0000000000000000 pc fffffffffffffffe va fffffffffffffffe insn ffffffff sr 8000000000003008 User fetch segfault @ 0xfffffffffffffffe
当我在尖峰中使用 riscv64-unknown-linux-gnu-gcc 编译程序时出现上述错误。
使用 riscv64-unknown-elf gcc 运行时,相同的代码可以完美执行
riscv - 峰值中的内核间通信
当我们使用spike -p2在多核模式下使用spike时,有什么方法可以模拟数据从一个核心到另一个核心的传输,有没有程序可以做到这一点?
linux - Linux 无法识别 FPGA 上的多核 Rocket
我按照How to make a multicore system using the RISC-V Rocket-chip processor to generate a multicore Rocket for FPGA (board: Xilinx ZC706) 中的说明进行操作,但 Linux 无法识别附加内核。
我确信 Linux 与 SMP 配合得很好,因为当我用火箭芯片仿真器或 Spike ISA 仿真器替换 FPGA 时,它可以识别多核。
更新:应用多核修复提交后,riscv Linux 停止: