Linux驱动程序开发实例

Linux驱动程序开发实例
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2011-04
版次: 1
ISBN: 9787111333159
定价: 55.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 365页
字数: 580千字
正文语种: 简体中文
17人买过
  • 《Linux驱动程序开发实例》专门介绍Linux设备驱动程序开发,涵盖了Linux驱动程序基础、内核移植、I2C驱动程序、LCD驱动程序、网络驱动程序、USB驱动程序、输入子系统驱动程序、块设备驱动程序等内容。《Linux驱动程序开发实例》以实例为主线,是为Linux设备驱动程序开发人员量身打造的精品学习图书和实战指南。《Linux驱动程序开发实例》提供了丰富的实例代码和详细的注释,并附赠完整代码光盘一张。
    《Linux驱动程序开发实例》主要面向各层次的嵌入式Linux开发工程师,也可以作为各类嵌入式系统培训机构的培训教材和高校计算机课程的教辅书籍。 出版说明
    前言
    第1章Linux设备驱动程序模型1
    1.1设备驱动程序基础1
    1.1.1驱动程序的概念1
    1.1.2驱动程序的加载方式2
    1.1.3编写可加载模块3
    1.1.4带参数的可加载模块5
    1.1.5设备驱动程序的分类6
    1.2字符设备驱动程序原理7
    1.2.1file_operations结构7
    1.2.2使用register_chrdev注册字符设备9
    1.2.3使用cdev_add注册字符设备11
    1.2.4字符设备的读写13
    1.2.5ioctl接口14
    1.2.6seek接口16
    1.2.7poll接口18
    1.2.8异步通知22
    1.3proc文件系统24
    1.3.1proc文件系统概述24
    1.3.2seq_file机制25
    1.3.3使用proc文件系统27
    1.4块设备驱动程序32
    1.4.1Linux块设备驱动程序原理32
    1.4.2简单的块设备驱动程序实例35
    1.5网络设备驱动程序39
    1.5.1网络设备的特殊性39
    1.5.2sk_buff结构40
    1.5.3Linux网络设备驱动程序架构42
    1.5.4虚拟网络设备驱动程序实例46
    1.6Linux2.6设备管理机制50
    1.6.1kobject和kset50
    1.6.2sysfs文件系统51
    1.6.3设备模型层次52
    1.6.4platform的概念54

    第2章Linux内核同步机制58
    2.1锁机制58
    2.1.1自旋锁58
    2.1.2读写锁60
    2.1.3RCU61
    2.2互斥64
    2.2.1原子操作64
    2.2.2信号量65
    2.2.3读写信号量67
    2.3等待队列68
    2.3.1等待队列原理68
    2.3.2阻塞式I/O实例68
    2.3.3完成事件70
    2.4关闭中断71

    第3章内存管理与链表72
    3.1物理地址和虚拟地址72
    3.2内存分配与释放72
    3.3IO端口到虚拟地址的映射73
    3.3.1静态映射73
    3.3.2动态映射75
    3.4内核空间到用户空间的映射76
    3.4.1内核空间到用户空间的地址映射原理76
    3.4.2mmap地址映射实例78
    3.5内核链表80
    3.5.1Linux内核中的链表80
    3.5.2内核链表实例81

    第4章延迟处理83
    4.1内核线程83
    4.2软中断机制85
    4.2.1软中断原理85
    4.2.2tasklet87
    4.3工作队列89
    4.3.1工作队列原理89
    4.3.2工作队列实例91
    4.4内核时间92
    4.4.1Linux中的时间概念92
    4.4.2Linux中的延迟93
    4.4.3内核定时器93

    第5章简单设备驱动程序96
    5.1寄存器访问96
    5.1.1S3C6410地址映射96
    5.1.2S3C6410看门狗驱动程序实例98
    5.1.3S3C6410蜂鸣器驱动程序实例102
    5.2电平控制107
    5.2.1S3C6410LED驱动程序实例107
    5.2.2扫描型S3C6410按键驱动程序实例109
    5.3时序产生112
    5.3.1时序图原理112
    5.3.2AT24C02芯片原理112
    5.3.3AT24C02驱动程序开发实例115
    5.4硬中断处理123
    5.4.1硬中断处理原理123
    5.4.2中断型S3C6410按键驱动程序实例127
    5.5LinuxI/O端口控制132
    5.5.1LinuxI/O端口读写132
    5.5.2在应用层访问LinuxI/O端口133
    5.5.3/dev/port设备134

    第6章深入Linux内核135
    6.1嵌入式Linux系统构成135
    6.2Linux内核导读136
    6.2.1Linux内核组成136
    6.2.2Linux的代码结构137
    6.2.3内核Makefile138
    6.2.4S3C6410硬件初始化139
    6.3Linux文件系统141
    6.3.1虚拟文件系统141
    6.3.2根文件系统143
    6.3.3文件系统加载143
    6.3.4ext3文件系统145
    6.4Flash文件系统145
    6.4.1MTD设备145
    6.4.2MTD字符设备148
    6.4.3MTD块设备150
    6.4.4cramfs文件系统153
    6.4.5JFFS2文件系统153
    6.4.6YAFFS文件系统155
    6.4.7文件系统总结156
    6.5Linux内核移植156
    6.5.1体系配置156
    6.5.2添加yaffs2157
    6.5.3Nandflash驱动程序移植157
    6.5.4配置启动参数159
    6.5.5移植RTC驱动程序160
    6.6根文件系统制作162
    6.6.1Busybox162
    6.6.2shell基础165
    6.6.3根文件系统构建实例166
    6.7udev模型167
    6.7.1udev模型原理167
    6.7.2mdev的使用167

    第7章I2C总线驱动程序169
    7.1Linux的I2C驱动程序架构169
    7.1.1I2C适配器169
    7.1.2I2C算法170
    7.1.3I2C驱动程序结构170
    7.1.4I2C从设备171
    7.1.5i2c-dev设备层171
    7.2LinuxI2C驱动程序开发174
    7.2.1S3C2410X的I2C控制器174
    7.2.2S3C2410X的I2C驱动程序分析175
    7.3S3C2410的I2C访问实例182
    7.4I2C客户端驱动程序185

    第8章TTY与串口驱动程序190
    8.1TTY概念190
    8.2LinuxTTY驱动程序体系190
    8.2.1TTY驱动程序调用关系190
    8.2.2TTY驱动程序原理191
    8.3线路规程194
    8.4串口驱动程序与TTY196
    8.4.1串口设备驱动程序原理196
    8.4.2S3C6410的串口驱动程序实例199
    8.5TTY应用层202

    第9章网络设备驱动程序205
    9.1DM9000网卡驱动程序开发205
    9.1.1DM9000原理205
    9.1.2DM9000X驱动程序分析207
    9.1.3DM9000网口驱动程序移植215
    9.2NFS根文件系统搭建219
    9.2.1主机配置219
    9.2.2NFS根文件系统搭建实例220
    9.3netlinkSocket224
    9.3.1netlink机制224
    9.3.2netlink应用层编程228
    9.3.3netlink驱动程序实例229

    第10章framebuffer驱动程序232
    10.1Linuxframebuffer驱动程序原理232
    10.1.1framebuffer核心数据结构232
    10.1.2framebuffer操作接口234
    10.1.3framebuffer驱动程序的文件接口236
    10.1.4framebuffer驱动程序框架236
    10.2S3C6410显示控制器238
    10.3S3C6410LCD驱动程序实例243
    10.4framebuffer应用层250
    10.5Qt4界面系统移植251

    第11章输入子系统驱动程序253
    11.1Linux输入子系统概述253
    11.1.1input_dev结构253
    11.1.2输入事件255
    11.2input_handler256
    11.2.1InputHandler层256
    11.2.2常用的InputHandler259
    11.3输入设备应用层261
    11.4键盘输入设备驱动程序实例262
    11.5event接口267
    11.6触摸屏驱动程序实例270
    11.6.1S3C6410触摸屏控制器270
    11.6.2S3C6410触摸屏驱动程序设计273
    11.7触摸屏校准282
    11.7.1触摸屏校准原理282
    11.7.2利用TSLIB库校准触摸屏282

    第12章USB驱动程序284
    12.1USB体系概述284
    12.1.1USB系统组成284
    12.1.2USB主机284
    12.1.3USB设备逻辑层次285
    12.2LinuxUSB驱动程序体系287
    12.2.1USB总体结构287
    12.2.2USB设备驱动程序287
    12.2.3主机控制器驱动程序288
    12.2.4USB请求块urb289
    12.2.5USB请求块的填充291
    12.3S3C6410USB主机控制器驱动程序292
    12.3.1USB主机控制器驱动程序分析292
    12.3.2S3C6410USB驱动程序加载294
    12.4USB键盘设备驱动程序分析296
    12.5USBGadget驱动程序301
    12.5.1LinuxUSBGadget驱动程序301
    12.5.2LinuxUSBGadget驱动程序实例302

    第13章音频设备驱动程序303
    13.1ALSA音频体系303
    13.2ALSA驱动层API304
    13.2.1声卡和设备管理304
    13.2.2PCMAPI304
    13.2.3控制与混音API305
    13.2.4AC97API306
    13.2.5SOC层驱动307
    13.3ALSA驱动程序实例308
    13.3.1S3C6410的AC97控制单元308
    13.3.2S3C6410声卡电路原理309
    13.3.3S3C6410的数字音频接口310
    13.3.4wm9713的数字音频接口313
    13.4ALSA音频编程接口316
    13.4.1ALSAPCM接口实例316
    13.4.2ALSAMIDI接口实例320
    13.4.3ALSAmixer接口实例321
    13.4.4ALSAtimer接口实例322

    第14章video4linux2视频驱动程序327
    14.1video4linux2驱动程序架构327
    14.1.1video4linux2驱动程序的注册327
    14.1.2v4l2_fops接口331
    14.1.3常用的结构332
    14.1.4video4linux2的ioctl函数333
    14.2S3C6410摄像头驱动程序分析333
    14.2.1电路原理333
    14.2.2驱动程序分析334
    14.3video4linux2应用层实例339

    第15章SD卡驱动程序346
    15.1LinuxSD卡驱动程序体系346
    15.1.1SD卡电路原理346
    15.1.2MMC卡驱动程序架构347
    15.1.3MMC卡驱动程序相关结构347
    15.1.4MMC卡块设备驱动程序350
    15.1.5SD卡主机控制器接口驱动程序356
    15.2S3C6410SD卡控制器驱动程序分析360
    15.2.1电路原理360
    15.2.2S3C6410SDHCI驱动程序原理360
    15.2.3SD卡的加载实例364
    参考文献366
  • 内容简介:
    《Linux驱动程序开发实例》专门介绍Linux设备驱动程序开发,涵盖了Linux驱动程序基础、内核移植、I2C驱动程序、LCD驱动程序、网络驱动程序、USB驱动程序、输入子系统驱动程序、块设备驱动程序等内容。《Linux驱动程序开发实例》以实例为主线,是为Linux设备驱动程序开发人员量身打造的精品学习图书和实战指南。《Linux驱动程序开发实例》提供了丰富的实例代码和详细的注释,并附赠完整代码光盘一张。
    《Linux驱动程序开发实例》主要面向各层次的嵌入式Linux开发工程师,也可以作为各类嵌入式系统培训机构的培训教材和高校计算机课程的教辅书籍。
  • 目录:
    出版说明
    前言
    第1章Linux设备驱动程序模型1
    1.1设备驱动程序基础1
    1.1.1驱动程序的概念1
    1.1.2驱动程序的加载方式2
    1.1.3编写可加载模块3
    1.1.4带参数的可加载模块5
    1.1.5设备驱动程序的分类6
    1.2字符设备驱动程序原理7
    1.2.1file_operations结构7
    1.2.2使用register_chrdev注册字符设备9
    1.2.3使用cdev_add注册字符设备11
    1.2.4字符设备的读写13
    1.2.5ioctl接口14
    1.2.6seek接口16
    1.2.7poll接口18
    1.2.8异步通知22
    1.3proc文件系统24
    1.3.1proc文件系统概述24
    1.3.2seq_file机制25
    1.3.3使用proc文件系统27
    1.4块设备驱动程序32
    1.4.1Linux块设备驱动程序原理32
    1.4.2简单的块设备驱动程序实例35
    1.5网络设备驱动程序39
    1.5.1网络设备的特殊性39
    1.5.2sk_buff结构40
    1.5.3Linux网络设备驱动程序架构42
    1.5.4虚拟网络设备驱动程序实例46
    1.6Linux2.6设备管理机制50
    1.6.1kobject和kset50
    1.6.2sysfs文件系统51
    1.6.3设备模型层次52
    1.6.4platform的概念54

    第2章Linux内核同步机制58
    2.1锁机制58
    2.1.1自旋锁58
    2.1.2读写锁60
    2.1.3RCU61
    2.2互斥64
    2.2.1原子操作64
    2.2.2信号量65
    2.2.3读写信号量67
    2.3等待队列68
    2.3.1等待队列原理68
    2.3.2阻塞式I/O实例68
    2.3.3完成事件70
    2.4关闭中断71

    第3章内存管理与链表72
    3.1物理地址和虚拟地址72
    3.2内存分配与释放72
    3.3IO端口到虚拟地址的映射73
    3.3.1静态映射73
    3.3.2动态映射75
    3.4内核空间到用户空间的映射76
    3.4.1内核空间到用户空间的地址映射原理76
    3.4.2mmap地址映射实例78
    3.5内核链表80
    3.5.1Linux内核中的链表80
    3.5.2内核链表实例81

    第4章延迟处理83
    4.1内核线程83
    4.2软中断机制85
    4.2.1软中断原理85
    4.2.2tasklet87
    4.3工作队列89
    4.3.1工作队列原理89
    4.3.2工作队列实例91
    4.4内核时间92
    4.4.1Linux中的时间概念92
    4.4.2Linux中的延迟93
    4.4.3内核定时器93

    第5章简单设备驱动程序96
    5.1寄存器访问96
    5.1.1S3C6410地址映射96
    5.1.2S3C6410看门狗驱动程序实例98
    5.1.3S3C6410蜂鸣器驱动程序实例102
    5.2电平控制107
    5.2.1S3C6410LED驱动程序实例107
    5.2.2扫描型S3C6410按键驱动程序实例109
    5.3时序产生112
    5.3.1时序图原理112
    5.3.2AT24C02芯片原理112
    5.3.3AT24C02驱动程序开发实例115
    5.4硬中断处理123
    5.4.1硬中断处理原理123
    5.4.2中断型S3C6410按键驱动程序实例127
    5.5LinuxI/O端口控制132
    5.5.1LinuxI/O端口读写132
    5.5.2在应用层访问LinuxI/O端口133
    5.5.3/dev/port设备134

    第6章深入Linux内核135
    6.1嵌入式Linux系统构成135
    6.2Linux内核导读136
    6.2.1Linux内核组成136
    6.2.2Linux的代码结构137
    6.2.3内核Makefile138
    6.2.4S3C6410硬件初始化139
    6.3Linux文件系统141
    6.3.1虚拟文件系统141
    6.3.2根文件系统143
    6.3.3文件系统加载143
    6.3.4ext3文件系统145
    6.4Flash文件系统145
    6.4.1MTD设备145
    6.4.2MTD字符设备148
    6.4.3MTD块设备150
    6.4.4cramfs文件系统153
    6.4.5JFFS2文件系统153
    6.4.6YAFFS文件系统155
    6.4.7文件系统总结156
    6.5Linux内核移植156
    6.5.1体系配置156
    6.5.2添加yaffs2157
    6.5.3Nandflash驱动程序移植157
    6.5.4配置启动参数159
    6.5.5移植RTC驱动程序160
    6.6根文件系统制作162
    6.6.1Busybox162
    6.6.2shell基础165
    6.6.3根文件系统构建实例166
    6.7udev模型167
    6.7.1udev模型原理167
    6.7.2mdev的使用167

    第7章I2C总线驱动程序169
    7.1Linux的I2C驱动程序架构169
    7.1.1I2C适配器169
    7.1.2I2C算法170
    7.1.3I2C驱动程序结构170
    7.1.4I2C从设备171
    7.1.5i2c-dev设备层171
    7.2LinuxI2C驱动程序开发174
    7.2.1S3C2410X的I2C控制器174
    7.2.2S3C2410X的I2C驱动程序分析175
    7.3S3C2410的I2C访问实例182
    7.4I2C客户端驱动程序185

    第8章TTY与串口驱动程序190
    8.1TTY概念190
    8.2LinuxTTY驱动程序体系190
    8.2.1TTY驱动程序调用关系190
    8.2.2TTY驱动程序原理191
    8.3线路规程194
    8.4串口驱动程序与TTY196
    8.4.1串口设备驱动程序原理196
    8.4.2S3C6410的串口驱动程序实例199
    8.5TTY应用层202

    第9章网络设备驱动程序205
    9.1DM9000网卡驱动程序开发205
    9.1.1DM9000原理205
    9.1.2DM9000X驱动程序分析207
    9.1.3DM9000网口驱动程序移植215
    9.2NFS根文件系统搭建219
    9.2.1主机配置219
    9.2.2NFS根文件系统搭建实例220
    9.3netlinkSocket224
    9.3.1netlink机制224
    9.3.2netlink应用层编程228
    9.3.3netlink驱动程序实例229

    第10章framebuffer驱动程序232
    10.1Linuxframebuffer驱动程序原理232
    10.1.1framebuffer核心数据结构232
    10.1.2framebuffer操作接口234
    10.1.3framebuffer驱动程序的文件接口236
    10.1.4framebuffer驱动程序框架236
    10.2S3C6410显示控制器238
    10.3S3C6410LCD驱动程序实例243
    10.4framebuffer应用层250
    10.5Qt4界面系统移植251

    第11章输入子系统驱动程序253
    11.1Linux输入子系统概述253
    11.1.1input_dev结构253
    11.1.2输入事件255
    11.2input_handler256
    11.2.1InputHandler层256
    11.2.2常用的InputHandler259
    11.3输入设备应用层261
    11.4键盘输入设备驱动程序实例262
    11.5event接口267
    11.6触摸屏驱动程序实例270
    11.6.1S3C6410触摸屏控制器270
    11.6.2S3C6410触摸屏驱动程序设计273
    11.7触摸屏校准282
    11.7.1触摸屏校准原理282
    11.7.2利用TSLIB库校准触摸屏282

    第12章USB驱动程序284
    12.1USB体系概述284
    12.1.1USB系统组成284
    12.1.2USB主机284
    12.1.3USB设备逻辑层次285
    12.2LinuxUSB驱动程序体系287
    12.2.1USB总体结构287
    12.2.2USB设备驱动程序287
    12.2.3主机控制器驱动程序288
    12.2.4USB请求块urb289
    12.2.5USB请求块的填充291
    12.3S3C6410USB主机控制器驱动程序292
    12.3.1USB主机控制器驱动程序分析292
    12.3.2S3C6410USB驱动程序加载294
    12.4USB键盘设备驱动程序分析296
    12.5USBGadget驱动程序301
    12.5.1LinuxUSBGadget驱动程序301
    12.5.2LinuxUSBGadget驱动程序实例302

    第13章音频设备驱动程序303
    13.1ALSA音频体系303
    13.2ALSA驱动层API304
    13.2.1声卡和设备管理304
    13.2.2PCMAPI304
    13.2.3控制与混音API305
    13.2.4AC97API306
    13.2.5SOC层驱动307
    13.3ALSA驱动程序实例308
    13.3.1S3C6410的AC97控制单元308
    13.3.2S3C6410声卡电路原理309
    13.3.3S3C6410的数字音频接口310
    13.3.4wm9713的数字音频接口313
    13.4ALSA音频编程接口316
    13.4.1ALSAPCM接口实例316
    13.4.2ALSAMIDI接口实例320
    13.4.3ALSAmixer接口实例321
    13.4.4ALSAtimer接口实例322

    第14章video4linux2视频驱动程序327
    14.1video4linux2驱动程序架构327
    14.1.1video4linux2驱动程序的注册327
    14.1.2v4l2_fops接口331
    14.1.3常用的结构332
    14.1.4video4linux2的ioctl函数333
    14.2S3C6410摄像头驱动程序分析333
    14.2.1电路原理333
    14.2.2驱动程序分析334
    14.3video4linux2应用层实例339

    第15章SD卡驱动程序346
    15.1LinuxSD卡驱动程序体系346
    15.1.1SD卡电路原理346
    15.1.2MMC卡驱动程序架构347
    15.1.3MMC卡驱动程序相关结构347
    15.1.4MMC卡块设备驱动程序350
    15.1.5SD卡主机控制器接口驱动程序356
    15.2S3C6410SD卡控制器驱动程序分析360
    15.2.1电路原理360
    15.2.2S3C6410SDHCI驱动程序原理360
    15.2.3SD卡的加载实例364
    参考文献366
