oscamp 暑期 proj 周纪要
(六) 7.13:
回顾会议内容, 总结任务目标:
- 为
arceos/tour/*添加对其他架构 (aarch64/x86_64/loongarch) 的支持 - 在
arceos/tour下新增一些例子, 体现 ArceOS 特定功能, 如图形显示功能/文件系统功能/新调度算法功能
把工具链换到最新的:
#[naked]更改为#[unsafe(naked)]. 裸函数使得编译器不会为函数生成序言和尾声代码(比如保存/恢复寄存器, 设置栈帧等), 操作系统开发的部分场景要求完全控制寄存器细节同时将
asm!改为naked_asm!. 裸函数内一般没有 Rust 代码, 因为会隐含地依赖序言和尾声, 所以几乎都是内联汇编代码naked_asm!不支持伪指令和宏(虽然我不知道为什么原来这里要写伪指令, 可能是和 arm 统一?), 所以要把那一段全部改写成 RISC-V 汇编, 好在代码量比较少, 如果多了我还真想不出什么方便的方法