linux设备驱动开发详解 第三版,《Linux设备驱动开发详解(第3版)》进展同步更新...

2014.8.25 目前初步完成2-11章以及第22章 《Linux设备驱动的调试》,相对于第2版,这几章主要的变更。

本博实时更新《Linux设备驱动开发详解(第3版)》的最新进展。

2014.8.22 目前初步完成2-11章以及第22章 《Linux设备驱动的调试》,相对于第2版,这几章主要的变更。

[F]是修正或升级;[N]是新增知识点;[D]是删除的内容

第2章 《驱动设计的硬件基础》

[N]增加关于SoC的介绍;

[N]增加关于eFuse的内容;

[D]删除ISA总线的内容了;

[N]增加关于SPI总线的介绍;

[N]增加USB 3.0的介绍;

[F]修正USB同步传输方式英文名;

[D]删除关于cPCI介绍;

[N]增加关于PCI Express介绍;

[N]增加关于Xilinx ZYNQ的介绍;

[N]增加SD/SDIO/eMMC的章节;

[D]删除“原理图分析的内容”一节;

[N]增加通过逻辑分析仪看I2C总线的例子;

第3章 《Linux内核及内核编程》

[N]新增关于3.X内核版本

[N]新增关于内核版本升级流程以及Linux社区开发模式讲解

[N]新增关于Linux内核调度时间的图式讲解

[N]新增关于Linux 3.0~3.15 ARM架构的变更的讲解

[N]新增Linux内存管理图式讲解

[F]修正Kconfig和Makefile中的一些表述

[D]删除关于x86启动过程讲解

[N]新增ARM Linux启动过程讲解

[N]新增关于likely()和unlikely()讲解

[N]新增toolchain的讲解,以及toolchain的几种浮点模式

第4章 《Linux内核模块》

[F]改正关于模块使用非GPL license的问题;

[F]修正关于__exit修饰函数的内存管理

第5章 《Linux文件系统与设备文件》

[F]修正关于文件系统与块设备驱动关系图;

[N]增加应用到驱动的file操作调用图;

[N]增加通过netlink接受内核uevent的范例;

[N]增加遍历sysfs的范例;

[N]增加为kingston U盘编写udev规则的范例;

[F]更新udev规则,以符合新版本;

[N]增加udevadm的讲解;

[N]高亮Android vold

第6章 《字符设备驱动》

[F]更新file_operations的定义,升级ioctl()原型;

[N]增加关于Linux access_ok()的讲解以及Linux内核安全漏洞的说明;

[F]修正globalmem的编码风格;

[F]在globalmem支持2个以上实例的时候,从直接2个实例,升级为支持N个实例;

第7章 《Linux设备驱动中的并发控制》

[N]绘图深入讲解单核和多核下的各种竞态;

[N]增加关于编译乱序,执行乱序,编译屏障和内存屏障的讲解;

[N]增加关于ARM LDREX/STREX指令的讲解;

[N]对spin_lock单核和多核的使用场景进行深入分析;

[F]重新整理RCU的讲解方法和实例;

[F]明确指明信号量已过时;

[F]将globalmem中使用的信号量换为mutex。

第8章 《Linux设备驱动中的阻塞与非阻塞I/O》

[N]新增阻塞和非组塞的时序图

[F]修正globalfifo的编码风格

[F]修正globalfifo可读可写的if判断为while判断

[N]新增select的时序图

[N]新增EPOLL的章节

第9章 《Linux设备驱动中的异步通知与异步I/O》

[F]修正关于glibc AIO支持

[F]修正关于内核AIO支持

[F]修正驱动AIO接口

[D]删除关于驱动AIO支持的错误实例

[N]高亮C10问题

第10章 《中断与时钟》

[N]增加关于ARM GIC的讲解

[N]增加关于irq_set_affinity() API的讲解

[N]增加关于devm_request_irq() API的讲解

[F]修正interrupt handler原型

[F]修正work queue原型

[N]新增关于Concurrency-managed workqueues讲解

[N]增加关于ksoftirqd讲解

[N]增加关于request_threaded_irq()讲解

[D]删除s3c6410 rtc驱动中断实例

[N]新增GPIO按键驱动中断实例

[N]新增hrtimer讲解

[F]修正second设备编码风格

第11章 《内存与I/O访问》

[N]新增关于ARM Linux内核空间虚拟地址分布

[F]修正关于内核空间与用户空间界限

[N]新增关于DMA、NORMAL和HIGHMEM ZONE的几种可能分布

[N]新增关于buddy的介绍

[F]修正关于用户空间malloc的讲解

[N]增加mallopt()的案例

[N]增加关于devm_ioremap、devm_request_region()和devm_request_mem_region()的讲解

[N]增加关于readl()与readl_relaxed()的区别,writel()与writel_relaxed()的区别

[F]更新vm_area_struct的定义

[F]修正nopage() callback为fault() callback

[N]增加io_remap_pfn_range()、vm_iomap_memory()讲解

[F]强调iotable_init()静态映射目前已不太推荐

[N]增加关于coherent_dma_mask的讲解

[N]讲解dma_alloc_coherent()与DMA ZONE关系

[N]提及了一致性DMA缓冲区与CMA的关系

[N]增加关于dmaengine驱动和API的讲解

第22章 《Linux设备驱动的调试》

[D]把实验室环境建设相关的节移到第3章;

[F]修正关于gdb的set step-mode的含义讲解;

[F]增加关于gdb的set命令的讲解;

[F]增加gdb call命令的案例

[D/N]删除手动编译工具链的代码,使用crosstool-ng;

[N]更新toolchain的下载地址(codesourcery -> memtor),加入linaro下载地址;

[N]增加pr_fmt的讲解;

[N]增加关于ignore_loglevel bootargs的讲解;

[N]增加EARLY_PRINTK和DEBUG_LL的讲解;

[F]调整proc的范例,创建/proc/test_dir/test_rw;

[N]修正关于3.10后内核proc实现框架和API的变更;

[N]增加关于BUG_ON和WARN_ON的讲解

[F]不再以BDI-2000为例,改为ARM DS-5;

[N]增加关于ARM streamline性能分析器的介绍;

[N]增加使用qemu调试linux内核的案例;

[F]调整Oops的例子,,使用globalmem,平台改为ARM;

[F]更新LTT为LTTng。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值