感谢您发送咨询!我们的团队成员将很快与您联系。
感谢您发送预订!我们的团队成员将很快与您联系。
课程大纲
1. Linux 内核简介
- 嵌入式 Linux 概述
- Linux 内核架构
- 用户空间与内核空间
- 内核职责
- 内核开发工作流程
- 支持的嵌入式平台概述
2. 搭建开发环境
- 准备开发工作站
- 交叉编译概念
- 安装所需的开发工具
- 配置 BeagleBone Black 开发板
- 串行控制台配置
- 引导目标设备
3. 获取与理解内核源码
- Linux 内核源代码树
- 稳定版与长期支持版内核
- 下载内核源码
- 探索源码结构
- 内核文档
- 管理内核版本
4. 配置、编译与引导内核
- 使用 menuconfig 进行内核配置
- 选择内核功能
- 交叉编译内核
- 构建内核镜像
- 安装内核模块
- 引导程序概述
- 引导自定义内核
5. 设备树基础
- 设备树的目的
- 设备树源码 (DTS) 文件
- 设备树二进制文件 (DTB)
- 硬件描述概念
- 修改设备树文件
- 构建与部署设备树
6. Linux 内核模块
- 内核模块架构
- 构建可加载内核模块
- 加载与卸载模块
- 模块参数
- 模块依赖关系
- 与内核模块交互
- 模块调试技术
7. Linux 内核调试
- 使用 printk() 进行内核日志记录
- 使用 dmesg 工具
- 动态调试
- 内核恐慌分析
- Oops 错误消息
- 使用 GDB 进行调试
- 基本的性能追踪工具
8. 字符设备驱动程序
- Linux 设备驱动模型
- 字符设备
- 注册驱动程序
- 文件操作
- 读取与写入操作
- IOCTL 接口
- 内存管理
- 驱动清理
9. 驱动集成与硬件访问
- 平台设备与驱动
- GPIO 编程
- 中断处理
- 定时器与延迟工作
- 访问硬件寄存器
- 处理内存映射 I/O
10. 使用 Git 进行版本控制
- Git 基础
- 管理内核源代码
- 分支与合并
- 创建补丁
- 审查更改
- 协作参与内核开发
11. 内核开发动手实验
- 配置自定义内核
- 构建与部署内核
- 创建简单的内核模块
- 开发基础字符设备驱动程序
- 修改设备树文件
- 在 BeagleBone Black 上调试内核问题
12. 最佳实践与总结
- 内核编码风格
- 编写可维护的驱动程序
- 常见的开发陷阱
- 内核文档资源
- 开源贡献工作流程
- 关键概念回顾
- 问答环节
- Linux 内核开发的后续步骤
要求
具备基本的 GNU/Linux 系统使用经验
14 小时
客户评论 (2)
培训师的知识非常丰富。他能够回答我所有的问题,甚至包括关于我们平台的问题。他还一直帮助我们,直到我们所有人都理解了材料。
James O'Donnell - Tennant Company
课程 - Embedded Linux Kernel and Driver Development
机器翻译
I liked the hands-on nature of it.
Maurice Egan
课程 - Embedded Linux Kernel and Driver Development
机器翻译