Linux BSP和驱动深入剖析 |
1412 次浏览 67 次
|
|
 |
|
宋老师 |
知名嵌入式系统专家,2008~2009年度十大畅销书、十大原创图书《Linux设备驱动开发详解》作者 |
|
|
|
时间地点: 北京、上海、深圳根据报名开班 |
课程费用:5000元/人 |
|
|
|
企业内训:可以根据企业需求,定制内训,详见
内训学习手册 |
|
 |
认证方式:
培训前了解能力模型。
培训后进行能力评测: 在线考试
能力分析,给出学习建议
合格者颁发证书,作为职业技能资格证明 |
 |
|
|
本课程详解 Linux 内核编程的并发、同步、中断、定时器、内存、 DMA 和 cache 等问题,结合实例讲解 Linux 驱动各种设备驱动架构、 I/O 模型以及 Linux 的移植、设备树代码的编写等。
本课程的布局安排是,每天上课约 4 小时,实验约 2 小时。要求学员亲自在电脑和电路板上进行实验。 |
培训目标:
内核编程主要API深入剖析
定时器
中断
Linux内核模块
Linux内核的调试
Linux设备驱动模型
设备驱动并发控制与I/O模型
Linux复杂设备驱动
将Linux移植到一个新的SoC或电路板
设备树(Device Tree)
|
培训对象: Linux开发者(熟练地使用Linux,在Linux上从事开发) |
学员基础:了解Linux开发知识,具备一定的Linux开发经验 |
授课方式:定制课程 + 案例讲解
+ 小组讨论,60%案例讲解,40%实践演练 |
培训内容:2天
|
第一章 内核编程 |
1.板卡介绍和使用
2.Bootloader 、 kernel 、文件系统构成
3. 怎么更新板子里的东西
第 1 节 内核编程主要 API 深入剖析
1 同步与并发 (atomic, spinlock,mutex,completion 深入理解 )
2 等待队列
3 内核延时
4 内存申请和释放
5 用作 DMA 的内存
6 内存屏障与寄存器访问
第 2 节 定时器
1 内核定时器 tick
2 tickless
3 高精度定时器 hrtimer
第 3 节 中断
1 中断顶底半部
2 软中断
3 tasklet
4 工作队列
5 threaded_irq
6 多核中断 affinity 及软中断负载均衡
第 4 节 Linux 内核模块
1 内核模块 init 和 exit
2 输入参数
3 输出参数
4 模块的 license 与 GPL
第 5 节 Linux 内核的调试
1 printk
2 Oops 和 panic
3 initcall_debug
4 电源管理 suspend/resume debug
5 earlyprintk 与 low level debug
6 proc 和 sys
7 grabserial
8 soft 和 hard lockup
9 内核的源码级调试
10 内核模块的源码级调试
11 ftrace
|
第二章 设备驱动 |
第 1 节 Linux 设备驱动模型
1 Linux 设备分类
2 Sys ,总线、设备、驱动和 class
3 热插拔
4 电源管理
5 udev
第 2 节 设备驱动并发控制与 I/O 模型
1 Linux 字符设备驱动结构
2 Linux 设备驱动中的并发控制
3 Linux 设备驱动中的阻塞与非阻塞 I/O
4 Linux 多路复用 I/O
5 Signal IO 与 AIO
6 用户空间 I/O 与多线程设计原则
第 3 节 Linux 复杂设备驱动
1 设备驱动分层框架
2 设备驱动的面向对象设计
3 platform 驱动
4 基于 I2C/SPI/USB 等总线的驱动
5 块设备驱动与块 I/O 调度
6 网络设备驱动
案例分析
1 input 子系统
2 LCD 子系统
3 DM9000 网卡
4 ADI 网卡
5 vmem_disk |
第三章 Linux移植和BSP构建 |
第 1 节 将 Linux 移植到一个新的 SoC 或电路板
1 OS timer
2 L2 cache
3 early_printk
4 clk tree
5 GPIO
6 pinmux
7 IRQ chip
8 DMA
9 MACH_INIT
10 社区维护
第 2 节 设备树 (Device Tree)
1 用一个假设的简单电路板从头到尾构建一个 dts 文件
2 dts 编译为 dtb ,与 dtb 反编译为 dts
3 machine 级的匹配
4 driver 和 device 级的匹配
5 基地址、中断、 gpio 、时钟、 reset 、 pinmux 等常规属性
6 dts 节点自定义属性
7 启动过程中 dtb 的读取与展开
8 i2c, spi 子节点的展开
9 dts 的分级与 dtsi
10 dt binding 文档
|
|
|