Linux驱动
文章平均质量分 89
嵌入式王工
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
RK3399 平台总线设备驱动开源项目(多设备扩展版)
摘要: RK3399-Platform-Device-Suite项目为RK3399开发板实现了完整的平台总线驱动,包含LED、按键、ADC和PWM风扇4类核心设备的驱动解决方案。项目提供模块注册和设备树两种设备声明方式,采用平台总线模型实现设备与驱动分离。每个设备包含独立的设备模块和驱动模块,支持通过QT可视化控制端进行交互,并配套测试脚本验证功能。项目结构清晰,包含设备树配置、内核模块代码、用户空间控制程序和详细部署文档,实现了从硬件资源管理到用户控制的全流程解决方案,特别展示了中断处理(按键)、内存映射原创 2025-11-19 20:28:40 · 523 阅读 · 0 评论 -
Linux 系统中断控制与实现:从基础到实战(附完整代码)
本文介绍了Linux驱动开发中的中断机制,包括基本原理和实战应用。主要内容涵盖:中断的核心概念(IRQ、ISR、顶/底半部)、关键API(request_irq、free_irq等)、定时器实现按键消抖(jiffies、timer_list)、以及两种底半部处理方式(tasklet和工作队列)。文章通过代码示例和对比表格,详细讲解了中断处理流程及注意事项,适合驱动开发初学者掌握中断处理的基本方法和最佳实践。原创 2025-11-17 21:00:14 · 969 阅读 · 0 评论 -
Linux 系统模块编程从入门到实战:手把手教你写内核模块
本文介绍了Linux内核模块编程的核心技术与实践方法。Linux模块(.ko)作为动态扩展内核功能的载体,支持运行时加载/卸载,具有灵活性、高效性和轻量化三大优势。文章详细解析了模块开发的四大必备组件:头文件引入、加载函数(__init)、卸载函数(__exit)和许可证声明(GPL),并提供了HelloWorld模块代码示例。同时讲解了基于内核源码的模块编译方法,包括Makefile编写要点和编译步骤,以及模块操作命令(insmod/rmmod/lsmod/dmesg)的使用技巧。最后强调了内核版本一致性原创 2025-11-16 23:54:55 · 404 阅读 · 0 评论 -
Linux 系统模块编程从入门到实战:手把手教你写内核模块前言
本文详细介绍Linux内核模块编程,从基础概念到实战应用。主要内容包括:Linux模块的作用与优势,支持动态加载/卸载以灵活扩展功能;模块的基本构成(头文件、加载/卸载函数、许可证声明等)和可选功能(符号导出、模块信息);模块编译流程与Makefile编写;常用操作命令(加载、卸载、查看模块信息);通过四个实战示例(最小模块、日志等级、模块间调用、参数传递)演示核心开发技巧。文章还提供了常见问题排查方法,帮助开发者快速上手Linux内核模块开发,为后续驱动开发奠定基础。原创 2025-11-16 23:51:00 · 742 阅读 · 0 评论 -
从入门到实战:Linux GPIO_LED 驱动开发(ioctl 接口实现)
本文介绍了嵌入式Linux中通过ioctl接口控制LED的驱动开发流程。ioctl是Linux内核提供的设备控制接口,支持"命令+数据"交互方式,适合LED等外设控制。文章详细解析了ioctl命令码的32位组成结构,包括传输方向、数据大小、魔数和命令编号。开发流程涉及杂项设备注册、GPIO操作和ioctl命令交互等核心内容,配套代码可直接编译运行,帮助初学者快速掌握GPIO外设开发技能。原创 2025-11-15 12:02:15 · 1220 阅读 · 0 评论 -
RK3399 LED 驱动调试排错手册(基于杂项字符设备)
本文提供了一份RK3399 LED驱动开发的实用调试手册。重点介绍了三类常见问题:编译阶段报错(头文件缺失、路径错误等)、加载阶段报错(设备冲突、符号未定义等)和运行阶段问题(功能异常、内核崩溃等),并给出具体解决方法。手册详细阐述了寄存器验证的三种方法:在驱动中打印寄存器值、使用devmem工具直接读写、对照数据手册验证,帮助开发者精准定位硬件控制问题。同时介绍了内核日志分析技巧,包括常用命令、日志解读方法和分析步骤,以及推荐的调试工具。最后总结了一个清晰的调试流程,帮助开发者高效解决问题。原创 2025-11-14 21:23:02 · 855 阅读 · 1 评论 -
从 0 到 1 理解 RK3399 杂项字符设备 LED 驱动开发
本文详细讲解了基于RK3399开发板的杂项字符设备(LED)驱动开发。从核心概念入手,介绍了杂项设备的简化特性(共享主设备号10)、GPIO控制原理及关键结构体。随后拆解了完整驱动代码框架,包括地址映射、时钟使能、GPIO配置、文件操作接口实现等核心模块。通过Makefile编译和测试应用程序验证了驱动功能,并总结了常见问题解决方案。该驱动利用了misc_register简化注册流程,自动创建设备节点,适用于简单外设控制场景。文章通过原理讲解与代码实践相结合的方式,帮助开发者掌握杂项字符设备驱动的开发逻辑。原创 2025-11-14 21:17:26 · 1075 阅读 · 0 评论 -
Linux字符设备驱动模型
本文详细解析Linux字符设备驱动的三种实现模型。首先介绍字符设备驱动的基本概念和核心结构体file_operations,它是连接应用层与硬件的关键接口。然后重点讲解杂项设备驱动模型,其主设备号固定为10,开发简单但资源有限;早期经典模型支持多个设备但需手动创建设备节点;Linux 2.6标准模型采用dev_t设备号和cdev结构体,资源充足且扩展性强。文章通过完整代码示例演示各模型的实现方法,包括驱动注册、设备节点创建等关键流程,并提供三种模型的对比总结,建议按照杂项→早期→标准的顺序学习。原创 2025-11-13 19:59:08 · 555 阅读 · 0 评论
分享