查看详情
系列丛书 / 更多
Linux驱动程序开发实例
SAS编程与数据挖掘商业案例
姚志勇 著
Linux驱动程序开发实例
PCI Express 体系结构导读
王齐 著
Linux驱动程序开发实例
云计算:应用开发实践
徐强、王振江 著
Linux驱动程序开发实例
UNIX/Linux网络日志分析与流量监控
李晨光 著
Linux驱动程序开发实例
HTML5开发从入门到精通
王石磊 著
Linux驱动程序开发实例
SAS开发经典案例解析
杨池然 编
Linux驱动程序开发实例
Python即学即用
张燕妮 著
Linux驱动程序开发实例
数据架构与商业智能
王飞 著
Linux驱动程序开发实例
商业智能深入浅出:大数据时代下的架构规划与案例
王飞 著
Linux驱动程序开发实例
数据挖掘技术应用实例
韩秋明 著
Linux驱动程序开发实例
实用Linux Shell编程
石庆东 著
Linux驱动程序开发实例
信息科学与技术丛书:精通ASP.NET 4.0
杨云、刘君 著
相关图书 / 更多
Linux驱动程序开发实例
LiteOS轻量级物联网操作系统实战 微课视频版
魏杰
Linux驱动程序开发实例
Linux综合实训案例教程
陈智斌;梁鹏;肖政宏
Linux驱动程序开发实例
Linux操作系统项目化教程
周秀丽;张徐超;周密
Linux驱动程序开发实例
Linux操作系统
刘睿;包大宏;兰晓天;李吉桃;王仕杰;吴晓清;张宏洲;杨云江
Linux驱动程序开发实例
Linux C语言程序设计(微课视频版)
张同光;田文强;荆春棋;田乔梅;陈明
Linux驱动程序开发实例
Linux虚拟化——原理、方法和实战(KVM+Docker+OpenStack)
吴光科;李建尧;柯宇霖
Linux驱动程序开发实例
Linux源码趣读
闪客
Linux驱动程序开发实例
Linux自动化运维实战(Linux开发书系)
吴光科;彭威城;文·S
Linux驱动程序开发实例
Linux云计算——Kubernetes实战
吴光科;程浩;刑亚飞
Linux驱动程序开发实例
Linux运维从入门到精通
明日科技
Linux驱动程序开发实例
Linux操作系统项目化教程(第2版)
洪伟 主编;丁传炜 谢鹏 副主编
Linux驱动程序开发实例
Linux企业高性能架构实战
吴光科;曹森;赵瑞丰
您可能感兴趣 / 更多