嵌入式开发
文章平均质量分 90
嵌入式王工
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
RK3399 电子相册进阶:目录遍历 + 链表存储,实现自动加载图片(附完整项目)
本文介绍了一个基于RK3399开发板的电子相册项目,通过自动扫描图片目录和链表存储实现动态图片加载。主要内容包括:1.使用Linux目录操作API(opendir/readdir)自动获取指定文件夹下的图片文件;2.采用双向循环链表动态存储图片路径,解决数组固定大小的限制;3.整合JPEG显示功能实现图片循环播放,支持ESC键退出。项目亮点在于实现了"一键启动、自动加载、循环播放"的完整功能,代码结构清晰,包含链表实现、文件操作和图形显示等核心技术,适合嵌入式开发学习和简历项目展示。原创 2025-11-26 21:00:40 · 1333 阅读 · 0 评论 -
RK3399 嵌入式开发:libjpeg 库移植与 JPEG 图片显示实战(含 BMP 转 JPEG)
本文详细介绍了在RK3399嵌入式Linux平台上实现JPEG图片显示的全过程。主要内容包括:1. 准备工作:硬件平台搭建和libjpeg库移植;2. JPEG显示实现:通过LCD显存操作和libjpeg解码流程;3. 功能扩展:实现循环播放相册和BMP转JPEG功能。文章提供了完整的代码实现和详细的步骤说明,所有功能均经过实际验证,可直接应用于嵌入式项目开发。关键技术点包括:交叉编译配置、显存映射操作、JPEG编解码流程等,为嵌入式图像处理提供了实用解决方案。原创 2025-11-26 20:54:28 · 1491 阅读 · 0 评论 -
Linux fb 子系统实战:从原理到 RK3399 屏幕显示(含 BMP 图片显示)
本文详细介绍了Linux fb子系统在RK3399开发板上的应用实践,从原理到代码实现。主要内容包括:fb子系统核心概念(帧缓冲、色深、设备节点等)和RK3399屏幕参数解析;应用层编程流程:设备打开、参数获取、显存映射、数据写入;三个实战案例:获取屏幕信息、显示纯色、BMP图片显示(含BGR转RGB和行顺序修正);实用技巧与常见问题解决方案。通过mmap直接操作显存实现高效显示,特别适合嵌入式Linux开发场景。文章提供了完整的示例代码和避坑指南,帮助开发者快速掌握fb子系统的使用。原创 2025-11-24 19:46:00 · 816 阅读 · 0 评论 -
Linux Platform 总线 LED 驱动实战代码包
摘要:本文介绍了一个嵌入式Linux平台的LED驱动开发包,支持RK3399、树莓派等开发板。包含驱动代码、设备树片段和测试脚本,提供两种设备匹配方式:设备树匹配(推荐)和传统模块匹配。驱动代码实现LED控制功能,包括GPIO和寄存器两种操作方式,并提供了字符设备接口。详细说明了代码结构、编译方法和测试流程,同时给出常见问题解决方案。该开发包可直接编译验证,适用于嵌入式Linux系统的LED设备驱动开发。原创 2025-11-20 20:53:30 · 676 阅读 · 0 评论 -
Linux 平台总线驱动模型(platform)从入门到实战:适用于嵌入式开发
本文介绍了Linux平台总线驱动开发的核心概念与实践方法。平台总线作为虚拟总线,通过解耦设备端(硬件属性)和驱动端(操作逻辑)实现代码复用,解决无专用总线外设的驱动开发问题。文章详细讲解了platform_device和platform_driver的数据结构、API接口及3种匹配方式(设备树匹配优先级最高),并以RK3399开发板的LED控制为例,给出了完整的设备端和驱动端代码实现。最后介绍了设备树适配方案和常见调试技巧,帮助开发者快速掌握平台总线驱动开发。该架构显著提升驱动代码的可移植性,是嵌入式Lin原创 2025-11-20 20:16:50 · 783 阅读 · 0 评论 -
RK3399 平台总线设备驱动开源项目(多设备扩展版)
摘要: RK3399-Platform-Device-Suite项目为RK3399开发板实现了完整的平台总线驱动,包含LED、按键、ADC和PWM风扇4类核心设备的驱动解决方案。项目提供模块注册和设备树两种设备声明方式,采用平台总线模型实现设备与驱动分离。每个设备包含独立的设备模块和驱动模块,支持通过QT可视化控制端进行交互,并配套测试脚本验证功能。项目结构清晰,包含设备树配置、内核模块代码、用户空间控制程序和详细部署文档,实现了从硬件资源管理到用户控制的全流程解决方案,特别展示了中断处理(按键)、内存映射原创 2025-11-19 20:28:40 · 601 阅读 · 0 评论 -
从入门到实战:RK3399 Linux 平台总线驱动模型全解析(附开源控制项目)
本文详细介绍了Linux平台总线(PlatformBus)模型在RK3399开发板上的应用。该模型通过分离设备信息(device)和驱动逻辑(driver),实现了硬件布局变更时只需修改设备信息而无需重写驱动代码的灵活架构。文章首先解析了平台总线的三大核心实体(设备、驱动、总线)及其解耦价值,然后深入讲解了关键数据结构、匹配流程以及实战开发步骤,包括编写LED设备模块(driver.c)和驱动模块(driver.c)。最后提出了一个开源项目设计:基于QT的RK3399平台设备可视化控制中心,能够通过GUI。原创 2025-11-19 20:22:51 · 1118 阅读 · 0 评论 -
Linux 中断核心模块(rk3399 平台适配)
本文介绍了基于rk3399平台(ARM64架构)的Linux内核四大核心模块开发:顶半部中断、定时器、tasklet和workqueue。每个模块都提供了API汇总、适用场景说明和可直接编译运行的代码示例。重点内容包括:GPIO中断处理(含按键消抖)、定时器使用、tasklet轻量级任务处理以及三种workqueue实现方式(共享队列、私有队列和延迟任务)。文章详细说明了rk3399平台的GPIO编号规则和交叉编译方法,并提供了完整的Makefile模板。所有代码均针对rk3399平台优化,兼顾实用性。原创 2025-11-18 20:57:13 · 888 阅读 · 0 评论 -
Linux 中断控制与实现:通俗原理 + 流程 + 设计初衷
Linux中断机制通过"顶半部+底半部"架构实现高效响应与处理:顶半部快速响应中断(如按键检测),底半部异步处理耗时任务(如消抖)。提供多种工具选择:定时器(timer)用于延迟执行,tasklet处理轻量级任务(中断上下文),workqueue处理耗时可阻塞任务(进程上下文)。该设计平衡了响应速度与CPU利用率,解决了外设与CPU速度不匹配问题。典型应用如按键中断采用"顶半部启动timer+底半部消抖处理"的组合方案。选择组件时需根据任务特性(延迟、耗时、可阻塞等)原创 2025-11-18 20:43:58 · 1200 阅读 · 0 评论 -
Linux 中断:从基础到实战的深度解析
Linux中断机制是系统的"神经反射系统",通过异步事件通知实现高效外设响应。文章系统讲解中断原理与开发实践:1) 介绍中断分类(硬件/软件)及处理流程;2) 分析顶半部(快速响应)与底半部(耗时处理)的分工机制;3) 提供设备树配置到驱动开发的完整案例,包含按键中断+Tasklet实现;4) 给出调试工具与优化技巧;5) 拓展中断共享与优先级管理。通过类比急诊分诊等生活实例,深入浅出地解析了这一核心机制,为开发者提供实用指南。原创 2025-11-17 21:09:03 · 982 阅读 · 0 评论 -
Linux 系统中断控制与实现:从基础到实战(附完整代码)
本文介绍了Linux驱动开发中的中断机制,包括基本原理和实战应用。主要内容涵盖:中断的核心概念(IRQ、ISR、顶/底半部)、关键API(request_irq、free_irq等)、定时器实现按键消抖(jiffies、timer_list)、以及两种底半部处理方式(tasklet和工作队列)。文章通过代码示例和对比表格,详细讲解了中断处理流程及注意事项,适合驱动开发初学者掌握中断处理的基本方法和最佳实践。原创 2025-11-17 21:00:14 · 1016 阅读 · 0 评论 -
Linux 系统模块编程从入门到实战:手把手教你写内核模块
本文介绍了Linux内核模块编程的核心技术与实践方法。Linux模块(.ko)作为动态扩展内核功能的载体,支持运行时加载/卸载,具有灵活性、高效性和轻量化三大优势。文章详细解析了模块开发的四大必备组件:头文件引入、加载函数(__init)、卸载函数(__exit)和许可证声明(GPL),并提供了HelloWorld模块代码示例。同时讲解了基于内核源码的模块编译方法,包括Makefile编写要点和编译步骤,以及模块操作命令(insmod/rmmod/lsmod/dmesg)的使用技巧。最后强调了内核版本一致性原创 2025-11-16 23:54:55 · 684 阅读 · 0 评论 -
嵌入式开发的 “偷懒” 艺术:高效实践指南(附完整代码示例)
作为嵌入式开发者,我们的价值不在于编写多少行代码,而在于用最少的代码实现稳定、高效的功能。掌握这些 “偷懒” 技巧,不仅能提升开发效率,更能降低维护成本,让嵌入式开发从 “繁琐重复” 走向 “简洁高效”。原创 2025-11-07 20:25:31 · 834 阅读 · 0 评论
分享