- 博客(268)
- 资源 (34)
- 收藏
- 关注
原创 蒋梦麟
诸君离学校而去了。在社会上立身的困难,恐怕比在学校里求学还要加甚。若非立志奋斗,则以前所受的教育,反足以增加人生的苦恼,或转为堕落的工具。这是诸君所当特别注意的。事业的成功,须经过长时间的辛苦艰难——成功的代价,走过了许多荆棘的路,方才能寻获康庄大道。立志是砍荆棘的斧斤,奋斗是劳力。万不可希望以最少的劳力,获最大的成功。================================
2008-07-06 21:43:00
927
原创 edp极化问题解决之uefi篇
采用HDMI转EDP,原本经常连接外部显示接口的HDMI ,变为连接内嵌屏幕的EDP接口。导致时序参数调整带来较多工作。
2026-02-22 11:11:02
623
原创 edp极化问题解决之系统篇
在软件流程上connector 实体获取EDID,但encoder作为发起端,如果中间有bridge的转接,则HPD,EDID等控制信息获取影响整个屏显功能。
2026-02-15 11:39:21
599
原创 内核模块加载异常分析
实际工作中经常遇到厂商提供的内核版本源码与商用系统有些差异的情况,通过上述两种方法可以解决模块加载的问题。便于通过驱动跟踪处理问题。
2026-01-31 09:47:59
340
原创 x86模块偶发冻屏问题分析之一
本文分析了Windows 10系统不定期重启问题的排查过程。通过事件查看器发现异常重启记录(事件ID41),但无具体原因信息。采用多种压力测试工具(Prime95、OCCT、AIDA64等)进行硬件稳定性检测,发现瞬时电流超限和温度过高问题。通过HWiNFO和GenericLogViewer分析CPU核心状态,发现部分核心长期高负载运行。尽管通过了长时间压力测试和电流切换测试,系统仍偶发死机,表明可能存在更深层次的硬件或固件问题。后续将继续深入排查具体原因。
2026-01-17 10:59:56
997
原创 edp屏极化问题分析
本文详细解析了MIPI转EDP屏幕参数配置的关键技术要点。以NV156FHM-N52屏幕为例,阐述了1920x1080分辨率下的时序参数配置方法,包括有效区域、消隐数据、同步脉冲等关键参数的计算。文章对比了HDMI转EDP后的EDID信息获取方式,解释了xrandr命令输出的不同分辨率模式差异。针对时序不匹配导致的黑线和极化问题,提出了通过强制配置PC时序的解决方案。文中还介绍了CTA-861标准的基本概念和EDID数据结构,为显示接口的参数配置提供了完整的技术参考。
2026-01-03 10:32:10
950
原创 海思芯片某些spi nor型号 不能正常启动
本文介绍了SPI接口的几种工作模式:Standard SPI(单线输入输出)、Dual-Output/Input(双线数据)、Dual I/O(命令单线,地址和数据双线)、Quad-Output/Input(四线数据)和Quad I/O(命令单线,地址和数据四线)。重点分析了QE位对WP#和HOLD#引脚功能的影响,指出当QE=1时,IO2/IO3引脚会变为数据传输通道。文章还通过实际案例说明,当Nor Flash作为启动设备时,若控制器默认配置与Flash不一致(如地址长度或SPI接口类型),可能导致启动
2026-01-01 20:48:20
754
原创 音频控制与监测功能设计之耳机插入流程
本文描述了音频系统中耳机插孔检测与控制的实现机制。通过snd_soc_jack_pin和snd_soc_dapm_widget的命名关联,建立了硬件GPIO事件到DAPM音频路径的映射关系。当检测到耳机插入时,GPIO中断触发工作队列进行状态检测,经过软件滤波(400ms内20次稳定电平)确认有效事件后,通过snd_soc_jack_report上报状态。DAPM模块根据上报状态启用/禁用对应的音频路径组件,最终将事件转换为用户空间的input事件。整个过程实现了从物理插拔检测到音频路径控制的完整链路,支持
2026-01-01 12:02:49
853
原创 音频控制与监测功能设计之GPIO功能
本文探讨了单板音频电路设计中耳机/耳麦的监测与控制问题。首先介绍了耳麦作为复合设备的特点,比较了CTIA/AHJ和OMTP两种接口标准。详细分析了耳机插拔检测机制,包括GPIO中断注册、电平检测和工作队列处理流程。通过evtest工具观察到了实际的插拔事件,并发现GPIO冲突问题。文章还总结了关键GPIO管脚的功能分配,包括插拔检测、静音控制和音量调节等,并指出了硬件设计与软件实现存在的不一致问题,特别是静音控制管脚初始状态可能导致的系统异常风险。最后提出了硬件设计应与软件初始化流程协调的建议。
2025-12-28 16:24:59
639
原创 3588 cma heap应用示例之图像采集
本文探讨了直接使用dmabuf接口进行视频流采集的技术方案。首先分析了V4L2设备中常见的IO模式配置方法,指出通过CMA内存分配器获取物理连续内存的优势。针对实际应用中遇到的CMA内存不足问题,详细介绍了通过修改dts配置将CMA内存从128MB扩容至512MB的解决方案。文章还剖析了DMA映射过程中可能出现的错误及其调试方法,包括设备DMA掩码设置、字符设备初始化等关键环节。最后给出了用户态dmabuf分配、同步操作的具体代码实现,并提供了时延统计数据和性能优化建议。该方案为绕过V4L2框架直接操作dm
2025-12-19 23:04:12
753
原创 温度电压电流监控的设计与选型
本文探讨了硬件设计中监控单板电压、电流和温度的方案设计要点。针对Xilinx XADC模块,分析了12位ADC的参考电压选择(外部1.25V参考或片内参考)及其对精度的影响,指出单极性模式下1V满量程限制导致无法直接采集1.2V电压的问题。介绍了分压电路设计方法,通过电阻分压将高电压转换为ADC可测范围。在温度监测方面,对比了LM75B和NST175芯片的I2C通信协议差异,特别指出LM75B必须严格按双字节读取的时序要求,否则会导致总线挂死。最后总结了三点设计经验:明确ADC量程范围、合理配置ADC精度参
2025-12-13 09:47:13
716
原创 Linux串口驱动之五工程常见问题
本文分析了一个串口通信异常案例:对端设备持续发送数据时,本端未初始化的串口出现数据收发错误。通过示波器测量发现实际波特率与配置不符,但检查分频因子和系统时钟均正常。进一步分析发现串口控制器存在异常,统计信息显示大量帧错误。最终通过优化外围电路解决了问题。案例启示:1)设计时应考虑合理的外围电路;2)设备上下电测试能有效验证串口可靠性。该问题突显了硬件异常可能导致的通信故障,以及全面测试的重要性。
2025-12-07 10:24:06
645
原创 3588单板上编译驱动
本文介绍了在3588单板上搭建内核驱动编译环境的详细过程。首先通过脚本提取内核头文件和编译架构文件(Makefile/Kconfig),然后将其打包上传至单板并配置环境变量。重点说明了如何清理X86架构的二进制文件并重新编译scripts目录中的工具,包括修改Makefile解决编译依赖问题。文章还列举了常见内核配置选项(如MMU_NOTIFIER、VFIO、KVM等)的启用方法,并分析了驱动开发中遇到的符号导出问题及其解决方案。最后指出内核配置与驱动编译环境必须保持一致,否则会导致各种异常。
2025-12-05 22:09:54
981
原创 linux串口驱动之五一级接收缓存同步
本文分析了TTY缓冲区中commit字段和lock字段的作用机制。commit字段作为used的影子值,通过smp_store_release和smp_load_acquire实现内存屏障,确保数据写入对其他CPU核心可见,防止指令重排导致的数据不一致。lock字段则用于保证flush_to_ldisc的单实例执行,防止工作队列重入和缓冲区链表操作的并发问题。这两个机制共同实现了生产者和消费者之间的安全并发访问,避免了数据竞争和重复处理等问题。commit字段确保数据完整性,lock字段保证操作原子性,二者
2025-11-30 10:53:33
708
原创 Linux 串口驱动之四接收
本文分析了Linux TTY子系统数据接收流程,重点描述了两级缓冲机制:底层tty_buffer(640KB动态分配)和上层n_tty_data(4KB静态数组)。数据流向为:硬件→tty_buffer→n_tty_data→用户空间。驱动层在中断上下文中通过自旋锁保护数据写入tty_buffer,工作队列flush_to_ldisc负责将数据同步到n_tty_data,最终用户进程通过read系统调用获取数据。两级缓冲实现了上下文隔离(中断/进程)、职责分离(通用缓冲/终端语义处理)和性能优化。
2025-11-29 11:52:02
728
原创 linux串口驱动之三发送
本文分析了Linux TTY子系统的写入流程,重点探讨了数据从用户层到硬件驱动的传输机制。系统采用分层架构:用户层接口处理内存分配和数据拷贝;线路规程层(ldisc)负责数据加工或原始传输模式选择;通用驱动层管理4K环形缓冲区;芯片驱动层控制硬件FIFO。关键机制包括:数据分块策略(2K/64K)、并发控制(自旋锁/信号量)、缓存管理(head/tail指针操作)和进程调度(休眠/唤醒)。系统通过门限值(256字节)触发进程唤醒,确保高效数据传输,同时平衡系统资源使用和进程调度公平性。
2025-11-22 11:02:04
1154
原创 linux串口驱动之中断
本文分析了多种串口驱动芯片的中断实现机制,包括3588、xilinx、飞腾和CH438等芯片。重点对比了独立中断和共享中断两种模式:3588和飞腾采用独立中断,每个串口分配独立中断号;xilinx uartlite和CH438则采用共享中断,通过状态寄存器区分不同串口的中断源。文章建议,在IRQ资源紧张或负载均衡时选择共享中断;对于实时性要求高或负载差异大的场景,应采用独立中断。针对8核CPU和16个串口的典型配置,推荐采用4-8个中断的分组方案,以平衡系统并行性和处理开销。
2025-11-15 11:11:19
993
原创 linux 串口驱动之一总体
本文探讨了Linux串口驱动的实现框架,重点分析了核心数据结构和缓存管理机制。驱动框架分为tty层与串口驱动层,通过uart_port、uart_ops等结构体实现硬件抽象。发送缓存限制为页大小,而接收缓存采用两级管理,默认可达640KB。实现时需关注:1)FIFO配置与中断处理(独立或共享中断号);2)发送/接收缓存策略;3)无锁队列保护机制。驱动开发只需实现uart_port结构并填充对应uart_ops操作集即可完成硬件适配。文章还剖析了tty_buffer等关键数据结构,展示了Linux串口子系统分
2025-11-15 09:47:23
726
原创 mpv播放视频缓慢问题
本文分析了mpv播放视频时出现卡顿的问题排查过程。通过对软硬件环境的对比测试,排除了解码性能问题(fps达到202)。通过mpv参数的调试发现,gpu-context参数设置不当会导致软件渲染而非硬件渲染(GPU占用率从12%降至5%,CPU占用升至120%)。进一步分析显示EDID信息、缓存情况和帧时延数据,确定问题根源在于渲染流程选择不当。最终建议通过指定gpu-context=x11egl参数强制使用硬件渲染,并强调在视频播放问题排查中需要全面考察网络/存储、解码和显示三个环节。
2025-11-08 21:54:37
708
原创 win7 蓝屏问题之驱动
本文介绍了使用WinDbg分析Windows系统蓝屏dmp文件的方法。主要内容包括:1. Win7/Win10环境下WinDbg的安装配置;2. 符号表配置方法(本地缓存+在线下载);3. dmp文件分析流程,包括基本信息查看、栈信息解析和驱动异常定位;4. 常见错误类型(如DRIVER_CORRUPTED_EXPOOL)的分析方法;5. 如何通过sc命令验证驱动服务状态。文章通过具体案例展示了如何从蓝屏dump中提取关键信息,特别是通过栈调用链定位问题驱动(如HDAudBus驱动异常),并提供了符号表缺失
2025-11-08 11:28:19
969
原创 windows屏幕信息获取工具及eDP链路
本文介绍了eDP链路设计、屏幕检测及EDID相关工具的使用方法。主要内容包括:1)带开关和不带开关的eDP链路设计方案对比;2)Windows和Linux系统下EDID获取、解析工具的差异;3)显示时序配置和驱动参数调整;4)Linux下I2C控制器的使能与VBT配置;5)FastLink与FullLink的区别及故障解决方案。特别指出,在Linux下获取屏幕信息工具丰富,而Windows下较为困难,并提供了通过修改VBT中fastlink参数解决显示异常的具体案例。
2025-10-19 11:17:58
1126
原创 RIGOL MSO5074示波器使用之一
本文介绍了示波器使用的基本设置和操作方法。主要内容包括:1.外部信息支持频率选择原则,建议示波器带宽至少为被测信号5倍;2.探头的结构、衰减比选择及注意事项;3.垂直方向设置(电压幅度调节、偏移调整)和水平方向控制(时基选择、位移调节)的具体操作;4.频率测量功能的实现步骤,并给出65MHz和52MHz的测量示例;5.强调使用示波器前需明确信号电压范围和工作频率,选择合适的设备参数。文章通过触摸屏操作界面示意图和具体案例,详细说明了示波器的基本使用方法。
2025-09-27 15:03:58
1056
原创 edp lvds与屏的情感纠葛
摘要:文章探讨了eDP到LVDS屏幕的显示控制流程,重点分析了PTN3460I芯片的配置与屏显参数匹配问题。内容涵盖背光控制信号(eDP_VDDEN、eDP_BKLTEN、eDP_BKLTCTL)的功能定义,PTN3460I的CFG管脚配置对EDID获取方式(屏载或芯片内置)和显示位数(6bit/8bit)的影响,以及不同屏幕的背光电压兼容性问题。文中对比了两款LVDS屏幕的接口差异,解析了显示时序参数,并提出了常见的兼容性设计隐患,如差分线接地要求、模式管脚悬空风险等。最后指出Windows驱动与Inte
2025-09-21 11:38:13
1398
原创 vaapi硬解码性能评估
本文介绍了基于VAAPI接口的GPU硬件解码配置与性能评估方法。通过FFmpeg和MPV播放器实现H.265等格式的硬解,详细说明了低延迟参数设置及其适用场景(如视频会议、直播监控等),同时指出其易卡顿、高CPU占用的缺点。文章还提供了环境变量配置、编解码性能测试方法,以及视频格式查询技巧。最后强调在支持VAAPI的通用系统下,通过分析视频编码参数和硬件占用率来评估编解码效率的实用方法,并对比了CPU软解与GPU硬解的性能差异。
2025-09-20 10:49:49
1015
原创 3588 mipi摄像头到显示输出
本文提出了一种基于V4L2和DRM的Linux摄像头直接显示方案,旨在解决传统guviewer工具依赖桌面环境引入100-130ms延时的问题。通过多平面V4L2接口(NV12/NV16格式)获取图像数据,结合RGA硬件加速进行YUV-RGB转换,最终使用DRM框架实现无桌面渲染。实验显示该方案将延时降低至80-90ms,性能提升约30%。代码实现了摄像头初始化、缓冲区管理、格式转换和显示全流程,支持多摄像头扩展,为嵌入式视觉系统提供了低延迟的显示解决方案。
2025-09-14 11:48:21
738
原创 linux O_DIRECT标志加快文件存储,你信了吗
本文通过测试程序对比了不同磁盘在使用O_DIRECT标志时的写入性能差异。测试结果显示,对于NVMe固态硬盘,使用O_DIRECT标志时写入速度显著提升(如PCIe 3.0 x4接口下从699MB/s提升至1640MB/s),而传统SATA盘则符合预期性能下降模式。分析表明,非O_DIRECT模式会导致CPU占用100%和内存交换频繁。基于NVMe盘大容量数据写入的工程场景,建议采用O_DIRECT标志以获得更优性能,这体现了工程设计中需结合具体硬件特性进行优化的原则。
2025-09-13 13:57:39
511
GBA_900a_EngWS_C Petersen_Lightning (PCIe JBOF) Update,
2017-05-25
pcre2-10.34.zip
2020-05-03
linuxbestpicture.zip
2021-04-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