自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 资源 (3)
  • 收藏
  • 关注

原创 网络设备驱动设计原理

谈到设备驱动程序,首先要做的就是得有一个数据结构来表示这个设备,网络设备驱动程序也一样。网络设备驱动程序使用struct net_device结构来描述一个网络设备,这个结构体中包含了操作网络设备的所有功能函数,下面介绍网络设备驱动程序的整个流程:(1)申请注册网络设备结构体net_device,使用alloc_netdev()函数申请net_device结构体,然后使用ether_setup()函数初始化该结构,如果是开发以太网驱动程序,可以直接使用alloc_etherdev()函数将申请和初始化一次性

2010-11-15 19:10:00 539

原创 ELF文件格式浅析

ELF文件格式浅析概述ELF(Executable Linkable Format)是linux操作系统下目标文件和可执行文件的文件格式,目标文件是指由源代码编译后但没有进行连接的中间文件(windows下的.obj和linux下的.o),它跟可执行文件的格式基本上式一样的,只是在可执行文件中多了program headers和program sections,它们在程序装载的时候要有到。本文主要分析目标文件的格式。目标文件里有什么了?首先给出目标文件总体结构示意图,如图1所示。图1中我们省去了ELF一些繁

2010-07-21 23:27:00 1861

原创 ARM之MOV指令分析

本文根据自己的理解对ARM的MOV指令做了详细的介绍,介绍了立即数的取值范围及移位操作。

2010-07-13 21:10:00 3401

原创 递归法求解迷宫问题

<br />      求迷宫中从入口到出口的所有路径是一个经典的问题,这里所使用的方法是递归法,什么是递归呢?函数中有调用自己的函数,我们称为递归函数。一个问题可以分解为一个与自身求解过程相同的小问题,我们都可以用递归,比如,Hanoi塔问题,八皇后问题。我们知道用递归方法求解问题时最关键的就是递归函数的设计,在设计递归函数时应该注意以下几点:<br />     1.严格定义函数的功能和接口,对函数中所得的和原问题性质相同的子问题,只要接口一致,便可进行递归调用;<br />     2.对函数中每个递

2010-06-11 15:42:00 1957 1

linux设备驱动程序(第三版)

