Rust for Linux 驱动&跨内核驱动框架设计与实现
- 课程时间:前3周 每周二、周五 8:00PM 内容讲解
后3周 每周五 8:00PM 实践交流
- 项目周期:6周
- 导师:唐翰文
- 助教:郑佳
课程安排
R4L&跨内核驱动框架实现分为基础和实践两个阶段。基础阶段为前三周,会有两次课程讲解,将快速帮助学员熟悉Rust for Linux驱动实现流程和跨内核驱动框架的设计思路;实践阶段主要是实践交流,每周至少会有一次开发交流会,将选择两个驱动之一实践进行开发,完成设计与实现,形成学习开发文档。
课题目标
- 本项目将结合Rust for Linux驱动开发和跨内核驱动框架设计,在Linux和ArceOS上实现外设驱动的复用,帮助学员深入理解驱动开发的基本概念,掌握HAL层的实现技巧,并将HAL层成功集成到不同的操作系统内核中;
- 逐步积累并形成学习开发文档;
- 进而有机会为rcore-os Rust操作系统社区以及Linux社区的发展,通过编写Rust驱动等方式贡献一份自己的力量。
课题及实践的安排表
资料链接:
Rust for Linux社区仓库 & 树莓派Linux
https://github.com/Rust-for-Linux
Rust网卡驱动参考:
https://github.com/elliott10/e1000-driver.git
https://github.com/fujita/linux.git
跨内核驱动框架:
osl层:https://github.com/guoweikang/osl
i2c适配层参考:https://github.com/guoweikang/i2c-dw-linux-adapter
i2c HAL层参考:https://github.com/guoweikang/i2c-designware
gpio适配层参考:https://github.com/happy-thw/gpio-dw-linux-adapter
gpio HAL层参考:https://github.com/happy-thw/dw-apb-gpio
树莓派:
数据手册:https://datasheets.raspberrypi.com/rpi4/raspberry-pi-4-datasheet.pdf
第一节课ppt:https://cloud.tsinghua.edu.cn/f/1038ac2b0c1b48fd9a57/
第二节课ppt:https://cloud.tsinghua.edu.cn/f/776f11a7ba62417ba136/
考核方式
- 通过课程练习和实习项目,进行成绩的打分排名;
- 分数构成: 阶段性练习占比60%;基于物理开发板/模拟器的实践任务占比40%
- 将会统计各位学员的姓名及仓库地址; 代码及运行结果截图请提交在各自练习的仓库; 结果截图中需出现自己的名字或github ID
通过要求:
- 合格:成绩得分高于60%分,提交代码 + 总结报告。
- 优秀:符合如下条件之一
- 基础练习+项目实践总得分80%,提交代码 + 总结报告。
- 项目实践任务得分超过 32%(通过跨内核驱动框架能在arceos+linux内核跑通驱动),提交代码+总结报告。
序号 | 课堂内容 | 开始时间 | 备注 | 课堂回放 |
---|---|---|---|---|
暂无数据 |