Linux内核驱动及调试开发实践

标签:IT数据BI信息流程

访客:21465  发表于:2015-11-16 15:54:07

标题

内容

1

进入嵌入式Linux的精彩世界

1.1  Linux的特点、版本演进与发展方向

1.2  嵌入式Linux系统组成

1.3  开发环境构建

1.4 GNU工具链和GDB调试

2

嵌入式Linux构建与启动过程分析

 

2.1 文件系统组成

2.2 Busybox编译与配置

2.3 加入C

2.4 Linux启动过程

2.4.1 Bootloader

2.4.2 内核启动过程

2.4.3 用户空间init

2.5 嵌入式Linux裁剪

2.5.1 内核KconfigMakefile

2.5.2 内核源代码目录

2.5.3 内核裁剪

2.5.4 文件系统裁剪

3

Linux内核进程调度

 

3.1 task_struct

3.2 进程调度算法

3.3 进程调度时机

3.4 实时性

4

Linux内核内存管理

 

4.1 mm_struct

4.2 buddy系统

4.3 slabkmalloc

4.4 DMANORMALHIGHMEM ZONE

4.5 静态内存映射

4.6 VMA, VSS/RSS/PSS/USS

4.7 连续内存管理,CMA

5

Linux内核文件系统

 

5.1 虚拟文件系统

5.2 inodedentrysuperblock

5.3 文件系统与block

5.4 Flash文件系统

6

Linux 内核系统调用

6.1 Linux系统调用实现原理

6.2 增加一个新的系统调用

7

内核编程主要API

 

7.1 同步与并发

7.2 等待队列

7.3 内核延时

7.4 内存申请和释放

7.5  定时器

7.6 中断顶底半部

7.6.1 软中断

7.6.2 tasklet

7.6.3 工作队列

7.6.4 threaded_irq

7.7 Linux内核线程

7.8 IO与内存访问

7.9 DMAcache一致性

8

Linux内核模块

8.1 内核模块initexit

8.2 输入参数

8.3 输出参数

 

9

Linux内核调试方法

9.1 printk

9.2 Oopspanic

9.3 内核debug选项

9.4 /proc

9.5 gdbkgdbkdb

9.6 使用仿真器

9.7 core dump

9.8 strace

10

Linux设备驱动模型

10.1 Linux设备分类

10.2 Sys,总线,设备和驱动

10.3 热插拔

10.4 电源管理

10.5 udev

11

Linux字符设备驱动结构

11.1 Linux字符设备驱动结构

11.2 globalmem虚拟设备实例描述

11.3 globalmem设备驱动

11.4 globalmem驱动的编译与加载

11.5 globalmem驱动在用户空间的验证

12

Linux设备驱动中的并发控制

12.1并发控制的概念

12.2何时需要并发控制

12.3自旋锁

12.4信号量,mutex

12.5增加并发控制后的globalmem驱动

13

Linux设备驱动中的阻塞与非阻塞I/O

13.1阻塞与非阻塞I/O

13.2 poll操作的概念

13.3何时需要poll操作

13.4等待队列waitqueues

13.5 Linux poll操作相关数据结构与函数

13.6支持poll操作的globalmem驱动

 

14

Linux 设备驱动中的异步通知

14.1异步通知的概念

14.2何时需要异步通知

14.3 Linux异步通知相关数据结构与函数

14.4支持异步通知的globalmem驱动

    14.4.1globalmem驱动中增加异步通知

    14.4.2在用户空间验证globalmem的异步通知

 

15

Linux MTD子系统与FLASH驱动

15.1 Linux MTD子系统结构

15.2 NOR FLASH驱动

15.3 NAND FLASH驱动

15.4 FLASH文件系统:JFFS2/YAFFS2/UBI

16

Linux 网络设备驱动

16.1 Linux网络协议栈

16.2 sk_buff

16.3 Linux网络设备驱动结构

16.4数据发送流程

16.5数据接收流程

17

设备驱动的分层

17.1 设备驱动分层框架

17.2 实例1input子系统

17.3 实例2LCD子系统

18

platform设备驱动

18.1 platform驱动

18.2 platform设备

18.3 platform设备板级信息

19

I2C驱动

19.1 I2C主机驱动

19.2 I2C client驱动

19.3 I2C驱动电源管理

19.4 I2C板文件信息

20

SPI驱动

20.1 SPI主机驱动

20.2 SPI client驱动

20.3 SPI驱动电源管理

20.4 SPI板文件信息

21

Linux移植到一个新的ARM SoC

21.1 early_printk

21.2 L2 cache

21.3 OS timer

21.4 clk tree

21.5 GPIO

21.6 pinmux

21.7 IRQ chip

21.8 DMA

21.9 MACH_INIT

21.10 device tree

21.11 社区维护

22

Linux调试与性能优化

22.3 gdb与多线程

22.4常用工具(top/vmstat/iostat/sysctl等)

22.5 性能优化: oprofile, LTTng gprof

22.6 开机速度: bootchart

22.7 功耗:powertop

22.8 延迟:latencytop

22.9 内存分析: procmemprocranksmem

22.10 top, iostat, netstat

评论(0)

您可以在评论框内@您的好友一起参与讨论!

<--script type="text/javascript">BAIDU_CLB_fillSlot("927898");