小编moo*_*834的帖子

RISCV中的内存映射部分是什么

熟悉MIPS架构,知道MIPS有kseg0、kseg1等内存段。这决定了该段是否可以被缓存或映射。例如,您应该将一些 I/O 设备(如 UART)定位到未缓存的段。

但是我在 RISCV arch 中没有找到任何相关的东西。那么RISCV OS如何知道地址是否应该被映射呢?

顺便说一句:我知道 satp CSR 中的值描述了翻译模式。当操作系统运行时,该值必须设置为“Bare(disabled MMU)”以外的值,以便操作系统可以支持虚拟内存。那么如果CPU访问UART地址,satp中的值仍然不是“Bare”?但应该是“Bare”吧?

memory cpu operating-system mmu riscv

2
推荐指数
1
解决办法
2159
查看次数

如何在 Rust 中倒带文件指针

在 C 中,我可以使用rewindback to start,但我没有在 Rust 中找到类似的方法。

我想打开一个已经存在的文件,让文件指针回到起点,往里面写新词,覆盖旧词。

但是现在我只能在原始文件的最后一行之后写一些东西,并且不知道如何更改文件指针。

我知道 rust 有一个板条箱libc::rewind,但如何使用它,或任何其他方式?

rust

1
推荐指数
2
解决办法
739
查看次数

标签 统计

cpu ×1

memory ×1

mmu ×1

operating-system ×1

riscv ×1

rust ×1