rCore_tutorial_doc icon indicating copy to clipboard operation
rCore_tutorial_doc copied to clipboard

动态内存分配 · GitBook

Open wyfcyx opened this issue 6 years ago • 7 comments

https://wyfcyx.github.io/rCore_tutorial_doc/chapter3/part2.html

wyfcyx avatar Dec 07 '19 12:12 wyfcyx

可以有一道小题目,kernel截获除零异常。

chyyuu avatar Dec 10 '19 16:12 chyyuu

@chyyuu 可以有一道小题目,kernel截获除零异常。

RISC-V 中除零不会触发异常,可以改为截获非法指令异常(例如 mret

wangrunji0408 avatar Dec 10 '19 16:12 wangrunji0408

这里直接用 trap_handler 可能会有 trap_handler 并非四字节对齐的问题。

jiegec avatar Mar 08 '20 01:03 jiegec

文档中riscv依赖也还是没有支持rustc1.45.0 nightly,fork修改了一下由于是rustc版本问题就不pr了,将git依赖替换成如下https://github.com/qwtsc/riscv 即可,Rust丢弃asm宏相关的PR

qwtsc avatar May 25 '20 15:05 qwtsc

Rust 会在函数的开始和结尾加入一些额外的指令,控制栈寄存器等。

这个你可以用#[naked]函数。比如我这个abort函数:https://rust.godbolt.org/z/MYvZR4

luojia65 avatar Jun 05 '20 05:06 luojia65

使用nightly 2020-01-26版本的话,一直显示cannot find llvm_asm macro(感觉理论上不应该),后来用了最新的nightly(06-24),再把sbi.rs, init.rs等里面的asm!(..)改成llvm_asm!(..)就好了

wtyytw0 avatar Jun 26 '20 02:06 wtyytw0

注意 该依赖似乎放弃了riscv = { git = "https://github.com/rcore-os/riscv", features = ["inline-asm"] } 中 asm!的写法,而转成了llvm_asm! @wtyytw0 的意见修改可以成功运行,但同时需要在lib.rs 中加入 #![feature(llvm_asm)]

ghost avatar Jul 22 '20 06:07 ghost