rCore_tutorial_doc icon indicating copy to clipboard operation
rCore_tutorial_doc copied to clipboard

封装 OpenSBI 接口 · GitBook

Open wyfcyx opened this issue 6 years ago • 9 comments

https://wyfcyx.github.io/rCore_tutorial_doc/chapter2/part6.html

wyfcyx avatar Dec 07 '19 10:12 wyfcyx

每个输出和输入都是用 “constraint”(expr) 的形式给出的 应为英文引号

heheda12345 avatar Feb 22 '20 09:02 heheda12345

@heheda12345 每个输出和输入都是用 “constraint”(expr) 的形式给出的 应为英文引号

Fixed. 感谢勘误!

wyfcyx avatar Feb 22 '20 21:02 wyfcyx

为什么这里SBI extension ID使用的usize文档上不是说用i32

In the name of compatibility, SBI extension IDs and SBI function IDs are encoded as signed 32-bit integers. When passed in registers these follow the standard RISC-V calling convention rules.

vtta avatar Feb 25 '20 12:02 vtta

还有返回值不是应该是a0a1? 虽然Legacy SBI Extension里面只有getchar有返回值,还是一个整数

vtta avatar Feb 25 '20 12:02 vtta

我按你教程编译了32位elf,使用了qemu-system-riscv32,经过debug发现OpenSBI根本没有跳到0x80200000,而是在OpenSBI固件某个地方死循环了。我真是服了,riscv的生态本来就差,这些人搞的东西总是这个问题那个问题。

chaoyangnz avatar Feb 06 '21 05:02 chaoyangnz

@chaoyangnz 我按你教程编译了32位elf,使用了qemu-system-riscv32,经过debug发现OpenSBI根本没有跳到0x80200000,而是在OpenSBI固件某个地方死循环了。我真是服了,riscv的生态本来就差,这些人搞的东西总是这个问题那个问题。

请参考我们新的 v3版教程v3.5版教程 。这个第二版已经不再维护了。

wyfcyx avatar Feb 06 '21 05:02 wyfcyx

@wyfcyx 多谢。问题解决了,OpenSBI qemu virt riscv32的跳转地址是0x80400000。 没有任何文档,硬是找到代码里去,f....k

看了一下,新的教程使用rustsbi, 试用了一下,不支持32位。我自己编译也不行,inline汇编直接是写给64位的。另外repo上也没有任何说明,只针对64位

chaoyangnz avatar Feb 06 '21 09:02 chaoyangnz

v3版本的教程感觉还不如v2版本的说的丰富、清楚,就不能精心把两个版本的教程整合一下嘛?搞得一会儿看v2一会儿看v3,How Terrible!

zhangzhuang15 avatar Dec 03 '21 08:12 zhangzhuang15

@zhangzhuang15 你好,请看我们最新的3.5版本教程.

wyfcyx avatar Dec 03 '21 09:12 wyfcyx