自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 收藏
  • 关注

原创 imx6ull-驱动开发篇47——Linux SPI 驱动实验

本文介绍了在Linux系统下为I.MX6U开发板上的ICM-20608六轴传感器,编写SPI设备驱动的完整过程。

2025-08-28 22:15:00 826

原创 imx6ull-驱动开发篇46——I.MX6U SPI 主机驱动分析

本文分析了Linux中I.MX6U处理器的SPI主机驱动实现。主要内容包括:1) 通过设备树节点匹配SPI控制器驱动,解析了设备树兼容性属性和驱动注册机制;2) 详细说明了SPI数据传输的核心函数spi_imx_transfer及其底层实现,包括8/16/32位数据收发函数;3) 阐述了SPI设备驱动的编写流程,重点介绍了spi_transfer和spi_message结构体的使用,以及同步(spi_sync)和异步(spi_async)传输方式

2025-08-28 15:30:00 684

原创 imx6ull-驱动开发篇45——Linux 下 SPI 驱动框架简介

本文详细介绍了Linux SPI驱动框架,包括主机驱动和设备驱动两大部分。主机驱动部分重点阐述了spi_master结构体的组成、申请与释放方法,以及注册与注销流程;设备驱动部分讲解了spi_driver结构体的定义和注册方法。最后分析了SPI设备与驱动的匹配过程,包括设备树匹配、ACPI匹配、ID表匹配和名称匹配四种方式。整个SPI驱动框架与I2C类似,都采用总线-设备-驱动模型,通过spi_bus_type实现设备与驱动的匹配。

2025-08-27 20:45:00 1028

原创 imx6ull-驱动开发篇44——Linux I2C 驱动实验

本文介绍了在Linux系统下为I.MX6U开发板上的AP3216C三合一环境光传感器编写I2C设备驱动程序的过程。主要内容包括:1)修改设备树文件,配置I2C1接口和AP3216C子节点;2)编写驱动程序,实现了寄存器读写、数据采集等功能;3)开发测试应用程序,通过读取设备文件获取传感器数据。文章详细说明了驱动程序的各个关键部分,包括设备结构体定义、I2C通信函数实现、probe/remove接口等,并提供了完整的代码实现和测试方法。该驱动成功实现了对AP3216C传感器的IR、ALS和PS数据的采集功能。

2025-08-27 14:33:23 979

原创 imx6ull-驱动开发篇43——I.MX6U 的 I2C 驱动分析

本文介绍了Linux I2C驱动框架,重点分析了I.MX6U的I2C适配器驱动实现。主要内容包括:1) I2C驱动分为适配器驱动和设备驱动两部分;2) 详细解析了i2c_imx_probe函数的初始化流程,包括硬件资源获取、适配器设置、时钟管理等;3) 介绍了i2c_imx_algo结构体中的关键函数实现,如i2c_imx_xfer数据传输函数;4) 讲解了I2C设备驱动开发流程,包括设备树节点创建、数据收发处理等;5) 说明了i2c_transfer等API函数的使用方法。

2025-08-26 21:00:00 1357

原创 imx6ull-驱动开发篇42——Linux I2C 驱动框架简介

Linux内核将I2C驱动分为总线驱动和设备驱动两部分。总线驱动负责SOC的I2C控制器操作,核心数据结构为i2c_adapter和i2c_algorithm,其中i2c_algorithm定义了传输方法。设备驱动则针对具体I2C设备,核心结构为i2c_client和i2c_driver,通过i2c_add_driver注册驱动。

2025-08-26 13:24:10 1527 1

原创 imx6ull-驱动开发篇41——Linux RTC 驱动实验

本文介绍了I.MX6U开发板内部RTC驱动的实现方法。主要内容包括:1)在设备树中配置snvs_rtc节点,匹配Linux内核中的rtc-snvs.c驱动;2)详细分析snvs_rtc_probe函数的实现过程,包括寄存器映射、中断注册和RTC设备初始化等关键步骤;3)讲解RTC操作集snvs_rtc_ops的实现,重点分析时间读取函数的工作流程;4)给出Linux系统下使用date和hwclock命令查看和设置RTC时间的具体操作方法。通过本文可以掌握I.MX6U内部RTC驱动的实现原理和实际应用方法。

