AT24C02是IIC接口的EEPROM存储芯片,这颗芯片非常经典,可以找到非常多的资料,大多都是51、STM32单片机的示例代码,大多采用模拟时序、裸机系统运行。当前文章介绍在Linux系统里如何编写AT24C02的驱动,并且在应用层完成驱动读写测试,将AT24C02的存储空间映射成文件,在应用层,用户可以直接将AT24C02当做一个普通文件的形式进行读写,偏移文件指针;在Linux内核里有一套标准的IIC子系统框架专门读写IIC接口设备,采用平台设备模型框架,编写驱动非常方便。
原创 精选 2022-04-06 08:58:18
2189阅读
@TOC前言本篇文章将讲解如何使用I2C总线设备驱动模型编写AT24C02驱动程序。一、I2C总线设备驱动模型I2C设备模型驱动程序是一种新的I2C设备驱动模型,引入了设备树(Device Tree)这一机制,可以在I2C设备和相应的Linux设备节点之间建立关联。在I2C设备模型中,所有I2C设备节点共用一个I2C设备模型驱动程序,不需要为每个I2C设备节点编写独立的设备驱动程序。下图来自百问网
原创 精选 2023-06-07 16:42:02
701阅读
1点赞
1评论
使用STM32的硬件SPI及软件模拟SPI的方式驱动MAX7219点阵一、max7219.c。二、max7219.h。三、main.c 开发板使用STM32F103ZET6主控,可使用其自带的硬件SPI或者使用软件模拟SPI的方式驱动MAX7219点阵,显示其他字符可在code_disp1中修改字节定义。一、max7219.c。在模拟SPI时,函数Write_Max7219_byte()中,对M
型号:VK2C24A/B封装形式:LQFP80/64DICE(邦定COB)/COG(绑定玻璃用)KPP2781VK2C24A/B概述:是一个点阵式存储映射的LCD驱动器,可支持最大288点(72SEGx4COM)或者最大544点(68SEGx8COM)或者最大960点(60SEGx16COM)的LCD屏。单片机可通过I2C接口配置显示参数和读写显示数据,也可通过指令进入省电模式。其高抗干扰,低功耗
原创 2023-10-19 15:32:31
168阅读
对成员赋值,例如结构体:struct st1 { int a; int b; int c;}Linux的赋值风格是:struct st1 st1 = { .a = 1, .b = 2, .c =3,}
原创 2021-08-11 23:10:26
631阅读
1点赞
1.DMA(Direct Memory Access)  即直接存储器访问, DMA 传输方式无需 CPU 直接控制传输,通过硬件为 RAM 、I/O 设备开辟一条直接传送数据的通路,能使 CPU 的效率大为提高。  学了这么多驱动,不难推出DMA的编写套路:  1)注册DMA中断,分配缓冲区  2)注册字符设备,并提供文件操作集合fops   -> 2.1)file_opera...
原创 2021-04-16 16:51:27
1930阅读
I2C驱动
原创 2022-01-04 11:57:10
1887阅读
dlclose(关闭动态函数库文件)dlerror(动态函数错误处理)dlopen(打开动态函数库文件)dlsym(从共享对象中搜索动态函数)
原创 2010-02-23 18:27:09
273阅读
内核版本:3.10.1编写一个I2C设备驱动程序的工作可分为两部分,一是定义和注册I2C设备,即i2c_client;二是定义和注册I2C设备驱动,即i2c_driver。下面我们就以mini2440的I2C设备at24c08 EEPROM为例,介绍如何完成这两个工作。 一、定义和注册I2C设备步骤1:用i2c_board_info保存I2C设备相关信息在Linux中,struct i2
转载 2023-12-25 22:15:55
299阅读
I2C总线经常挂载eeprom、温度传感器、湿度传感器等设备。I2C总线下可以挂载多个设备,识别设备采用一个地址,这个地址在一条i2c总线是独一无二的。I2C总线驱动与spi总线驱动框架是一致的,都是采用控制器、core、设备三层驱动。内核中I2C 的处理已经做好了,我们只需要做设备驱动程序相关的内容。总线处理好了I2C 协议,即总线知道如何收发数据,而不知道数据的含义,我们要做的只是设备相...
原创 2021-11-09 10:18:50
227阅读
代码】STM32MP157A驱动开发 | 06 - 使用Linux内核自带的eeprom atmel驱动(AT24C02)
原创 2022-08-13 00:35:50
3216阅读
一、Linux的I2C体系结构主要由三部分组成:(1) I2C核心 提供I2C控制器和设备驱动的注册和注销方法,I2C通信方法,与适配器无关的代码以及探测设备等。(2) I2C控制器驱动(适配器)(3) I2C设备驱动 二、重要的结构体i2c_adapter//i2c控制器(适配器)struct i2c_adapter { struct module *owner; unsigned
一、Linux的I2C体系结构主要由三部分组成:(1) I2C核心提供I2C控制器和设备驱动的注册和注销方法,I2C通信方法,与适配器无关的代码以及探测设备等。(2) I2C控制器驱动(适配器)(3) I2C设备驱动二、重要的结构体i2c_adapter//i2c控制器(适配器)struct i2c_adapter { struct module *owner; uns...
内核:4.20芯片:HYM8563 RTC下面的代码分析主要都在注释中,会按照驱动中函数的执行顺序分析。一、加载和卸载函数static const struct i2c_device_id hym8563_id[] = { { "hym8563", 0 }, {},};MODULE_DEVICE_TABLE(i2c, hym8563_id);static const str...
内核:4.20 芯片:HYM8563 RTC下面的代码分析主要都在注释中,会按照驱动中函数的执行顺序分析。 一、加载和卸载函数static const struct i2c_device_id hym8563_id[] = { { "hym8563", 0 }, {},};MODULE_DEVICE_TABLE(i2c, hym8563_id);static const struct of_d
文章目录Linux内核i2c驱动编程i2c总线特性I2C总线特点可以概括如下:字节格式应答响应时钟同步Linux内核i2c驱动i2c总线驱动i2c设备驱动Linux内核i2c驱动框架编写i2c设备驱动程序实现原理i2c_clienti2c_driverSMBUS接口函数的使用步骤示例(MMA8653三轴加速度传感器使用)具体代码如下:Linux内核i2c驱动编程i2c总线特性I2C总线是由...
原创 2021-08-31 13:56:14
2503阅读
Linux系统中,开发和安装硬件驱动是一个非常重要的任务。作为一个程序员或者开发人员,了解如何在Linux下进行硬件驱动的开发和安装是至关重要的。在本文中,我们将探讨在Linux C开发中如何开发和安装硬件驱动。 首先,让我们先介绍一下Linux系统中关于硬件驱动的基本概念。硬件驱动是一种软件,它允许操作系统与硬件进行通信。在Linux系统中,硬件驱动通常是由开发人员编写的,以便操作系统能够正
原创 2024-05-23 10:49:04
34阅读
Linux I2C驱动Linux操作系统中用于控制I2C设备的驱动程序。I2C(Inter-Integrated Circuit)是一种用于连接微控制器和硬件设备的串行通信总线。在Linux系统中,I2C设备通常通过I2C总线进行通信,而Linux I2C驱动则负责管理和控制这些设备的通信。 Linux内核中的I2C子系统提供了I2C总线的支持,而I2C设备的驱动程序则通过内核模块的形式与I2
原创 2024-03-18 10:24:44
91阅读
概述linux I2C体系结构由三部分组成①I2C核心:提供I2C总线驱动和设备驱动的注册、注销方法②I2C总线驱动:主要包括两个数据结构,适配器I2c_adapter(包括algorithm结构体指针)、和algorithm数据结构(最终I2C的通信是由algorithm结构控制发送与接受数据)③I2C设备驱动:是对I2C硬件体系结构中设备端的实现,两个数据结构
原创 2022-09-19 14:11:57
143阅读
I2C 是很常用的一个串行通信接口,常用于连接各种外设、传感器等器件。一、Linux I2C 驱动框架Linux 内核将 I2C 驱动分为两部分: ①、 I2C 总线驱动, I2C 总线驱动就是 SOC 的 I2C 控制器驱动,也叫做 I2C 适配器驱动。 ②、 I2C 设备驱动, I2C 设备驱动就是针对具体的 I2C 设备而编写的驱动。 一般 SOC 的 I2C 总线驱动都是由半导体厂商编写的
转载 2024-01-02 08:41:04
831阅读
  • 1
  • 2
  • 3
  • 4
  • 5