自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (5)
  • 收藏
  • 关注

原创 linux Regulator电源设备驱动框架

调节器Regulator是为其他设备供电的设备。由regulator供电的设备称为消费者。提供调节器的芯片称为电源集成电路PMIC。调节器可以启用/禁用其输出,也可以控制其输出电压和电流。

2023-04-18 23:44:12 1652

原创 linux PWM驱动程序

脉宽控制(PWM)操作像不断循环开关,这一功能常用于控制伺服电机、灯光控制、电压调节等。

2023-04-15 12:56:57 749

原创 linux RTC驱动程序

实时时钟RTC用于在非易失性存储器中记录绝对时间,它可以位于处理器内,也可以位于其外部(I2C或SPI接口)。

2023-04-15 01:05:40 509

原创 linux输入设备驱动程序

输入设备是与系统交互的设备,这些设备包括按钮、键盘、触摸屏、鼠标等。他们的工作方式是发送事件、输入内核在系统上捕获和传播。

2023-04-14 20:00:57 280

原创 linux IIO驱动框架

工业IO(Industrial I/O)是专用于ADC和DAC的内核子系统,加速度计、陀螺仪、电流电压测量芯片、光传感器、压力传感器等都属于IIO系列设备。IIO模型采用设备和通道架构。其中设备属于芯片本身,通道则表示设备的单个采集线,设备可能有若干个通道。例如加速度计就有3个通道,每个轴(X、Y和Z)都有一个通道。设备驱动程序使用IIO内核提供的功能和API来管理设备,并向IIO内核报告处理情况;IIO内核通过sysfs和字符设备将底层机制抽象到用户空间。

2023-04-14 01:04:16 1784

原创 linux Regmap API寄存器映射抽象

在引入ragmap API之前,SPI内核和I2C内核是独立的,二者有需要冗余代码。在引入Regmap API之后,无论是SPI还是I2C设备,只需要初始化配置Regmap,旧可以处理所有的读写修改操作。Regmap API很简单,其中最重要的是两个结构struct regmap_config(代表regmap配置) 和struct regmap(代表regmap实例本身)。

2023-04-13 00:36:49 371

原创 linux的SPI设备驱动程序

串行外设接口(SPI)是四线总线:MOSI、MISO、串行时钟SCK和片选CS。它常用于连接闪存、AD/DA转换器。主设备生成时钟和管理片选CS,速度可达80MB,远超I2C总线。

2023-04-12 02:00:03 2153

原创 I2C客户端驱动程序

使用了DT后,需要增加一个struct of_device_id{}数组。{}// 用于检测到设备时自动加载模块},.id_table = foo_id, // 在4.10以前的内核中,必须存在id_table成员。/*设备树相关代码*/} else {...

2023-04-11 18:03:04 416

原创 GPIO子系统

SoC会复用引脚,这意味着引脚可能会有多个功能。比如MX6QDL_PAD_SD3_DAT1可以是SD3数据线1、UART1的cts/rts、FlexCan2的Rx或标准GPIO。引脚工作模式的选择机制称为引脚多路复用,负责选择的系统被称为引脚控制器。内核中引脚控制子系统(pinctrl)能够管理引脚复用。DT中需要引脚以某种方式多路复用的设备必须声明它所需要的引脚控制配置。引脚控制子系统分为两部分:1. 引脚复用;2. 引脚配置:应用引脚的电器特性。

2023-04-10 19:52:51 608

原创 linux内核DMA引擎

DMA功能用于执行内存读取和写入操作而不占用CPU周期。当需要传输数据块时,CPU向DMA控制器提供原地址和目的地址以及总字节数,然后DMA控制器会将数据从源传输到目标,而不占用CPU周期。

2023-04-09 22:27:22 1220

原创 linux驱动使用的相关内核内存管理

其中低896M空间是和物理内存页帧连续的一一映射的,也是固定映射的(称为低端内存,映射产生的地址称为逻辑地址),映射产生的逻辑地址可以减去一个offset值获取物理页帧;默认情况下,在32位系统中,系统的地址空间按照3/1G进行划分,其中高于0xC000000的1G空间属于内核地址空间,而用户空间使用低3G字节的空间。linux的内核地址空间只占有高1G的地址空间,把这1G的地址空间分为低896M和高128M空间。其中内核高128M地址空间映射的物理内存页帧不是连续的,是可以随时映射和取消的。

2023-04-08 21:09:36 405

原创 Linux设备模型

后面bus_attribute/BUS_ATTR, driver_attribute/DRIVER_ATTR, class_attribute/CLASS_ATTR的使用方式与device_attribute/DEVICE_ATTR的使用方式完全雷同。它是总线上设备的父设备,即位于总线上的设备的父域都指向总线设备。接着总线驱动程序在packt_bus_type.probe()函数中为连接到总线的每个设备分配特定的设备结构,并初始化设备device的bus和parent字段。设备结构device{}

2023-04-08 15:40:40 477

原创 linux platform driver

除了I2c、spi、I2s、pci、sata、uart、usb总线类型的设备,其中在soc上无法删除的设备都被称为平台设备(platform设备)

2023-04-08 01:16:13 114 1

原创 linux设备树Device Tree

设备树DT是易于阅读的硬件描述文件,它采用类json格式,在这种格式中,设备表示为带有属性的节点。

2023-04-08 00:01:53 389 2

原创 Linux内核工具和常用辅助函数

有时只是偶尔需要向工作队列提交任务,并不需要专门创建一个工作任务队列,可以使用共享的工作任务队列,并且还可以在/proc/jitwq或/proc/jitwqdelay中查看正在被执行的工作任务。内核中断的后半段一种是基于softirq机制来实现,在softirq机制之上,实现了tasklet,它运行在中断上下文中。tasklet的在内核中的注册管理使用的是一个简单的链表,查看/proc/jittasklet和/proc/jittasklethi可查看当前注册的tasklet。tasklet的管理使用。

2023-04-07 11:46:33 509

原创 linux page cache和Disk Buffer原理

linux page cache和Disk Buffer原理、配置

2022-10-31 17:15:28 141

java 23种设计模式(中文chm格式)

java设计模式,23种设计模式,快速掌握java编程的基本技巧,对学习java很有帮助。

2011-09-19

git 使用指南,1小时看完并掌握git基本操作

包括git基本操作,git仓库管理,分支管理,仓库合并等

2010-11-11

understanding Linux Network Internals

深入理解linux网络内核 英文版 本书从linux tcp/ip 协议栈源码入手,介绍了协议栈总体框架、对ip层源码进行了详细的解读,分析了路由子系统和bridge子系统的源码,对和ip层相关的arp协议和icmp协议源码也做了分析。 对于linux网络协议栈开发人员来说,绝对是一本宝典

2010-10-23

quilt patch管理

当对源代码的patch个数增加到一定程度时,你就需要用quilt来管理你的patch了。

2010-06-24

空空如也

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

TA关注的人

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