2025-08-25 21:00:00 719 1

原创 imx6ull-驱动开发篇40——Linux RTC 驱动简介

本文介绍了Linux下RTC驱动程序的开发方法,详细解析了RTC驱动从底层硬件操作到上层接口的实现机制。

2025-08-25 13:56:03 767

原创 imx6ull-驱动开发篇39——Linux INPUT 子系统实验

本文使用正点原子imx6ull开发板,编写基于linux驱动input子框架的测试代码。

2025-08-24 21:00:00 895

原创 imx6ull-驱动开发篇38——Linux INPUT 子系统

Linux内核的input子系统是管理输入设备的框架,分为驱动层、核心层和事件处理层。本文详细介绍了input驱动的编写流程。

2025-08-24 15:29:23 603

原创 imx6ull-驱动开发篇37——Linux MISC 驱动实验

本文介绍了Linux内核中的MISC(杂项)设备驱动框架及其应用。以蜂鸣器驱动为例,演示了如何结合platform框架实现MISC设备驱动,包括设备树配置、驱动代码编写、测试程序开发等完整流程。

2025-08-23 22:15:00 1498

原创 imx6ull-驱动开发篇36——Linux 自带的 LED 灯驱动实验

本文介绍了如何使用Linux内核自带的LED驱动控制I.MX6U开发板上的LED0。

2025-08-23 16:00:00 968

原创 imx6ull-驱动开发篇35——设备树下的 platform 驱动实验

本文介绍了基于设备树的platform驱动开发方法。

2025-08-22 20:30:00 968 1

原创 imx6ull-驱动开发篇34——platform 设备驱动实验

本文介绍了基于Linux platform驱动框架编写LED灯驱动的方法,采用自定义platform_device方式而非设备树来描述设备信息。

2025-08-22 16:00:00 572

原创 imx6ull-驱动开发篇33——platform 平台驱动模型

本文介绍了Linux驱动开发中的分离与分层机制。重点阐述了platform平台驱动模型,包括platform总线结构、设备与驱动的匹配方式(设备树、ACPI、ID表、名称匹配)以及platform_driver和platform_device的结构与注册流程。

2025-08-21 22:34:50 1929 1

原创 imx6ull-驱动开发篇32——Linux异步通知实验

本文介绍了在Linux驱动程序中实现异步通知功能的方法。驱动程序通过信号机制向应用程序通知按键事件,使用SIGIO信号实现异步通信。

2025-08-21 16:35:41 920

原创 imx6ull-驱动开发篇31——Linux异步通知

本文简单介绍了Linux驱动开发中的异步通知机制。

2025-08-20 22:30:00 1266

原创 imx6ull-驱动开发篇30——Linux 非阻塞IO实验

本文介绍了Linux非阻塞IO驱动的实现方法。在

2025-08-20 21:30:00 748

原创 imx6ull-驱动开发篇29——Linux阻塞IO 实验

本文介绍了在Linux驱动中使用阻塞IO方式实现按键检测的方法。通过修改中断实验代码,添加等待队列机制,当没有按键按下时进程进入休眠状态,按键触发时唤醒进程。采用阻塞IO后应用程序的CPU使用率从99.6%降至0%,有效提升了系统资源利用率。

2025-08-20 14:59:23 946

原创 imx6ull-驱动开发篇28——Linux阻塞和非阻塞 IO(下)

本文详细介绍了Linux系统中非阻塞I/O操作的三种轮询机制:select、poll和epoll。

2025-08-16 21:45:00 857

原创 imx6ull-驱动开发篇27——Linux阻塞和非阻塞 IO(上)

本文介绍了Linux内核中的阻塞/非阻塞IO机制及等待队列实现原理。

2025-08-16 21:15:00 1342

原创 imx6ull-驱动开发篇26——Linux 中断实验

本文介绍了在Linux设备树中配置GPIO中断的方法,并以IMX6ULL开发板的KEY0按键为例,详细讲解了中断驱动的实现过程。

2025-08-15 21:45:00 1076

原创 imx6ull-驱动开发篇25——Linux 中断上半部/下半部

Linux内核中断处理分为上半部和下半部,上半部处理快速操作,下半部处理耗时任务。下半部机制包括软中断、tasklet和工作队列等。

2025-08-15 21:15:00 560

