<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ 鬼臾区的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/wuxiwang</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; wuxiwang]]></copyright><item><title><![CDATA[C 语言宏控制的 一类使用技巧]]></title><link>https://blog.csdn.net/wuxiwang/article/details/156461957</link><guid>https://blog.csdn.net/wuxiwang/article/details/156461957</guid><author>wuxiwang</author><pubDate>Sun, 04 Jan 2026 09:21:33 +0800</pubDate><description><![CDATA[最后是将这个宏取消定义。但是通常的log定位，如果没有函数加行号这类仔细的定位，对于重复字符串这类的log 是没法分别的，所以统一的在每个log 函数输出前面加上 函数及行号，这样的log就能准确定位输出的各项log了。从输出log 上来定位程序中问题，是linux应用和内核驱动开发的一个特色，需要频繁的在不同的功能模块，源码文件增加log 语句来定位分析。log 的使用和寻常的printf 函数是一致的，但是log输出时，都增加了函数和行号在头部输出了，如下。调试模式开关（发布时关闭日志）。]]></description><category></category></item><item><title><![CDATA[Chapter 9 USB Device Framework 摘要1]]></title><link>https://blog.csdn.net/wuxiwang/article/details/156195668</link><guid>https://blog.csdn.net/wuxiwang/article/details/156195668</guid><author>wuxiwang</author><pubDate>Tue, 23 Dec 2025 15:37:49 +0800</pubDate><description><![CDATA[usb2.0 规范usb 设备有可视和非可视状态，非可视状态只对设备可见，设备的可视状态如下开始未连接到usb总线时设备没有任何状态。连接到usb 总线，首先是Attached 状态，然后经过一定时间的稳定是powered 上电状态，上电之后总线给设备复位，进入Default默认状态，然后主机给设备一个总线上可用地址，进入Address可寻址状态，通过这个设备地址，主机配置设备，进入最终的Configured 已配置状态。]]></description><category></category></item><item><title><![CDATA[MIPI DPHY 和CSI 协议各个版本之间的区别和联系]]></title><link>https://blog.csdn.net/wuxiwang/article/details/154696422</link><guid>https://blog.csdn.net/wuxiwang/article/details/154696422</guid><author>wuxiwang</author><pubDate>Tue, 11 Nov 2025 17:16:30 +0800</pubDate><description><![CDATA[版本发布时间虚拟通道数物理层支持（HS 速率）总带宽（典型配置）核心升级亮点典型应用分辨率 / 场景1.0020051基础框架，单摄低分辨率1.0120061同 1.004 Gbps兼容性修复同 1.001.1200744 Gbps多摄基础，12/14 位 RAW 支持200 万～500 万像素1.220084720p 支持，YUV420 优化720p@30fps1.3201246 Gbps1080p 支持，多摄切换优化2.02014。]]></description><category></category></item><item><title><![CDATA[使用pwm的/sys 属性来模拟调试信号的操作 ]]></title><link>https://blog.csdn.net/wuxiwang/article/details/154656173</link><guid>https://blog.csdn.net/wuxiwang/article/details/154656173</guid><author>wuxiwang</author><pubDate>Mon, 10 Nov 2025 18:51:24 +0800</pubDate><description><![CDATA[每个 PWM 控制器包含多个通道（通常 0~3），需先 “导出” 通道才能操作# 导出成功后，会生成pwm0节点ls /sys/class/pwm/pwmchip0/pwm0/ # 显示可配置的属性文件period：PWM 周期（单位：ns，必须大于占空比）；duty_cycle：高电平持续时间（单位：ns，必须小于周期）；polarity：极性（normal默认高电平有效，inversed低电平有效）；enable：启用 / 禁用（1 = 启用，0 = 禁用）。]]></description><category></category></item><item><title><![CDATA[使用gpio 的/sys 属性来模拟调试信号的操作]]></title><link>https://blog.csdn.net/wuxiwang/article/details/154655579</link><guid>https://blog.csdn.net/wuxiwang/article/details/154655579</guid><author>wuxiwang</author><pubDate>Mon, 10 Nov 2025 18:04:52 +0800</pubDate><description><![CDATA[现实中，程序很可能来不及写，或者根本不想写，想通过操作设备节点的方式来简单的配置信号做一些实验，看看信号的变化效果，可以选择/sys  设备树中gpio 属性来简单的操作比如，需要将红框内的gpio 信号拉高，通过dts文件可以知道该pin是gpio0 这个控制模块内，pin 的编号是RK_PA5, 激活状态是高。源码中检索到该pin 编号是5，也就是gpio0 的pin5然后。]]></description><category></category></item><item><title><![CDATA[v4l2 subdev 设备节点和属性创建过程]]></title><link>https://blog.csdn.net/wuxiwang/article/details/154490640</link><guid>https://blog.csdn.net/wuxiwang/article/details/154490640</guid><author>wuxiwang</author><pubDate>Thu, 06 Nov 2025 18:09:59 +0800</pubDate><description><![CDATA[所以v4l2 subdev 设备节点和属性是在被hold的v4l2_dev 的匹配异步操作过程中被创建的，v4l2_device_register_subdev是先期在内存中建立v4l2_subdev具体描述，和 v4l2_dev的从属关系，然后在后级的具体的 v4l2_dev的bound 回调中批量的来创建所有链路上的v4l2_subdev相应的各类文件系统（/dev，/sys）上的设备节点和属性。]]></description><category></category></item><item><title><![CDATA[瑞芯微平台 摄像头模组 运行时上下电管理]]></title><link>https://blog.csdn.net/wuxiwang/article/details/154347601</link><guid>https://blog.csdn.net/wuxiwang/article/details/154347601</guid><author>wuxiwang</author><pubDate>Wed, 05 Nov 2025 15:53:44 +0800</pubDate><description><![CDATA[link_notify 回调 被media 框架建林link 的时候调用，由 MEDIA_DEV_NOTIFY_PRE_LINK_CH和MEDIA_DEV_NOTIFY_POST_LINK_CH 这两个阶段分别调用到。rkisp1_pipeline_pm_use 是设备驱动probe 时刻挂载的pm_use  回调，rkisp1_pipeline_link_notify是link_notify 回调。在dev.c 中，实现了对设备所在的所有 subdev的遍历，依次设置power，如下。]]></description><category></category></item><item><title><![CDATA[Linux 运行时电源管理（PM Runtime）API 使用说明]]></title><link>https://blog.csdn.net/wuxiwang/article/details/154132190</link><guid>https://blog.csdn.net/wuxiwang/article/details/154132190</guid><author>wuxiwang</author><pubDate>Thu, 30 Oct 2025 17:28:16 +0800</pubDate><description><![CDATA[本文介绍了Linux PM Runtime机制中关键电源管理函数的用法，包括pm_runtime_get_sync/put用于设备使用计数管理，pm_runtime_set_active/enable等用于状态初始化和使能控制，以及pm_runtime_disable/status_suspended等用于状态查询和禁用。这些函数共同实现对设备电源状态的跟踪、自动休眠唤醒控制，通过合理组合使用可在设备活跃时高效运行、空闲时自动进入低功耗，是Linux驱动中实现设备电源管理的重要接口。]]></description><category></category></item><item><title><![CDATA[MIPI DPHY 高速传输时序]]></title><link>https://blog.csdn.net/wuxiwang/article/details/152125100</link><guid>https://blog.csdn.net/wuxiwang/article/details/152125100</guid><author>wuxiwang</author><pubDate>Fri, 26 Sep 2025 14:52:03 +0800</pubDate><description><![CDATA[必须注意 T_LPX, T_PREPARE, T_HS_ZERO  和T_HSTRAL,T_HS_EXIT这类 这类时序上参数，在驱动软件上一般是必须T_SETTLE，T_HS_SKIP, 保证收发双方在LP和HS 正确信号解析。在MIPI_D-PHY_specification_v1-2.pdf 的 6 Global Operation 这个章节，有详细介绍DPHY物理层建立高速通讯的整个时序过程。每条lane 默认都在11 这个stop的初始状态，从这个状态可以发起高速传输，或者结束返回。]]></description><category></category></item><item><title><![CDATA[高通平台sensor驱动中的配置参数]]></title><link>https://blog.csdn.net/wuxiwang/article/details/152085061</link><guid>https://blog.csdn.net/wuxiwang/article/details/152085061</guid><author>wuxiwang</author><pubDate>Thu, 25 Sep 2025 17:03:39 +0800</pubDate><description><![CDATA[本文解析了高通平台sensor驱动中关键配置参数的含义及设置方法，包括：lineLengthPixelClock（HTS）、frameLengthLines（VTS）定义图像总尺寸；minHorizontal/VerticalBlanking的最小消隐期需参考传感器手册和硬件限制；outputPixelClock计算公式涉及MIPI速率和位深；horizontal/verticalBinning控制像素合并；settleTimeNs用于PHY同步时间计算；is3Phase区分D-PHY/C-PHY接口类型。]]></description><category></category></item><item><title><![CDATA[Ubuntu下 uvc]]></title><link>https://blog.csdn.net/wuxiwang/article/details/150846827</link><guid>https://blog.csdn.net/wuxiwang/article/details/150846827</guid><author>wuxiwang</author><pubDate>Tue, 26 Aug 2025 10:25:45 +0800</pubDate><description><![CDATA[本文介绍了在Ubuntu 20.04环境下使用luvcview工具进行UVC摄像头抓图的安装过程。首先从GitHub下载luvcview源码并编译，发现缺少SDL依赖后，详细记录了SDL2的安装步骤，包括解决libxext-dev依赖问题。最后完成编译并给出了使用命令示例。整个流程涵盖了从源码获取到依赖解决的具体操作步骤，为在Linux系统下使用UVC摄像头提供了简明指南。]]></description><category></category></item><item><title><![CDATA[Media Controller API 介绍]]></title><link>https://blog.csdn.net/wuxiwang/article/details/150445477</link><guid>https://blog.csdn.net/wuxiwang/article/details/150445477</guid><author>wuxiwang</author><pubDate>Sat, 16 Aug 2025 13:35:39 +0800</pubDate><description><![CDATA[本文介绍了Linux内核中的Media Controller API，该API在V4L2基础上提供了更灵活的pipeline配置方式。通过将硬件模块化配置从内核空间转移到用户空间，简化了传统V4L2驱动代码或dts内核配置方式，使硬件功能链路的灵活配置在用户空间即可完成。文章作者基于kernel.org文档对Media Controller API框架进行了翻译，包括介绍、设备模型、媒体图元素表示类型和标志、请求API等核心章节，旨在帮助开发者理解该API的整体架构。相关翻译内容已发布在CSDN博客上。]]></description><category></category></item><item><title><![CDATA[Media Controller API 4 Request API]]></title><link>https://blog.csdn.net/wuxiwang/article/details/150401738</link><guid>https://blog.csdn.net/wuxiwang/article/details/150401738</guid><author>wuxiwang</author><pubDate>Thu, 14 Aug 2025 22:59:16 +0800</pubDate><description><![CDATA[摘要： Linux内核的Request API为V4L2设计，支持现代设备（如无状态编解码器、复杂相机管道）实现高效帧级协作。该API允许将媒体管道配置与特定缓冲区绑定，用户可提前提交多组差异化请求，避免传统逐帧刷新配置的低效问题。通过媒体控制器设备节点分配请求文件描述符（MEDIA_IOC_REQUEST_ALLOC），配置和缓冲区通过标准ioctl关联请求，最终通过MEDIA_REQUEST_IOC_QUEUE提交。注意：内存设备仅支持输出缓冲区的请求，且禁止混合使用直接队列与请求队列模式。控制参数不受]]></description><category></category></item><item><title><![CDATA[Media Controller API 3. Types and flags used to represent the media graph elements翻译]]></title><link>https://blog.csdn.net/wuxiwang/article/details/148049295</link><guid>https://blog.csdn.net/wuxiwang/article/details/148049295</guid><author>wuxiwang</author><pubDate>Sun, 18 May 2025 21:13:50 +0800</pubDate><description><![CDATA[它在接收端从一种类型的输入视频总线（HDMI、eDP、MIPI CSI-2等）接收视频帧，并在输出端将其输出到另一种类型的输出视频总线（eDP、MIPI CSI-2、并行等）。模拟视频解码器，视频解码器的基本功能是接受来自各种来源的模拟视频，如广播、DVD 播放器、摄像机和录像机，格式为 NTSC、PAL、SECAM 或 HD，将流分离为其组成部分，亮度和色度，并以某种数字视频标准输出，带有适当的定时信号。能够进行视频合成的实体必须至少有两个接收端和一个输出端，并将输入视频帧合成到输出视频帧上。]]></description><category></category></item><item><title><![CDATA[Media Controller API 2. Media device model 翻译]]></title><link>https://blog.csdn.net/wuxiwang/article/details/147979900</link><guid>https://blog.csdn.net/wuxiwang/article/details/147979900</guid><author>wuxiwang</author><pubDate>Thu, 15 May 2025 12:25:56 +0800</pubDate><description><![CDATA[它可以对应各种逻辑块，如物理硬件设备（例如 CMOS 传感器）、逻辑硬件设备（SoC 图像处理管道中的构建块）、DMA 通道或物理连接器。实体产生的数据（不仅限于视频）从实体的输出流向一个或多个实体的输入。例如，这可以表示特定的相机传感器和镜头控制器形成一个物理模块，意味着这个镜头控制器驱动该相机传感器的镜头。是两个 Pad 之间的单向点对点连接，可以在同一实体上，也可以在不同实体上。是 Linux 内核的用户空间 API 接口的图表示，像设备节点或控制图中一个或多个实体的 sysfs 文件。]]></description><category></category></item><item><title><![CDATA[Media Controller API 1. Introduction 翻译]]></title><link>https://blog.csdn.net/wuxiwang/article/details/147978626</link><guid>https://blog.csdn.net/wuxiwang/article/details/147978626</guid><author>wuxiwang</author><pubDate>Thu, 15 May 2025 12:15:07 +0800</pubDate><description><![CDATA[独立的功能，即使被实现在同样的硬件中，能被建模成独立的设备。这些设备之间的关系（当被用作一个webcam，最终用户不能手动的选用相关的USB麦克风），不会直接通过驱动对应用程序显示可用，但是可以从sysfs检索。随着新硬件暴露的参数越来越多，驱动程序需要根据有限的信息猜测应用程序真正需要什么，从而实现在用户空间中属于策略的内容。随着越来越多的SoC设备被引入，当前的方法无法被扩展。设备拓扑争辩的越来越复杂，且不能经常被表示成一个树形结构。硬件模块在不通的功能中被共享，导致看似无关的设备之间产生了依赖关系。]]></description><category></category></item><item><title><![CDATA[devmem源码解读]]></title><link>https://blog.csdn.net/wuxiwang/article/details/144137169</link><guid>https://blog.csdn.net/wuxiwang/article/details/144137169</guid><author>wuxiwang</author><pubDate>Fri, 29 Nov 2024 15:05:20 +0800</pubDate><description><![CDATA[因为开发视频流驱动程序，发现在驱动里面加入读写硬件模块的寄存器，然后通过log输出，或者通过proc和sysfs的文件节点输出，如果链路一长，每个模块都要增加这样的输出，工作量还是比较大的，而且随时都要修改。在网上发现linux上有基于mmap的 devmem这样的工具文章的介绍（如下），使用这样的方式来访问，不用增加如何代码实现直接操作寄存器，还是比较方便的。实际源码在output/build/busybox-xxxx/miscutils/devmem.c,列举如下。]]></description><category></category></item><item><title><![CDATA[V4L2 sub-devices 翻译]]></title><link>https://blog.csdn.net/wuxiwang/article/details/143605272</link><guid>https://blog.csdn.net/wuxiwang/article/details/143605272</guid><author>wuxiwang</author><pubDate>Thu, 07 Nov 2024 19:07:03 +0800</pubDate><description><![CDATA[如果sub-device实现了下游pad，subdev驱动可以设置v4l2_subdev_pad_ops的link_validate字段，来提供自身link的validation功能。如果link_validate op没有设置，默认的v4l2_subdev_link_validate_default将被使用。如果需要集成media框架，你必须通过media_entity_pads_init初始化嵌入到v4l2_subdev结构中的 media_entity`结构，如果这个entity 有pad。]]></description><category></category></item><item><title><![CDATA[HI3516DV500 相机部分架构初探]]></title><link>https://blog.csdn.net/wuxiwang/article/details/142862717</link><guid>https://blog.csdn.net/wuxiwang/article/details/142862717</guid><author>wuxiwang</author><pubDate>Sun, 13 Oct 2024 10:30:59 +0800</pubDate><description><![CDATA[MIPI Rx 支持 MIPI D-PHY、LVDS（Low-Voltage Differential Signal）、HiSPi（HighSpeed Serial Pixel Interface）等串行视频信号输入，串行视频接口可以提供更高的传。⚫ 单路最多支持 4-Lane LVDS/ sub-LVDS /HiSPi 接口，最大支持 1.5Gbps/Lane。该芯片最高支持 2 路 sensor。输入，支持最高 5M@30fps 的 ISP 图像处理能力，支持 2F WDR、多级降噪、六轴防。]]></description><category></category></item><item><title><![CDATA[展锐平台的手机camera 系统isptool 架构]]></title><link>https://blog.csdn.net/wuxiwang/article/details/142450893</link><guid>https://blog.csdn.net/wuxiwang/article/details/142450893</guid><author>wuxiwang</author><pubDate>Mon, 23 Sep 2024 11:24:10 +0800</pubDate><description><![CDATA[展锐平台的isptool 主要用于支持展锐各代isp 芯片的各效果模块快速tuning和参数打包。具体需要：一、工具段能在线实时预览到调试sensor经过isp 处理后的图像，也就是各模块的参数在当下实时生效，通过工具能在PC 上在线观看到效果二、工具能进行拍照，生成过程中不同格式的图片，包括raw图，yuv图，jpeg图三种格式。其中jpeg 图中的exif 暂存了tuning效果模块的参数。]]></description><category></category></item></channel></rss>