随笔分类 - Linux驱动
摘要:一、概述 看门狗是基于定时器的复位机制,需要定时喂狗,不能咬狗触发复位 Linux的看门狗驱动框架分为设备驱动层、核心层以及统一设备驱动层,分解负责与硬件交互、逻辑处理和APP交互 二、设备驱动层做了什么? 分配一个watchdog_device结构体并初始化 设置watchdog_device结构
阅读全文
摘要:一、PWM子系统概述 硬件PWM,通过PWM控制器,在控制器的某个通道上实现PWM功能 软件PWM,通过GPIO的高低电平的持续时间进行模拟,依赖于高精度定时器hrtimer PWM子系统包含设备驱动层、核心层和控制器驱动层,同时也可以通过sysfs操作pwm 二、PWM控制器驱动的注册 依赖于平台
阅读全文
摘要:一、Linux的输入子系统框架介绍 输入子系统在内核中分为设备驱动层、输入核心层和事件处理层 事件处理层,位于输入核心层的上层,接收来自输入核心层的输入事件,并根据事件的类型和属性进行对应处理,通常较为通用,实现创建设备节点、实现fops等,关键结构体是input_handler 输入核心层,连接事
阅读全文
摘要:一、基础知识 编译代码的三个环境变量,ARCH、CROSS_COMPILE、PATH分别表示架构、工具链、路径 驱动模块传参,module_param,module_param_array、module_param_string传递基本数据类型、数组和字符串 内核模块导出EXPORT_SYMBOL可
阅读全文
摘要:一、USB子系统介绍 USB设备是主从结构的总线,USB设备包含HUB和功能设备 在USB2.0中,规定除Root外,USB设备层数最多6层,最多连接127个设备(7位的地址) USB设备包含一个或多个逻辑,一个逻辑体现为一个接口,一个接口包含多个端点 端点0为控制端点,USB设备的枚举使用它,控制
阅读全文
摘要:一、PCI子系统介绍 PCI和PCIe在软件层面是可以兼容的,但是前者是并口的,并且速率较低 PCI局部总线也是主从的,PCI设备均可当做主设备也可当做从设备,以下仅讨论从设备 树型结构+总线结构,CPU通过Host/PCI桥连接到0号PCI局部总线,0号PCI局部总线可以连接PCI设备,也可以连接
阅读全文
摘要:一、SPI子系统介绍 SPI总线的四种模式,CPOL决定空闲时SCLK的电平,CPHA决定第几个时钟边沿采集数据,常用模式0和模式3,均是上升沿采集数据 SPI存在一个主从模式的分别,CPU中常用的是主模式 二、SPI子系统的分层介绍 SPI设备驱动,包含一般的SPI设备驱动和spidev.c,形成
阅读全文
摘要:一、Linux的I2C子系统框架介绍 I2C总线和I2C协议、SMBus协议 标准模式:100kbps、快速模式:400kbps、高速模式:3.4Mbps I2C接上拉电阻的作用:保证总线空闲处于高电平(开漏/开极输出输出0时总线处于高阻态)、实现线与功能(一个设备拉低总线的时候其他设备也能感知到)
阅读全文
摘要:一、Pinctrl子系统介绍 描述引脚 复用引脚 配置引脚 二、Pinctrl子系统的三层 用户层,作为使用pinctrl子系统的消费者,在设备树中定义pinctrl的状态,并对某种状态引用pinctrl-controller的某个节点 核心层,core.c,提供了pinctrl-device相关的
阅读全文
摘要:一、Linux的GPIO驱动框架介绍 功能包含:控制引脚的方向(输入/输出)、读取输入值、设置输出值、中断等 屏蔽了物理硬件层面的真实有效电平,在内核中使用逻辑电平,如输出1在高电平有效时输出高电平,在低电平有效时输出低电平 管理芯片自带的GPIO和扩展的GPIO,扩展的GPIO速度较慢,使用时不建
阅读全文

浙公网安备 33010602011771号