感谢您发送咨询!我们的团队成员将很快与您联系。
感谢您发送预订!我们的团队成员将很快与您联系。
课程大纲
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
机器翻译