确定硬件特征,分析外设属性
获取内核源码,代码分析与改进,并部署驱动开发环境
飞腾派驱动参考:
https://file1.elecfans.com/web2/M00/B5/2A/wKgZomVy5lOAR1tFACLfCu4kceg684.pdf
参考资料:
配套实验指导书(正在撰写): https://chenlongos.com/Phytium-Pi-Driver/
实验指导书配套代码仓库(正在完善): https://github.com/chenlongos/appd
| 第二期飞腾派驱动开发训练营 - 培训课表安排(直播课6周,项目6周,每周一/三/五晚8点上课) | ||||
| 培训阶段 | 培训主题 | 培训时间 | 课程主题 | 内容大纲 |
| 导学阶段 (1周) | 前置知识入门与环境准备 | 开营前 | 硬件设备/开发环境 | 硬件平台介绍,开发环境准备,前置知识引导 |
| 开营仪式 | 开营启动会:#腾讯会议: | 6.15 晚8点 | 训练营启动 | 依托项目介绍训练营的学习内容,完成目标以及参与规则 |
| 基础阶段 (3周) | 第一周:硬件控制类驱动 | 6.16 | GPIO驱动开发 | GPIO寄存器配置与子系统应用。 |
| 6.18 | PWM驱动开发 | PWM波形生成与电机控制。 | ||
| 6.20 | 复位与引脚复用驱动开发 | Pinctrl原理与设备树引脚配置,复位控制寄存器与框架集成。 | ||
| 第二周:时钟管理类驱动 | 6.23 | NOC时钟驱动 | NOC时钟拓扑与寄存器配置。 | |
| 6.25 | 时钟源驱动 | 时钟源原理与CCF框架集成。 | ||
| 6.27 | 看门狗驱动 | 看门狗超时复位机制实现。 | ||
| 第三周:外设协议类驱动 | 6.30 | UART串口驱动 | UART串口通信驱动实现。 | |
| 7.2 | I2C驱动开发 | I2C时序解析与传感器驱动。 | ||
| 7.4 | SPI驱动开发 | SPI通信与传感器驱动。 | ||
| 专业阶段 (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实现 | 驱动与操作系统的适配。 | ||
| 挑战题目 (选修) | 存储驱动实现 | 6.30~7.25 | Micro SD驱动 | 设计实现对应驱动 |
| 6.30~7.25 | eMMC | 设计实现对应驱动 | ||
| 6.30~7.25 | Flash驱动 | 设计实现对应驱动 | ||
| 中期选题 | 项目选题会:#腾讯会议: | 7.27 晚8点 | 项目选题 | 各个项目实习方向导师介绍项目背景和需求,学员自主选题 |
| 项目阶段 (6周) | 项目一:多媒体方向 | 7.28~9.7 | USB摄像头驱动 | 项目实践,根据不同方向的项目选择和各自小组的导师确定课程安排和实习要求 |
| 项目二:无线通讯方向 | 7.28~9.7 | WiFi6/蓝牙驱动 | 项目实践,根据不同方向的项目选择和各自小组的导师确定课程安排和实习要求 | |
| 挑战题目:实时工业总线方向 | 7.28~9.7 | CANFD驱动 EtherCAT驱动 | 项目实践,根据不同方向的项目选择和各自小组的导师确定课程安排和实习要求 | |
| 闭营仪式 | 闭营总结会:#腾讯会议: | 9.7 晚8点 | 训练营结营 | 总结训练营的教学成果,表彰优秀学员,介绍线下项目实习 |