一、课程描述:
本课程详解Linux内核编程的并发、同步、中断、定时器、内存、DMA和cache等问题,结合实例讲解Linux驱动各种设备驱动架构、I/O模型以及Linux的移植、设备树代码的编写等。 本课程的布局安排是,每天上课约4小时,实验约2小时,共6个小时。要求学员亲自在电脑和电路板上进行实验练习。 上本课程之前,最好已经上过《打通Linux脉络系列:Linux内核进程、内存和IO》,打好了相应的基础。二、主办单位:
中国高科技产业化研究会智能信息处理产业化分会 北京中际赛威文化发展有限公司 北京中际孚歌科技有限公司 北京中际荣威科技有限公司三、研修时间:2019年12月13-14日(12日 报到)
四、研修地点:北 京(具体地点及路线图详见报到通知)
五、培训对象:
本课程适合对象: Linux开发者(熟练地使用Linux,在Linux上从事开发)
本课程不适合:对Linux还没有入门的同学
本课程配套赠送畅销书《Linux设备驱动开发详解:基于最新的Linux4.0内核》一本。
六、课程内容:
第一章 内核编程
热身,熟悉pcduino板卡
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文档
七、主讲老师:
中际赛威金牌讲师,知名嵌入式系统专家,2008~2009年度十大畅销书作者,曾为思科、阿尔卡特、朗讯、四方、意法半导体、富士施乐、代傲电子、飞利浦、南瑞、宝信、美国国家仪器、ABB、中国建设银行等知名企业提供嵌入式Linux企业培训和技术服务,受到企业广泛好评。活跃于 Linux社区,已给Linux官方内核贡献了逾3万行代码,是给Linux官方内核贡献代码最多的华人之一,目前是Linux官方内核ARM子系统内maintainer之一。
八、收费标准:3800元/人,含资料、午餐、课时费、证书。
九、课程咨询:010-64113137