课程资料:
https://github.com/drivercraft/tutorial
第一周作业:
(需全部完成)
1.将之前的的驱动作业,选择一个,如uart、spi等,完善为操作系统无关的驱动crate,添加单元测试,添加github ci测例,并保证全部通过。
2.第二课作业:为uart i2c等之前选择的作业,增加中断和异步功能
提交地址:
https://github.com/drivercraft/tutorial/discussions/2
第二周作业:
作业:Qemu 模拟一个IGB网卡设备,通过PCIe枚举到该设备,并初始化IGB网卡,使其到达Link状态。
挑战作业:用递归方式实现PCIe设备枚举。
挑战作业:实现IGB网卡发送或接收pkg功能。
提交地址:
https://github.com/drivercraft/tutorial/discussions/3
▸ 7月7日:单元测试与工作流
▸ 7月9日:驱动模型设计
▸ 7月11日:常见陷阱与注意事项
▸ 7月14日:PCIe控制器驱动与设备枚举
▸ 7月16日:PCIe网卡驱动基础-设备发现与初始化。
▸ 7月18日:IGB网卡驱动实现-PHY层与MAC层。
▸ 7月21日:GMAC以太网基础-GMAC寄存器与MII接口配置。
▸ 7月23日:YT8521驱动实现-原理及代码实现。
▸ 7月25日:net_device实现-驱动与操作系统的适配。
| 专业阶段(3周) | 第四周:驱动设计模式 | 7.7 | 单元测试与工作流 | 单元测试与工作流 |
| 7.9 | 驱动模型设计 | 驱动模型设计 | ||
| 7.11 | 常见陷阱与注意事项 | 常见陷阱与注意事项 | ||
| 第五周:网络通信类驱动 | 7.14 | PCIe控制器驱动与设备枚举 | PCIe控制器驱动与设备枚举 | |
| 7.16 | PCIe网卡驱动基础-设备发现与初始化 | PCIe网卡驱动基础-设备发现与初始化 | ||
| 7.18 | IGB网卡驱动实现-PHY层与MAC层 | IGB网卡驱动实现-PHY层与MAC层 | ||
| 第六周:网络通信类驱动 | 7.21 | GMAC以太网基础 | GMAC寄存器与MII接口配置。 | |
| 7.23 | YT8521驱动实现 | 原理及代码实现。 | ||
| 7.25 | net_device实现 | 驱动与操作系统的适配。 |