Linux 设备驱动 Edition 3 By Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman.................................1 感谢..........................................................................................................................................1 第 1 章第一章设备驱动简介..............................................................................................12 1.1. 驱动程序的角色..............................................................................................................13 1.2. 划分内核..........................................................................................................................15 1.2.1. 可加载模块...........................................................................................................16 1.3. 设备和模块的分类..........................................................................................................18 1.4. 安全问题..........................................................................................................................20 1.5. 版本编号..........................................................................................................................22 1.6. 版权条款..........................................................................................................................24 1.7. 加入内核开发社团..........................................................................................................25 1.8. 本书的内容......................................................................................................................26 第 2 章建立和运行模块........................................................................................................28 2.1. 设置你的测试系统..........................................................................................................28 2.2. Hello World 模块............................................................................................................30 2.3. 内核模块相比于应用程序..............................................................................................32 2.3.1. 用户空间和内核空间...........................................................................................33 2.3.2. 内核的并发...........................................................................................................34 2.3.3. 当前进程...............................................................................................................35 2.3.4. 几个别的细节.......................................................................................................35 2.4. 编译和加载......................................................................................................................37 2.4.1. 编译模块...............................................................................................................37 2.4.2. 加载和卸载模块...................................................................................................39 2.4.3. 版本依赖...............................................................................................................40 2.4.4. 平台依赖性...........................................................................................................41 2.5. 内核符号表......................................................................................................................43 2.6. 预备知识..........................................................................................................................45 2.7. 初始化和关停..................................................................................................................47 2.7.1. 清理函数...............................................................................................................48 2.7.2. 初始化中的错误处理...........................................................................................48 2.7.3. 模块加载竞争.......................................................................................................51 2.8. 模块参数..........................................................................................................................52 2.9. 在用户空间做..................................................................................................................54 2.10. 快速参考........................................................................................................................56 第 3 章字符驱动....................................................................................................................59 3.1. scull 的设计....................................................................................................................60 3.2. 主次编号..........................................................................................................................62 3.2.1. 设备编号的内部表示...........................................................................................62 3.2.2. 分配和释放设备编号...........................................................................................63 3.2.3. 主编号的动态分配...............................................................................................64 3.3. 一些重要数据结构..........................................................................................................68 3.3.1. 文件操作...............................................................................................................68 3.3.2. 文件结构...............................................................................................................72 3.3.3. inode 结构............................................................................................................73 3.4. 字符设备注册..................................................................................................................75 3.4.1. scull 中的设备注册.............................................................................................76 3.4.2. 老方法...................................................................................................................76 3.5. open 和 release...............................................................................................................78 3.5.1. open 方法.............................................................................................................78 3.5.2. release 方法..........................................................................................................79 3.6. scull 的内存使用............................................................................................................81 3.7. 读和写..............................................................................................................................84 3.7.1. read 方法..............................................................................................................86 3.7.2. write 方法............................................................................................................88 3.7.3. readv 和 writev....................................................................................................90 3.8. 使用新设备......................................................................................................................92 3.9. 快速参考..........................................................................................................................93 第 4 章调试技术....................................................................................................................95 4.1. 内核中的调试支持..........................................................................................................95 4.2. 用打印调试......................................................................................................................99 4.2.1. printk .....................................................................................................................99 4.2.2. 重定向控制台消息.............................................................................................101 4.2.3. 消息是如何记录的.............................................................................................101 4.2.4. 打开和关闭消息.................................................................................................102 4.2.5. 速率限制.............................................................................................................104 4.2.6. 打印设备编号.....................................................................................................105 4.3. 用查询来调试................................................................................................................106 4.3.1. 使用 /proc 文件系统.........................................................................................106 4.3.2. ioctl 方法............................................................................................................114 4.5. 调试系统故障................................................................................................................116 4.5.1. oops 消息...........................................................................................................116 4.5.2. 系统挂起.............................................................................................................120 4.6. 调试器和相关工具........................................................................................................123 4.6.1. 使用 gdb.............................................................................................................123 4.6.2. kdb 内核调试器.................................................................................................125 4.6.3. kgdb 补丁...........................................................................................................128 4.6.4. 用户模式 Linux 移植.......................................................................................128 4.6.5. Linux 追踪工具.................................................................................................129 4.6.6. 动态探针.............................................................................................................129 第 5 章并发和竞争情况......................................................................................................130 5.1. scull 中的缺陷..............................................................................................................131 5.2. 并发和它的管理............................................................................................................132 5.3. 旗标和互斥体................................................................................................................134 5.3.1. Linux 旗标实现.................................................................................................135 5.3.2. 在 scull 中使用旗标.........................................................................................136 5.3.3. 读者/写者旗标....................................................................................................138 5.4. Completions 机制.........................................................................................................140 5.5. 自旋锁............................................................................................................................143 5.5.1. 自旋锁 API 简介..............................................................................................143 5.5.2. 自旋锁和原子上下文.........................................................................................144 5.5.3. 自旋锁函数.........................................................................................................145 5.5.4. 读者/写者自旋锁................................................................................................146 5.6. 锁陷阱............................................................................................................................148 5.6.1. 模糊的规则.........................................................................................................148 5.6.2. 加锁顺序规则.....................................................................................................148 5.6.3. 细 -粗- 粒度加锁..............................................................................................149 5.7. 加锁的各种选择............................................................................................................151 5.7.1. 不加锁算法.........................................................................................................151 5.7.2. 原子变量.............................................................................................................152 5.7.3. 位操作.................................................................................................................153 5.7.4. seqlock 锁..........................................................................................................155 5.7.5. 读取-拷贝-更新..................................................................................................156 5.8. 快速参考........................................................................................................................159 第 6 章高级字符驱动操作..................................................................................................164 6.1. ioctl 接口......................................................................................................................165 6.1.1. 选择 ioctl 命令..................................................................................................166 6.1.2. 返回值.................................................................................................................169 6.1.3. 预定义的命令.....................................................................................................169 6.1.4. 使用 ioctl 参数..................................................................................................170 6.1.5. 兼容性和受限操作.............................................................................................172 6.1.6. ioctl 命令的实现................................................................................................174 6.1.7. 不用 ioctl 的设备控制......................................................................................176 6.2. 阻塞 I/O ........................................................................................................................178 6.2.1. 睡眠的介绍.........................................................................................................178 6.2.2. 简单睡眠.............................................................................................................179 6.2.3. 阻塞和非阻塞操作.............................................................................................181 6.2.4. 一个阻塞 I/O 的例子.......................................................................................182 6.2.5. 高级睡眠.............................................................................................................185 6.2.6. 测试 scullpipe 驱动..........................................................................................192 6.3. poll 和 select ................................................................................................................194 6.3.1. 与 read 和 write 的交互..................................................................................197 6.3.2. 底层的数据结构.................................................................................................198 6.4. 异步通知........................................................................................................................200 6.4.1. 驱动的观点.........................................................................................................201 6.5. 移位一个设备................................................................................................................202 6.5.1. llseek 实现.........................................................................................................202 6.6. 在一个设备文件上的存取控制....................................................................................204 6.6.1. 单 open 设备.....................................................................................................204 6.6.2. 一次对一个用户限制存取.................................................................................205 6.6.3. 阻塞 open 作为对 EBUSY 的替代................................................................207 6.6.4. 在 open 时复制设备.........................................................................................208 6.7. 快速参考........................................................................................................................212 第 7 章时间, 延时, 和延后工作........................................................................................216 7.1. 测量时间流失................................................................................................................216 7.1.1. 使用 jiffies 计数器............................................................................................217 7.1.2. 处理器特定的寄存器.........................................................................................219 7.2. 获知当前时间................................................................................................................222 7.3. 延后执行........................................................................................................................225 7.3.1. 长延时.................................................................................................................225 7.3.2. 短延时.................................................................................................................230 7.4. 内核定时器....................................................................................................................232 7.4.1. 定时器 API ........................................................................................................233 7.4.2. 内核定时器的实现.............................................................................................236 7.5. Tasklets 机制.................................................................................................................238 7.6. 工作队列........................................................................................................................241 7.6.1. 共享队列.............................................................................................................243 7.7. 快速参考........................................................................................................................246 7.7.1. 时间管理.............................................................................................................246 7.7.2. 延迟.....................................................................................................................247 7.7.3. 内核定时器.........................................................................................................248 7.7.4. Tasklets 机制......................................................................................................249 7.7.5. 工作队列.............................................................................................................249 第 8 章分配内存..................................................................................................................251 8.1. kmalloc 的真实故事.....................................................................................................251 8.1.1. flags 参数...........................................................................................................251 8.1.2. size 参数..........................................................................................................254 8.2. 后备缓存........................................................................................................................256 8.2.1. 一个基于 Slab 缓存的 scull: scullc.................................................................258 8.2.2. 内存池.................................................................................................................259 8.3. get_free_page 和其友...................................................................................................261 8.3.1. 一个使用整页的 scull: scullp............................................................................262 8.3.2. alloc_pages 接口................................................................................................263 8.3.3. vmalloc 和其友................................................................................................264 8.3.4. 一个使用虚拟地址的 scull : scullv...................................................................266 8.4. 每-CPU 的变量.............................................................................................................268 8.5. 获得大量缓冲................................................................................................................271 8.5.1. 在启动时获得专用的缓冲.................................................................................271 8.6. 快速参考........................................................................................................................273 第 9 章与硬件通讯..............................................................................................................277 9.1. I/O 端口和 I/O 内存...................................................................................................278 9.1.1. I/O 寄存器和常规内存.....................................................................................278 9.2. 使用 I/O 端口 ..............................................................................................................282 9.2.1. I/O 端口分配.....................................................................................................282 9.2.2. 操作 I/O 端口...................................................................................................282 9.2.3. 从用户空间的 I/O 存取...................................................................................283 9.2.4. 字串操作.............................................................................................................284 9.2.5. 暂停 I/O .............................................................................................................285 9.2.6. 平台依赖性.........................................................................................................285 9.3. 一个 I/O 端口例子 ......................................................................................................289 9.3.1. 并口纵览.............................................................................................................289 9.3.2. 一个例子驱动.....................................................................................................290 9.4. 使用 I/O 内存 ..............................................................................................................293 9.4.1. I/O 内存分配和映射.........................................................................................293 9.4.2. 存取 I/O 内存...................................................................................................294 9.4.3. 作为 I/O 内存的端口.......................................................................................296 9.4.4. 重用 short 为 I/O 内存...................................................................................297 9.4.5. 在 1 MB 之下的 ISA 内存.............................................................................297 9.5. 快速参考........................................................................................................................299 第 10 章 中断处理................................................................................................................302 10.1. 准备并口......................................................................................................................303 10.2. 安装一个中断处理......................................................................................................304 10.2.1. /proc 接口........................................................................................................307 10.2.2. 自动检测 IRQ 号............................................................................................308 10.2.3. 快速和慢速处理...............................................................................................313 10.2.4. 实现一个处理...................................................................................................314 10.2.5. 处理者的参数和返回值...................................................................................317 10.2.6. 使能和禁止中断...............................................................................................318 10.3. 前和后半部..................................................................................................................321 10.3.1. Tasklet 实现.....................................................................................................321 10.3.2. 工作队列...........................................................................................................323 10.4. 中断共享......................................................................................................................325 10.4.1. 安装一个共享的处理者...................................................................................325 10.4.2. 运行处理者.......................................................................................................326 10.4.3. /proc 接口和共享中断.....................................................................................327 10.5. 中断驱动 I/O ..............................................................................................................329 10.5.1. 一个写缓存例子...............................................................................................329 10.6. 快速参考......................................................................................................................334 第 11 章 内核中的数据类型................................................................................................336 11.1. 标准 C 类型的使用...................................................................................................336 11.2. 安排一个明确大小给数据项......................................................................................339 11.3. 接口特定的类型..........................................................................................................341 11.4. 其他移植性问题..........................................................................................................343 11.4.1. 时间间隔...........................................................................................................343 11.4.2. 页大小...............................................................................................................343 11.4.3. 字节序...............................................................................................................344 11.4.4. 数据对齐...........................................................................................................344 11.4.5. 指针和错误值...................................................................................................346 11.5. 链表..............................................................................................................................347 11.6. 快速参考......................................................................................................................352 第 12 章 PCI 驱动...............................................................................................................354 12.1. PCI 接口.....................................................................................................................354 12.1.1. PCI 寻址..........................................................................................................355 12.1.2. 启动时间...........................................................................................................358 12.1.3. 配置寄存器和初始化.......................................................................................359 12.1.4. MODULEDEVICETABLE 宏.........................................................................362 12.1.5. 注册一个 PCI 驱动.........................................................................................363 12.1.6. 老式 PCI 探测.................................................................................................365 12.1.7. 使能 PCI 设备.................................................................................................366 12.1.8. 存取配置空间...................................................................................................366 12.1.9. 存取 I/O 和内存空间.....................................................................................368 12.1.10. PCI 中断........................................................................................................369 12.1.11. 硬件抽象.........................................................................................................370 12.2. 回顾: ISA .....................................................................................................................372 12.2.1. 硬件资源...........................................................................................................372 12.2.2. ISA 编程..........................................................................................................373 12.2.3. 即插即用规范...................................................................................................373 12.3. PC/104 和 PC/104+ ...................................................................................................375 12.4. 其他的 PC 总线.........................................................................................................376 12.4.1. MCA 总线........................................................................................................376 12.4.2. EISA 总线........................................................................................................376 12.4.3. VLB 总线.........................................................................................................376 12.5. SBus .............................................................................................................................378 12.6. NuBus 总线.................................................................................................................379 12.7. 外部总线......................................................................................................................380 12.8. 快速参考......................................................................................................................381 第 13 章 USB 驱动..............................................................................................................383 13.1. USB 设备基础知识....................................................................................................385 13.1.1. 端点...................................................................................................................385 13.1.2. 接口...................................................................................................................387 13.1.3. 配置...................................................................................................................388 13.2. USB 和 sysfs..............................................................................................................389 13.3. USB 的 Urbs ..............................................................................................................392 13.3.1. 结构 struct urb..................................................................................................392 13.3.2. 创建和销毁 urb ...............................................................................................399 13.3.3. 提交 urb ...........................................................................................................402 13.3.4. 完成 urb: 完成回调处理者............................................................................403 13.3.5. 取消 urb ...........................................................................................................403 13.4. 编写一个 USB 驱动..................................................................................................405 13.4.1. 驱动支持什么设备...........................................................................................405 13.4.2. 注册一个 USB 驱动.......................................................................................407 13.4.3. 提交和控制一个 urb .......................................................................................414 13.5. 无 urb 的 USB 传送.................................................................................................417 13.5.1. usb_bulk_msg 接口.........................................................................................417 13.5.2. usb_control_msg 接口.....................................................................................418 13.5.3. 使用 USB 数据函数.......................................................................................420 13.6. 快速参考......................................................................................................................422 第 14 章 Linux 设备模型....................................................................................................424 14.1. Kobjects, Ksets 和 Subsystems..................................................................................426 14.1.1. Kobject 基础....................................................................................................427 14.1.2. kobject 层次, kset, 和子系统..........................................................................431 14.2. 低级 sysfs 操作..........................................................................................................435 14.2.1. 缺省属性...........................................................................................................435 14.2.2. 非缺省属性.......................................................................................................437 14.2.3. 二进制属性.......................................................................................................437 14.2.4. 符号连接...........................................................................................................438 14.3. 热插拔事件产生..........................................................................................................440 14.3.1. 热插拔操作.......................................................................................................440 14.4. 总线, 设备, 和驱动....................................................................................................442 14.4.1. 总线...................................................................................................................442 14.4.2. 设备...................................................................................................................446 14.4.3. 设备驱动...........................................................................................................450 14.5. 类.................................................................................................................................454 14.5.1. class_simple 接口............................................................................................454 14.5.2. 完整的类接口...................................................................................................455 14.6. 集成起来......................................................................................................................459 14.6.1. 添加一个设备...................................................................................................459 14.6.2. 去除一个设备...................................................................................................463 14.6.3. 添加一个驱动...................................................................................................463 14.6.4. 去除一个驱动...................................................................................................464 14.7. 热插拔..........................................................................................................................465 14.7.1. 动态设备...........................................................................................................465 14.7.2. /sbin/hotplug 工具............................................................................................466 14.7.3. 使用 /sbin/hotplug............................................................................................470 14.8. 处理固件......................................................................................................................474 14.8.1. 内核固件接口...................................................................................................474 14.8.2. 它如何工作.......................................................................................................475 14.9. 快速参考......................................................................................................................477 14.9.1. Kobjects结构....................................................................................................477 14.9.2. sysfs 操作.........................................................................................................478 14.9.3. 总线, 设备, 和驱动.........................................................................................478 14.9.4. 类.......................................................................................................................479 14.9.5. 固件...................................................................................................................480 第 15 章 内存映射和 DMA ................................................................................................481 15.1. Linux 中的内存管理..................................................................................................482 15.1.1. 地址类型...........................................................................................................482 15.1.2. 物理地址和页...................................................................................................484 15.1.3. 高和低内存.......................................................................................................484 15.1.4. 内存映射和 struct page ...................................................................................485 15.1.5. 页表...................................................................................................................487 15.1.6. 虚拟内存区.......................................................................................................487 15.1.7. 进程内存映射...................................................................................................491 15.2. mmap 设备操作..........................................................................................................492 15.2.1. 使用 remap_pfn_range.....................................................................................494 15.2.2. 一个简单的实现...............................................................................................495 15.2.3. 添加 VMA 的操作..........................................................................................495 15.2.4. 使用 nopage 映射内存...................................................................................496 15.2.5. 重新映射特定 I/O 区.....................................................................................499 15.2.6. 重新映射 RAM................................................................................................500 15.2.7. 重映射内核虚拟地址.......................................................................................504 15.3. 进行直接 I/O ..............................................................................................................506 15.3.1. 异步 I/O ...........................................................................................................508 15.4. 直接内存存取..............................................................................................................513 15.4.1. 一个 DMA 数据传输的概况..........................................................................513 15.4.2. 分配 DMA 缓冲..............................................................................................514 15.4.3. 总线地址...........................................................................................................515 15.4.4. 通用 DMA 层..................................................................................................516 15.4.5. ISA 设备的 DMA...........................................................................................526 15.5. 快速参考......................................................................................................................532 15.5.1. 介绍性材料.......................................................................................................532 15.5.2. 实现 mmap.......................................................................................................533 15.5.3. 实现直接 I/O ...................................................................................................533 15.5.4. 直接内存存取...................................................................................................534 第 16 章 块驱动....................................................................................................................537 16.1. 注册..............................................................................................................................538 16.1.1. 块驱动注册.......................................................................................................538 16.1.2. 磁盘注册...........................................................................................................539 16.1.3. 在 sbull 中的初始化.......................................................................................542 16.1.4. 注意扇区大小...................................................................................................544 16.2. 块设备操作..................................................................................................................545 16.2.1. open 和 release 方法......................................................................................545 16.2.2. 支持可移出的介质...........................................................................................546 16.2.3. ioctl 方法..........................................................................................................547 16.3. 请求处理......................................................................................................................549 16.3.1. 对请求方法的介绍...........................................................................................549 16.3.2. 一个简单的请求方法.......................................................................................550 16.3.3. 请求队列...........................................................................................................552 16.3.4. 请求的分析.......................................................................................................555 16.3.5. 请求完成函数...................................................................................................561 16.4. 一些其他的细节..........................................................................................................567 16.4.1. 命令预准备.......................................................................................................567 16.4.2. 被标识的命令排队...........................................................................................568 16.5. 快速参考......................................................................................................................570 第 17 章 网络驱动................................................................................................................574 17.1. snull 是如何设计的....................................................................................................576 17.1.1. 分配 IP 号 .......................................................................................................576 17.1.2. 报文的物理传送...............................................................................................578 17.2. 连接到内核..................................................................................................................580 17.2.1. 设备注册...........................................................................................................580 17.2.2. 初始化每一个设备...........................................................................................581 17.2.3. 模块卸载...........................................................................................................583 17.3. net_device 结构的详情..............................................................................................585 17.3.1. 全局信息...........................................................................................................585 17.3.2. 硬件信息...........................................................................................................585 17.3.3. 接口信息...........................................................................................................586 17.3.4. 设备方法...........................................................................................................591 17.3.5. 公用成员...........................................................................................................593 17.4. 打开与关闭..................................................................................................................595 17.5. 报文传送......................................................................................................................597 17.5.1. 控制发送并发...................................................................................................598 17.5.2. 传送超时...........................................................................................................599 17.5.3. 发散/汇聚 I/O ..................................................................................................600 17.6. 报文接收......................................................................................................................602 17.7. 中断处理......................................................................................................................605 17.8. 接收中断缓解..............................................................................................................608 17.9. 连接状态的改变..........................................................................................................612 17.10. Socket 缓存...............................................................................................................613 17.10.1. 重要成员变量.................................................................................................613 17.10.2. 作用于 socket 缓存的函数...........................................................................614 17.11. MAC 地址解析.........................................................................................................616 17.11.1. 以太网使用 ARP ...........................................................................................616 17.11.2. 不考虑 ARP...................................................................................................616 17.11.3. 非以太网头部.................................................................................................617 17.12. 定制 ioctl 命令.........................................................................................................619 17.13. 统计信息....................................................................................................................621 17.14. 多播............................................................................................................................623 17.14.1. 多播的内核支持.............................................................................................624 17.14.2. 典型实现.........................................................................................................625 17.15. 几个其他细节............................................................................................................627 17.15.1. 独立于媒介的接口支持.................................................................................627 17.15.2. ethtool 支持....................................................................................................627 17.15.3. netpoll..............................................................................................................628 17.16. 快速参考....................................................................................................................629 第 18 章 TTY 驱动..............................................................................................................633 18.1. 一个小 TTY 驱动......................................................................................................636 18.1.1. 结构 struct termios...........................................................................................638 18.2. tty_driver 函数指针....................................................................................................642 18.2.1. open 和 close...................................................................................................642 18.2.2. 数据流...............................................................................................................644 18.2.3. 其他缓冲函数...................................................................................................647 18.2.4. 无 read 函数? ..................................................................................................647 18.3. TTY 线路设置............................................................................................................649 18.3.1. set_termios 函数..............................................................................................649 18.3.2. tiocmget 和 tiocmset .......................................................................................652 18.4. ioctls 函数...................................................................................................................654 18.5. TTY 设备的 proc 和 sysfs 处理.............................................................................658 18.6. tty_driver 结构的细节................................................................................................660 18.7. tty_operaions 结构的细节..........................................................................................662 18.8. tty_struct 结构的细节.................................................................................................665 18.9. 快速参考......................................................................................................................668

2009-12-06

GCC中文使用手册(摘自GNU C编译器的完整文档)

本手册页内容摘自GNU C编译器的完整文档,感觉很好用

2009-07-25

EDK实验指导(包含六个官方实验)

嵌入式EDK学习,包含工程的建立,代码的生成,六个官方实验

2009-07-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除