思维导图备注

Linux设备驱动开发详解:基于最新的Linux4.0内核
首页 收藏书籍 阅读记录
  • 书签 我的书签
  • 添加书签 添加书签 移除书签 移除书签

2.8.3 逻辑分析仪

浏览 5 扫码
  • 小字体
  • 中字体
  • 大字体
2022-01-24 09:57:52
请 登录 再阅读
上一篇:
下一篇:
  • 书签
  • 添加书签 移除书签
  • 推荐序一
  • 前言
    • 1.3 有操作系统时的设备驱动
    • 1.4 Linux设备驱动
      • 1.4.2 Linux设备驱动与整个软硬件系统的关系
    • 1.5 Linux设备驱动的开发环境构建
      • 1.5.2 QEMU实验平台
      • 1.5.3 源代码阅读和编辑
    • 1.6 设备驱动Hello World:LED驱动
      • 1.6.2 Linux下的LED驱动
  • 第2章 驱动设计的硬件基础
    • 2.1 处理器
      • 2.1.2 数字信号处理器
    • 2.2 存储器
    • 2.3 接口与总线
      • 2.3.2 I2C
      • 2.3.3 SPI
      • 2.3.4 USB
      • 2.3.5 以太网接口
      • 2.3.6 PCI和PCI-E
    • 2.3.7 SD和SDIO
    • 2.5 原理图分析
    • 2.6 硬件时序分析
      • 2.6.2 典型的硬件时序
    • 2.7 芯片数据手册阅读方法
    • 2.8 仪器仪表使用
      • 2.8.2 示波器
      • 2.8.3 逻辑分析仪
    • 2.9 总结
  • 第3章 Linux内核及内核编程
    • 3.1 Linux内核的发展与演变
    • 3.2 Linux 2.6后的内核特点
    • 3.3 Linux内核的组成
      • 3.3.2 Linux内核的组成部分
      • 3.3.3 Linux内核空间与用户空间
    • 3.4 Linux内核的编译及加载
      • 3.4.2 Kconfig和Makefile
      • 3.4.3 Linux内核的引导
    • 3.5 Linux下的C编程特点
      • 3.5.3 do{}while(0)语句
      • 3.5.4 goto语句
    • 3.6 工具链
    • 3.7 实验室建设
    • 3.8 串口工具
  • 第4章 Linux内核模块
    • 4.2 Linux内核模块程序结构
    • 4.3 模块加载函数
    • 4.4 模块卸载函数
    • 4.6 导出符号
    • 4.7 模块声明与描述
    • 4.8 模块的使用计数
    • 4.9 模块的编译
    • 4.10 使用模块“绕开”GPL
    • 4.11 总结
  • 第5章 Linux文件系统与设备文件
    • 5.1 Linux文件操作
      • 5.1.2 C库文件操作
    • 5.2 Linux文件系统
      • 5.2.2 Linux文件系统与设备驱动
    • 5.3 devfs
    • 5.4 udev用户空间设备管理
      • 5.4.2 sysfs文件系统与Linux设备模型
      • 5.4.3 udev的组成
      • 5.4.4 udev规则文件
    • 5.5 总结
  • 第6章 字符设备驱动
    • 6.1 Linux字符设备驱动结构
      • 6.1.2 分配和释放设备号
      • 6.1.3 file_operations结构体
      • 6.1.4 Linux字符设备驱动的组成
    • 6.2 globalmem虚拟设备实例描述
      • 6.3.2 加载与卸载设备驱动
      • 6.3.3 读写函数
    • 6.4 globalmem驱动在用户空间中的验证
  • 第7章 Linux设备驱动中的并发控制
    • 7.1 并发与竞态
    • 7.2 编译乱序和执行乱序
    • 7.3 中断屏蔽
    • 7.4 原子操作
      • 7.4.1 整型原子操作
      • 7.4.2 位原子操作
    • 7.5 自旋锁
      • 7.5.3 顺序锁
      • 7.5.4 读-复制-更新
    • 7.6 信号量
    • 7.7 互斥体
    • 7.8 完成量
    • 7.9 增加并发控制后的globalmem的设备驱动
  • 7.10 总结
    • 8.1 阻塞与非阻塞I/O
      • 8.1.1 等待队列
      • 8.1.2 支持阻塞操作的globalfifo设备驱动
      • 8.1.3 在用户空间验证globalfifo的读写
    • 8.2 轮询操作
      • 8.2.3 设备驱动中的轮询编程
    • 8.3 支持轮询操作的globalfifo驱动
      • 8.3.2 在用户空间中验证globalfifo设备的轮询
    • 8.4 总结
  • 第9章 Linux设备驱动中的异步通知与异步I/O
    • 9.2 Linux异步通知编程
      • 9.2.2 信号的接收
    • 9.2.3 信号的释放
      • 9.3.2 在用户空间中验证globalfifo的异步通知
    • 9.4 Linux异步I/O
      • 9.4.2 Linux内核AIO与libaio
      • 9.4.3 AIO与设备驱动
    • 9.5 总结
  • 第10章 中断与时钟
    • 10.1 中断与定时器
    • 10.2 Linux中断处理程序架构
    • 10.3 Linux中断编程
      • 10.3.2 使能和屏蔽中断
      • 10.3.3 底半部机制
      • 10.3.4 实例:GPIO按键的中断
    • 10.4 中断共享
    • 10.5 内核定时器
      • 10.5.2 内核中延迟的工作delayed_work
      • 10.5.3 实例:秒字符设备
    • 10.6 内核延时
      • 10.6.2 长延迟
      • 10.6.3 睡着延迟
    • 10.7 总结
  • 第11章 内存与I/O访问
    • 11.1 CPU与内存、I/O
      • 11.1.2 内存管理单元
    • 11.2 Linux内存管理
      • 11.3.2 内核空间内存动态申请
    • 11.4 设备I/O端口和I/O内存的访问
      • 11.4.1 Linux I/O端口和I/O内存访问接口
      • 11.4.2 申请与释放设备的I/O端口和I/O内存
      • 11.4.3 设备I/O端口和I/O内存访问流程
      • 11.4.4 将设备地址映射到用户空间
    • 11.5 I/O内存静态映射
    • 11.6 DMA
      • 11.6.1 DMA与Cache一致性
    • 11.7 总结
  • 第12章 Linux设备驱动的软件架构思想
    • 12.1 Linux驱动的软件架构
      • 12.2.2 将globalfifo作为platform设备
      • 12.2.3 platform设备资源和数据
    • 12.3 设备驱动的分层思想
      • 12.3.2 输入设备驱动
      • 12.3.3 RTC设备驱动
      • 12.3.4 Framebuffer设备驱动
      • 12.3.5 终端设备驱动
      • 12.3.6 misc设备驱动
      • 12.3.7 驱动核心层
    • 12.4 主机驱动与外设驱动分离的设计思想
    • 12.5 总结
  • 第13章 Linux块设备驱动
    • 13.2 Linux块设备驱动结构
      • 13.2.2 gendisk结构体
      • 13.2.3 bio、request和request_queue
      • 13.2.4 I/O调度器
    • 13.3 Linux块设备驱动的初始化
    • 13.5 块设备驱动的ioctl函数
    • 13.6 块设备驱动的I/O请求处理
      • 13.6.2 不使用请求队列
    • 13.7 实例:vmem_disk驱动
      • 13.7.3 vmem_disk设备驱动的block_device_operations
      • 13.7.4 vmem_disk的I/O请求处理
    • 13.8 Linux MMC子系统
    • 13.9 总结
  • 第14章 Linux网络设备驱动
    • 14.1 Linux网络设备驱动的结构
      • 14.1.1 网络协议接口层
      • 14.1.2 网络设备接口层
    • 14.2 网络设备驱动的注册与注销
    • 14.3 网络设备的初始化
    • 14.4 网络设备的打开与释放
    • 14.6 数据接收流程
    • 14.8 参数设置和统计数据
    • 14.9 DM9000网卡设备驱动实例
    • 14.9.2 DM9000网卡驱动设计分析
  • 第15章 Linux I2C核心、总线与设备驱动
    • 15.1 Linux I2C体系结构
    • 15.2 Linux I2C核心
    • 15.3 Linux I2C适配器驱动
      • 15.3.2 I2C总线的通信方法
    • 15.4 Linux I2C设备驱动
      • 15.4.2 Linux I2C设备驱动的数据传输
      • 15.4.3 Linux的i2c-dev.c文件分析
    • 15.5 Tegra I2C总线驱动实例
    • 15.6 AT24xx EEPROM的I2C设备驱动实例
  • 15.7 总结
    • 16.1 Linux USB驱动层次
      • 16.1.2 设备、配置、接口、端点
    • 16.2 USB主机控制器驱动
      • 16.2.2 实例:Chipidea USB主机驱动
    • 16.3 USB设备驱动
      • 16.3.2 USB请求块
      • 16.3.3 探测和断开函数
      • 16.3.4 USB骨架程序
      • 16.3.5 实例:USB键盘驱动
    • 16.4 USB UDC与Gadget驱动
    • 16.4.3 实例:Loopback Function驱动
    • 16.6 总结
  • 第17章 I2C、SPI、USB驱动架构类比
    • 17.1 I2C、SPI、USB驱动架构
    • 17.2 I2C主机和外设眼里的Linux世界
  • 第18章 ARM Linux设备树
    • 18.1 ARM设备树起源
    • 18.2 设备树的组成和结构
      • 18.2.2 根节点兼容性
      • 18.2.4 设备节点及label的命名
      • 18.2.6 中断连接
    • 18.2.7 GPIO、时钟、pinmux连接
    • 18.4 常用的OF API
  • 第19章 Linux电源管理的系统架构和驱动
    • 19.1 Linux电源管理的全局架构
    • 19.2 CPUFreq驱动
      • 19.2.1 SoC的CPUFreq驱动实现
      • 19.2.2 CPUFreq的策略
      • 19.2.3 CPUFreq的性能测试和调优
      • 19.2.4 CPUFreq通知
    • 19.3 CPUIdle驱动
    • 19.5 Regulator驱动
    • 19.6 OPP
    • 19.7 PM QoS
    • 19.8 CPU热插拔
    • 19.9 挂起到RAM
  • 19.11 总结
    • 20.1 ARM Linux底层驱动的组成和现状
    • 20.3 中断控制器驱动
    • 20.5 DEBUG_LL和EARLY_PRINTK的设置
    • 20.7 pinctrl驱动
    • 20.8 时钟驱动
    • 20.10 总结
  • 第21章 Linux设备驱动的调试
    • 21.1.2 DDD图形界面调试工具
    • 21.2 Linux内核调试
    • 21.3 内核打印信息——printk()
    • 21.4 DEBUG_LL和EARLY_PRINTK
    • 21.5 使用“/proc”
    • 21.6 Oops
    • 21.7 BUG_ON()和WARN_ON()
    • 21.8 strace
    • 21.9 KGDB
    • 21.10 使用仿真器调试内核
    • 21.11 应用程序调试
    • 21.13 总结
暂无相关搜索结果!
    展开/收起文章目录

    二维码

    手机扫一扫,轻松掌上学

    《Linux设备驱动开发详解:基于最新的Linux4.0内核》电子书下载

    请下载您需要的格式的电子书,随时随地,享受学习的乐趣!
    EPUB 电子书

    书签列表

      阅读记录

      阅读进度: 0.00% ( 0/0 ) 重置阅读进度