leonhxx
leonhxx
I also have this problem
> From the error messages, it is likely that the makefile is using an env. variable that is missing thanks, I make a mistake... we need to set "export POK_PATH=/where/you/have/the/pok/sources"...
> Use this: https://github.com/OpenAADL/ocarina-build thanks, but unfortunately ocarina buid failed with the message: home/\*\*\*\*/ocarina-build/ocarina/src/../projects/restrictions.adc:30:22: invalid restriction identifier "No_Fixed_Io" /home/\*\*\*\*/ocarina-build/ocarina/src/../projects/restrictions.adc:64:22: invalid restriction identifier "No_Implicit_Task_Allocations" /home/\*\*\*\*/ocarina-build/ocarina/src/../projects/restrictions.adc:65:22: invalid restriction identifier "No_Implicit_Protected_Object_Allocations" /home/\*\*\*\*/ocarina-build/ocarina/src/../projects/restrictions.adc:75:22: invalid...
> Your GNAT is definitely too old, the tool compiles just fine thanks,I update the GNAT to gnat-2020-20200429-x86_64-linux-bin、gnat-community-2019-20190517-x86_64-linux-bin,try for a long time, but still build failed with the following message:...
> Chances are that you put gnat community at the end of your path. It should be in front so that you use gprbuild from GNAT CE and not the...
sbi_cal和syscall的命令一样,底层如何判断权限呢?是rustSBI根据id控制的么?
如何做到执行环境的初始化代码被放在内存上以 0x80200000 开头的区域上?----对这部分的讲解不是很理解,我的理解是这样的:操作系统代码是bootloader(也就是rustSBI)加载到内存中的,放到0x80200000 开头的区域上是由bootloader控制的,因此我们配置栈空间布局只能改变各个段的现对位置及内核初始位置,使booloader加载到的位置和我们配置的初始位置一致,这样地址偏移就会一致。这样理解正确么?
第 25~28 行,我们将 CSR sstatus 和 sepc 的值分别读到寄存器 t0 和 t1 中然后保存到内核栈对应的位置上。指令 csrr rd, csr 的功能就是将 CSR 的值读到寄存器 rd 中。这里我们不用担心 t0 和 t1 被覆盖, 因为它们刚刚已经被保存了。 ------这里不太理解,之前的代码只是保存了x1~x31寄存器,好像没保存t0、t1和后面用到的t2呀?
sscratch 是何时被设置为内核栈顶的? -----这个问题想了好久也没找到,然到哪里自动把KernelStack的位置设置给sscratch了?
使用清华网盘镜像里的Ubuntu时,加上#![no_std] 来告诉 Rust 编译器不使用 Rust 标准库 std后,报的错误和书里的有点不一样,我这儿的异常信息如下,请问还需要安装软件么? error[E0463]: can't find crate for `core` | = note: the `riscv64gc-unknown-none-elf` target may not be installed error: aborting due to previous error For...