本课程内容详细说明Linux内核程序编写的高并发、同歩、中断、计时器、运行内存、DMA和cache等难题,融合案例解读Linux驱动各种各样设备驱动构架、I/O实体模型及其Linux的移殖、设备树编码的撰写等。
本课程内容的合理布局分配是,每日授课约4钟头,试验约2钟头。规定学生亲身在电脑上和电路板上开展试验。
课程大纲:
*章内核程序编写
热身运动,了解pcduino主控板
1.主控板详细介绍和应用
2.Bootloader、kernel、系统文件组成
3.怎么更新木板里的物品
第1节内核程序编写关键API深层次分析
1同歩与高并发(atomic,spinlock,mutex,completion深层次了解)
2等候序列
3内核廷时
4运行内存申请办理和释放出来
5作为DMA的运行内存
6内存屏障与存储器浏览
第二节计时器
1内核计时器tick
2tickless
3高精密计时器hrtimer
第三节中断
1中断顶底下半
2软中断
3tasklet
4工作中序列
5threaded_irq
6多核中断affinity及软中断三层交换机
第四节Linux内核模块
1内核模块init和exit
2键入主要参数
3輸出主要参数
4控制模块的license与GPL
第5节Linux内核的调节
1printk
2Oops和panic
3initcall_debug
4电池管理suspend/resumedebug
5earlyprintk与lowleveldebug
6proc和sys
7grabserial
8soft和hardlockup
9内核的源代码级调节
10内核模块的源代码级调节
11ftrace
第二章设备驱动
第1节Linux设备驱动实体模型
1Linux设备归类
2Sys,系统总线、设备、驱动和class
3热插拔
4电池管理
5udev
第二节设备驱动高并发操纵与I/O实体模型
1Linux标识符设备驱动构造
2Linux设备驱动中的高并发操纵
3Linux设备驱动中的堵塞和非堵塞I/O
4Linux时分复用I/O
5SignalIO与AIO
6客户室内空间I/O与线程同步设计原理
第三节Linux繁杂设备驱动
1设备驱动层次架构
2设备驱动的面向对象编程设计方案
3platform驱动
4根据I2C/SPI/USB等系统总线的驱动
5块设备驱动与块I/O生产调度
6互联网设备驱动
经典案例
input分系统
LCD分系统
DM9000网口
ADI网口
vmem_disk
第三章Linux移殖和BSP搭建
第1节将Linux移殖到一个新的SoC或线路板
1OStimer
2L2cache
3early_printk
4clktree
5GPIO
6pinmux
7IRQchip
8DMA
9MACH_INIT
10小区维护保养
第二节设备树(DeviceTree)
1用一个假定的简易线路板从头至尾搭建一个dts文件
2dts编译程序为dtb,与dtb反汇编为dts
3Machine级的配对
4driver和device级的配对
5基详细地址、中断、gpio、数字时钟、reset、pinmux等基本特性
6dts连接点自定特性
7起动全过程中dtb的载入与进行
8i2c,spi子连接点的进行
9dts的等级分类与dtsi
10dtbinding文本文档