原创 imx6ull-驱动开发篇24——Linux 中断API函数

本文介绍了Linux中断处理机制及常用API函数。

2025-08-14 21:45:00 1049

原创 imx6ull-驱动开发篇23——Linux 内核定时器实验

本文介绍了基于正点原子I.MX6U-ALPHA开发板的Linux内核定时器实验。通过编写定时器驱动程序,实现了LED灯的周期性闪烁控制。

2025-08-14 21:15:00 1007

原创 imx6ull-驱动开发篇22——Linux 时间管理和内核定时器

本文介绍了Linux内核中的时间管理机制,主要包括系统节拍率、jiffies计数器、时间绕回处理、时间转换函数和内核定时器。

2025-08-13 21:30:00 1370

原创 imx6ull-驱动开发篇21——Linux 按键输入实验

本文介绍了在Linux下开发GPIO按键输入驱动程序的实现过程。通过正点原子I.MX6U-ALPHA开发板的按键实验,详细讲解了从设备树配置到驱动编写的完整流程。

2025-08-13 21:00:00 860

原创 imx6ull-驱动开发篇20——linux互斥体实验

本文介绍了使用互斥体(mutex),实现LED灯互斥访问的驱动开发方法。

2025-08-12 22:00:00 726

原创 imx6ull-驱动开发篇19——linux信号量实验

本文介绍了使用信号量,实现LED设备互斥访问的驱动开发方法。

2025-08-12 21:00:00 849

原创 imx6ull-驱动开发篇18——linux自旋锁实验

本文介绍了在Linux驱动开发中,使用自旋锁实现LED设备互斥访问的方法。

2025-08-11 20:30:00 459

原创 imx6ull-驱动开发篇17——linux原子操作实验

本文介绍了如何在Linux驱动开发中,使用原子操作实现对LED设备的互斥访问。

2025-08-10 12:58:16 930

原创 imx6ull-驱动开发篇16——信号量与互斥体

本文介绍了Linux内核中处理并发的信号量和互斥体机制,并提供了示例代码。

2025-08-09 21:30:00 684

原创 imx6ull-驱动开发篇15——linux自旋锁

本文介绍了Linux内核中的自旋锁机制及其使用方法,通过示例代码展示了各种锁的具体应用场景和实现方式。

2025-08-09 15:01:14 755

原创 imx6ull-驱动开发篇14——原子操作

Linux内核开发中存在并发与竞争,解决的方法之一是原子操作。本篇包含原子操作的api函数和示例代码。

2025-08-08 16:45:54 731

原创 imx6ull-驱动开发篇13——Linux 蜂鸣器实验

本文介绍了在Linux系统下开发蜂鸣器驱动的完整过程。主要内容包括:1)通过修改设备树文件添加蜂鸣器节点和GPIO配置;2)编写蜂鸣器驱动程序beep.c,3) 程序运行验证。

2025-08-07 21:15:00 910

原创 imx6ull-驱动开发篇12——GPIO子系统驱动LED

本文介绍了基于pinctrl和gpio子系统的LED灯驱动开发过程。主要内容包括:1. 设备树修改,2. 驱动程序实现,3. 测试验证。

2025-08-07 15:17:36 990

原创 imx6ull-驱动开发篇11——gpio子系统

本文详细介绍了Linux内核中的GPIO子系统,重点分析了I.MX6ULL处理器的GPIO驱动实现。

2025-08-06 21:30:00 929

原创 imx6ull-驱动开发篇10——pinctrl 子系统

本文介绍了Linux内核中pinctrl子系统的原理与应用,重点分析了I.MX6ULL处理器的GPIO引脚配置方法。

2025-08-06 15:17:49 655

原创 imx6ull-驱动开发篇9——设备树下的 LED 驱动实验

本文介绍了基于设备树的Linux LED驱动开发实验。

2025-08-05 10:00:00 742

原创 imx6ull-驱动开发篇8——设备树常用 OF 操作函数

本文详细介绍了Linux内核中设备树(DTB)的解析机制和使用方法。主要内容包括:1. 内核启动时解析DTB文件的流程,2. 设备树绑定文档的规范,3. 常用OF(Open Firmware)操作函数分类详解。

2025-08-04 21:30:00 811

空空如也

空空如也

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

TA关注的人

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