- 博客(60)
- 收藏
- 关注
原创 Mplayer库的移植和应用
Mplayer是一款开源多媒体播放器,可通过源码移植到不同平台实现音视频播放。移植过程需依赖多个库文件如zlib、libpng、alsa音频库等,将解压后的文件复制到开发板的lib和bin目录即可完成。播放时可通过命令调整视频旋转、位置、尺寸及等比例缩放,并支持从模式(slave)进行灵活控制,包括音量调节、暂停、进度跳转等操作。开发者还可通过有名管道(FIFO)编程实现应用层控制,利用无名管道获取播放器输出信息。该方案提供了从基础移植到高级控制的全流程实现方法。
2025-06-30 08:52:34
716
2
原创 fb子系统控制
Linux内核中的Framebuffer子系统及其应用开发。fb子系统为显示设备提供统一操作接口,通过设备节点/dev/fbX访问。核心结构体fb_info包含设备属性和操作方法,其中fb_var_screeninfo存储可变参数(如分辨率),fb_fix_screeninfo存储固定参数(如显存地址)。应用层通过ioctl获取设备参数,使用mmap将显存映射到用户空间直接操作,提高效率。
2025-06-29 00:35:43
724
原创 设备树引入
2011年,Linux之父Linus Torvalds发现这个问题后,就通过邮件向ARM-Linux开发社区发了一封邮件,不禁的发出了一句“之后ARM Linux社区引入了设备树。为什么LinusTorvalds会爆粗口呢?平台总线模型是把驱动分成了俩个部分,一部分是device,一部分是driver,设备信息和驱动分离这个设计非常的好。device部分是描述硬件的。一般device部分的代码会放在内核源码中arch/arm/plat-xxx和arch/arm/mach-xxx下面。
2025-06-28 22:45:16
779
原创 linux触摸屏驱动移植实现
本文介绍了基于I2C总线的触摸屏驱动开发流程。主要内容包括:1)通过输入子系统上报触摸坐标点;2)使用I2C子系统与触摸芯片交互;3)中断机制处理触摸事件;4)硬件操作实现坐标读取。开发过程涉及I2C设备注册、寄存器读写、中断处理、输入子系统上报等关键技术点,并通过示例代码展示了具体实现方法,包括修改触摸屏寄存器配置、设置中断触发方式、上报坐标信息等功能。
2025-06-28 12:44:53
629
原创 IIC总线子系统
IIC子系统主要由三部分组成:1)设备驱动层负责外设驱动实现;2)核心层管理设备匹配;3)适配层实现时序控制。IIC采用开漏输出和上拉电阻设计,确保多设备共享总线时的安全性和线与功能。通信时序由主机控制,包含起始/停止条件、地址传输和数据应答机制。Linux内核IIC子系统通过i2c_adapter、i2c_client和i2c_driver等核心结构体实现设备管理,提供i2c_transfer等API进行数据传输。开发实例展示了触摸屏设备的注册流程,包括获取适配器、创建客户端设备以及驱动匹配过程。
2025-06-28 11:45:45
1016
原创 平台驱动设备模型
平台驱动模型是Linux内核用于管理嵌入式系统中非标准总线设备的机制,适用于SoC内部控制器(如GPIO、UART等)和内存映射外设。
2025-06-27 00:49:30
960
原创 Input子系统
输入子系统为输入设备(如键盘、鼠标、触摸屏等)提供统一驱动框架,简化开发流程。该系统分为设备驱动层(处理硬件操作)、核心层(协调通信)和事件处理层(生成用户接口)。开发时只需实现差异化的设备驱动层,通过input_dev结构体注册设备并上报事件(如按键状态),用户程序可通过/dev/input/下的设备节点(如eventX)读取标准化事件数据。
2025-06-26 11:44:06
714
原创 中断控制与实现
Linux系统中断处理机制及其相关技术实现。首先阐述了中断的基本概念,分析了中断工作机制和顶半部/底半部的划分。接着详细讲解了中断顶半部,针对底半部处理,重点介绍了三种实现方式:内核定时器(timer)、tasklet和工作队列(workqueue),分别分析了它们的特点、数据结构和API函数,并给出了示例代码。最后探讨了按键消抖的四种实现方案,包括中断+定时器、中断+tasklet、中断+workqueue等,比较了不同方案的优缺点。
2025-06-24 23:25:10
586
原创 Shell脚本
Shell脚本是运行在Unix/Linux环境下的命令行解释器脚本,它以自动化、批处理和系统管理为核心价值,是现代IT运维和开发不可或缺的工具。
2025-06-17 17:40:14
868
原创 线程与互斥锁
同一个进程中的多个线程共享->进程的资源,所以互斥锁的主要功能是防止多个线程同时访问共享资源,从而避免数据竞争和不一致的问题。当一个线程访问共享资源时,它会持有互斥锁,其他线程需要等待该线程释放互斥锁后才能访问该资源
2025-01-11 22:36:24
799
原创 智能手环项目
基于STM32F411CEU6的智能手环设计,通过按键切换不同的界面能实现时间显示、温湿度显示、心率血压、计步显示等功能显示到屏幕上
2024-11-23 09:59:42
313
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人