rCore_tutorial_doc
rCore_tutorial_doc copied to clipboard
封装 OpenSBI 接口 · GitBook
https://wyfcyx.github.io/rCore_tutorial_doc/chapter2/part6.html
每个输出和输入都是用 “constraint”(expr) 的形式给出的 应为英文引号
@heheda12345 每个输出和输入都是用 “constraint”(expr) 的形式给出的 应为英文引号
Fixed. 感谢勘误!
为什么这里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.
还有返回值不是应该是a0和a1? 虽然Legacy SBI Extension里面只有getchar有返回值,还是一个整数
我按你教程编译了32位elf,使用了qemu-system-riscv32,经过debug发现OpenSBI根本没有跳到0x80200000,而是在OpenSBI固件某个地方死循环了。我真是服了,riscv的生态本来就差,这些人搞的东西总是这个问题那个问题。
@chaoyangnz 我按你教程编译了32位elf,使用了qemu-system-riscv32,经过debug发现OpenSBI根本没有跳到0x80200000,而是在OpenSBI固件某个地方死循环了。我真是服了,riscv的生态本来就差,这些人搞的东西总是这个问题那个问题。
@wyfcyx 多谢。问题解决了,OpenSBI qemu virt riscv32的跳转地址是0x80400000。 没有任何文档,硬是找到代码里去,f....k
看了一下,新的教程使用rustsbi, 试用了一下,不支持32位。我自己编译也不行,inline汇编直接是写给64位的。另外repo上也没有任何说明,只针对64位
v3版本的教程感觉还不如v2版本的说的丰富、清楚,就不能精心把两个版本的教程整合一下嘛?搞得一会儿看v2一会儿看v3,How Terrible!
@zhangzhuang15 你好,请看我们最新的3.5版本教程.