<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[小伟的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/m0_51247005</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; m0_51247005]]></copyright><item><title><![CDATA[3588平台AMP相关知识]]></title><link>https://blog.youkuaiyun.com/m0_51247005/article/details/162395339</link><guid>https://blog.youkuaiyun.com/m0_51247005/article/details/162395339</guid><author>m0_51247005</author><pubDate>Thu, 30 Jul 2026 09:00:25 +0800</pubDate><description><![CDATA[在 RPMsg 中，主-从核心通过中断和共享内存的方式进行通信，内存的管理由主核负责，在每个通信方向上都有 USED 和 AVAIL 两个缓冲区，这两个缓冲区可以按照 RPMsg 的消息格式分成一块一块，由这些内存块可以链接成一个环。，由于 RPMsg还带有16 Bytes的数据头，因此一次性传输的最大数据量为 496 Bytes，详细可以参考drivers/rpmsg/virtio_rpmsg_bus.c。CPU0 上，先加载到 U-Boot。MCU 中，所有的地址信息，都是以自生加载地址为偏移的。]]></description><category></category></item><item><title><![CDATA[内核写硬盘驱动代码]]></title><link>https://blog.youkuaiyun.com/m0_51247005/article/details/162306994</link><guid>https://blog.youkuaiyun.com/m0_51247005/article/details/162306994</guid><author>m0_51247005</author><pubDate>Wed, 29 Jul 2026 08:29:31 +0800</pubDate><description><![CDATA[原来，open打开文件write写入保存为raw格式（142）写硬盘，open打开sda写（112）上面是内存到内存的dma驱动程序。内核中dma写硬盘（400）]]></description><category></category></item><item><title><![CDATA[更改xdma驱动性能提升44%]]></title><link>https://blog.youkuaiyun.com/m0_51247005/article/details/162306537</link><guid>https://blog.youkuaiyun.com/m0_51247005/article/details/162306537</guid><author>m0_51247005</author><pubDate>Tue, 28 Jul 2026 08:34:22 +0800</pubDate><description><![CDATA[从应用层获取虚拟地址，然后使用 scatterlist 分页（因为应用层申请的内存是不连续的，必须要分页，让dma看起来是连续的内存）在xdma_xfer_submit_xw 里面的 xdma_init_request_xw 函数申请连续物理地址。char_sgdma_read_write 里面，把长度和地址传到xdma_xfer_submit。使用dma_alloc_coherent申请内存，直接使用80000000是一样的速度。上面的计算，只是计算了搬运的过程时间（所以应用层计算800，内核988）]]></description><category></category></item><item><title><![CDATA[uboot相关知识及裁剪]]></title><link>https://blog.youkuaiyun.com/m0_51247005/article/details/162395182</link><guid>https://blog.youkuaiyun.com/m0_51247005/article/details/162395182</guid><author>m0_51247005</author><pubDate>Mon, 27 Jul 2026 08:37:39 +0800</pubDate><description><![CDATA[3588使用的是v2017（next-dev）内核版本：v2017要求RK内核版本 >= 4.4支持功能有⽀持 RK Android 固件启动；⽀持 Android AOSP 固件启动；⽀持 Linux Distro 固件启动；⽀持 Rockchip miniloader 和 SPL/TPL两种 Pre-loader 引导；⽀持 LVDS、EDP、MIPI、HDMI、CVBS、RGB 等显⽰设备；]]></description><category></category></item><item><title><![CDATA[网卡驱动相关知识及移植]]></title><link>https://blog.youkuaiyun.com/m0_51247005/article/details/162306144</link><guid>https://blog.youkuaiyun.com/m0_51247005/article/details/162306144</guid><author>m0_51247005</author><pubDate>Fri, 24 Jul 2026 08:39:13 +0800</pubDate><description><![CDATA[在 10M/100M/1000M 下时钟分别是2.5M， 25M 和 125M。MII 接口的传输速率为10Mbps 或 100Mbps， 在 100Mbps 下时钟为 25M， 在 10Mbps 下钟为 2.5M。，导致数据和时钟 “不同步”（比如数据到了，时钟还没到，或反之），最终引发数据包丢包、CRC 错误。的，属于 “推挽输出”，外部上下拉会干扰时钟信号的完整性（比如导致时钟边沿变缓、幅值异常），所以必须配置为无上下拉。10M/100M/1000M 下时钟分别是 2.5M， 25M 和 125M。]]></description><category></category></item><item><title><![CDATA[isp基础知识]]></title><link>https://blog.youkuaiyun.com/m0_51247005/article/details/162898894</link><guid>https://blog.youkuaiyun.com/m0_51247005/article/details/162898894</guid><author>m0_51247005</author><pubDate>Thu, 23 Jul 2026 09:42:23 +0800</pubDate><description><![CDATA[要拍多个标准光源，例如 HZ、A、CWF、TL84、D50、D65、D75。理想情况下 Gr 和 Gb 应该一致，但由于 Sensor 行列结构、读出电路、镜头入射角、噪声等因素，两者可能存在差异。RAW 域降噪主要处理插值前噪声，但经过 Demosaic、CCM、Gamma 后，YUV 域仍然会有亮度噪声和色度噪声。LSC 会把画面划分成网格，为 R、Gr、Gb、B 四个通道分别生成增益表。AE 的目标不是简单“让画面变亮”，而是在不同场景下选择合适曝光，让画面亮度、运动清晰度、噪声、动态范围达到平衡。]]></description><category></category></item><item><title><![CDATA[CSI-2 详解]]></title><link>https://blog.youkuaiyun.com/m0_51247005/article/details/162635252</link><guid>https://blog.youkuaiyun.com/m0_51247005/article/details/162635252</guid><author>m0_51247005</author><pubDate>Wed, 22 Jul 2026 08:32:04 +0800</pubDate><description><![CDATA[物理层（PHY Layer）PHY层指定了传输媒介，在电气层面从串行bit流中捕捉“0”与“1”，同时生成SoT与EoT等信号。该层主要用于不同场景对数据的处理过程，对于发送方，多为camera生成数据，对于接收方，多为SOC对数据进行处理。一帧必须以FS包开始，以FE包结束，中间为帧高度个数的LP包，每个包含一行图像数据。RAW需要转RGB，所以cif拿到的图像，一般都是不能直接使用的（需要isp处理），无论何种类型的包，均由SoT信号开始，EoT信号结束。WC=2400，打包规则相关，下面详细说明。]]></description><category></category></item><item><title><![CDATA[D-PHY 详解]]></title><link>https://blog.youkuaiyun.com/m0_51247005/article/details/162635133</link><guid>https://blog.youkuaiyun.com/m0_51247005/article/details/162635133</guid><author>m0_51247005</author><pubDate>Tue, 21 Jul 2026 08:42:35 +0800</pubDate><description><![CDATA[基于4.0 Gbps比较，C-PHY 的导线更少（减少多达 40%）、更低的切换速率/通道（降低 12.5%）、更低的功耗（降低 ~20-50%）、更少的通道数量，因此相同 Gbps 的面积更小。注册回调函数rockchip_csi2_dphy_notifier_bound，会进行第一次设置通道数等。硬件可以根据需求在两种模式间切换，兼顾C-PHY的高带宽和D-PHY的广泛兼容性。开启流 csi2_dphy_s_stream ，会更新前面回调函数设置的东西。C-PHY 是一种更新、更复杂的 PHY。]]></description><category></category></item><item><title><![CDATA[RGB 和 RAW(RG10) 详解]]></title><link>https://blog.youkuaiyun.com/m0_51247005/article/details/162635360</link><guid>https://blog.youkuaiyun.com/m0_51247005/article/details/162635360</guid><author>m0_51247005</author><pubDate>Mon, 20 Jul 2026 10:58:49 +0800</pubDate><description><![CDATA[研究发现，人眼对绿色比较敏感，所以增强对绿色的采样，每种格式种存在两个G分量。其中每个分量代表一个piexl，所以GR/BG代表4个piexl，就表示sensor上面的4个晶体管，每个晶体管只采集一个颜色分量，然后通过插值计算出每个piexl的其他分量。RGBA（ARGB）中的一种，一位用于表示透明度。0完全透明，1完全不透明。每个像素用16比特位表示，占2个字节，RGB分量都使用5位(最高位不用)RGGB、BGGR、GRBG、GBRG（取决于 Sensor 物理设计）]]></description><category></category></item><item><title><![CDATA[YUV图像格式汇总]]></title><link>https://blog.youkuaiyun.com/m0_51247005/article/details/161723607</link><guid>https://blog.youkuaiyun.com/m0_51247005/article/details/161723607</guid><author>m0_51247005</author><pubDate>Fri, 17 Jul 2026 09:54:34 +0800</pubDate><description><![CDATA[Y明亮度，UV彩色信息显示器上的一个像素点对应图像里的一个像素每个像素的色彩由红、绿、蓝三原色混合实现YUV444YUV422YUV422pYV16：                YYYYYYYY VVVV UUUU    （V前U后）YUV422p或I422或YU16： YYYYYYYY UUUU VVVV    （U前V后）YUV422spNV61：YYYYYYYY VUVUVUVU    （V前U后）NV16：YYYYYYYY UVUVUVUV    （U前V后）]]></description><category></category></item><item><title><![CDATA[v4l2驱动框架——图像是如何从内核流向应用层]]></title><link>https://blog.youkuaiyun.com/m0_51247005/article/details/161680407</link><guid>https://blog.youkuaiyun.com/m0_51247005/article/details/161680407</guid><author>m0_51247005</author><pubDate>Thu, 16 Jul 2026 08:32:47 +0800</pubDate><description><![CDATA[在cif里面，由cif去确定是直出还是isp经过裁剪cif这里是直接硬件丢弃不需要的数据减少带宽，isp是裁剪不一样csi接口这个 31.42ms 是一帧的总时间，包含了：传感器曝光（可能 5-10ms）MIPI 传输（1080p@30fps 约 8-10ms）,分辨率？传输大小？DMA 传输（与 MIPI 并行，约 8-10ms）下面计算其实是4800 × 1664大小数据，因为
HTS = 0x12c0 = 4800（每行总像素数）
VTS = 0x0680 = 1664（总行数）


MIPI ID是]]></description><category></category></item><item><title><![CDATA[v4l2驱动框架——isp应用层]]></title><link>https://blog.youkuaiyun.com/m0_51247005/article/details/161681385</link><guid>https://blog.youkuaiyun.com/m0_51247005/article/details/161681385</guid><author>m0_51247005</author><pubDate>Wed, 15 Jul 2026 08:35:12 +0800</pubDate><description><![CDATA[解析media文件，找到isp的那一个，解析出来对应的文件。读取应用层的json文件。订阅开启和关闭流事件。]]></description><category></category></item><item><title><![CDATA[v4l2驱动框架——应用层to内核]]></title><link>https://blog.youkuaiyun.com/m0_51247005/article/details/161680298</link><guid>https://blog.youkuaiyun.com/m0_51247005/article/details/161680298</guid><author>m0_51247005</author><pubDate>Tue, 14 Jul 2026 15:38:34 +0800</pubDate><description><![CDATA[ioctl


位置 rkisp_register_stream_vdev 函数注册







查找流程
申请缓存


执行cif的后，去执行vb2_queue的




申请流程，下面是cif里面的，isp也差不多




申请的大小限制了64个缓冲区缓冲区结构体





开启流


VIDIOC_STREAMON





v4l_vb2q_enable_media_source
rkisp_start_streaming







rkisp_alloc_common_dummy_buf

]]></description><category></category></item><item><title><![CDATA[v4l2驱动框架——isp驱动]]></title><link>https://blog.youkuaiyun.com/m0_51247005/article/details/161680073</link><guid>https://blog.youkuaiyun.com/m0_51247005/article/details/161680073</guid><author>m0_51247005</author><pubDate>Mon, 13 Jul 2026 08:51:06 +0800</pubDate><description><![CDATA[ISP核心子设备)，这个有v4l-subdev4// 这是最核心的图像信号处理器// 功能：去马赛克、颜色校正、噪声抑制、锐化等// 设备节点：/dev/v4l-subdevX (通常为subdev0)// 包含：输入pad（接收CSI数据）、输出pad（输出到stream）CSI子设备)，不注册节点，（3588是V3.1）// MIPI CSI-2接收器// 功能：接收传感器通过MIPI接口发送的图像数据// 设备节点：/dev/v4l-subdevX (通常为subdev1)]]></description><category></category></item><item><title><![CDATA[v4l2驱动框架——cif驱动]]></title><link>https://blog.youkuaiyun.com/m0_51247005/article/details/161679859</link><guid>https://blog.youkuaiyun.com/m0_51247005/article/details/161679859</guid><author>m0_51247005</author><pubDate>Fri, 10 Jul 2026 10:13:26 +0800</pubDate><description><![CDATA[dev设备文件 4+4+3MIPI接口：初始化4个MIPI流通道默认是nv12，但是13850输出只支持：SBGGR10 (10位Bayer格式)所以要使用，只能先设置格式初始化4个缩放通道工具视频设备初始化3┌─→ video0 (主通道0) [ENABLED]├─→ video1 (主通道1) [ENABLED]├─→ video2 (主通道2) [ENABLED]├─→ video3 (主通道3) [ENABLED]├─→ video4 (缩放0) [ENABLED]]]></description><category></category></item><item><title><![CDATA[v4l2驱动框架——csi2驱动]]></title><link>https://blog.youkuaiyun.com/m0_51247005/article/details/161679689</link><guid>https://blog.youkuaiyun.com/m0_51247005/article/details/161679689</guid><author>m0_51247005</author><pubDate>Thu, 09 Jul 2026 16:06:09 +0800</pubDate><description><![CDATA[csi2[CSI 控制器] 职责：1. 协议解析：解包 MIPI CSI-2 数据包（长包/短包）2. 虚拟通道：支持最多 4 个虚拟通道（VC0-VC3）3. 数据类型识别：RAW8/RAW10/YUV422/RGB888 等4. 数据重组：将 Lane 交错的数，据重组成完整的图像帧5. ECC/CRC 校验：检测传输错误6. 帧/行同步：识别帧起始(FS)、帧结束(FE)、行起始(LS)、行结束(LE)提供opt寄存器一些操作功能函数初始化media。]]></description><category></category></item><item><title><![CDATA[v4l2驱动框架——dphy驱动]]></title><link>https://blog.youkuaiyun.com/m0_51247005/article/details/161678713</link><guid>https://blog.youkuaiyun.com/m0_51247005/article/details/161678713</guid><author>m0_51247005</author><pubDate>Wed, 08 Jul 2026 08:28:42 +0800</pubDate><description><![CDATA[D-PHY是物理层，不处理图像内容[MIPI PHY] 职责：1. 信号转换：将传感器发来的差分电信号（D-PHY/C-PHY）转换为数字信号2. 时钟管理：提取并恢复数据时钟3. 信号调理：阻抗匹配、信号均衡、去抖4. 电气特性：处理低压差分信号（LVDS），电压通常 200mV-300mV5. 高速传输：支持 1.5Gbps - 2.5Gbps 每通道提供opt寄存器一些操作功能函数初始化media1个entity(dphy)，1个pads输出类型，1个pads输入类型。]]></description><category></category></item><item><title><![CDATA[v4l2驱动框架——ov13850驱动]]></title><link>https://blog.youkuaiyun.com/m0_51247005/article/details/161678011</link><guid>https://blog.youkuaiyun.com/m0_51247005/article/details/161678011</guid><author>m0_51247005</author><pubDate>Tue, 07 Jul 2026 11:06:51 +0800</pubDate><description><![CDATA[还有一个vm149c.c ，是sd子设备，负责对焦提供opt寄存器一些操作功能函数初始化ctrl_handler，media4个操作ctrl_handler1个entity(ov13850)，1个pads输出类型ctrl_handler 都有自己的操作函数media 有自己的操作函数（默认的）解析注册asd，后续match匹配，解析出来的就是vm149c对焦异步注册框架初始化，有2个全局链表最后把每一个asd放入到自己notifier的waiting把自己的notifier放入。]]></description><category></category></item><item><title><![CDATA[v4l2驱动框架——videobuf2]]></title><link>https://blog.youkuaiyun.com/m0_51247005/article/details/161676171</link><guid>https://blog.youkuaiyun.com/m0_51247005/article/details/161676171</guid><author>m0_51247005</author><pubDate>Mon, 06 Jul 2026 08:41:32 +0800</pubDate><description><![CDATA[定义并初始化 vb2_mem_ops 结构体，这是 videobuf2 框架的内存操作接口。的核心组件，它为视频设备驱动提供了一套完整的内存管理和流式 I/O 实现。是 Linux V4L2 框架中负责。]]></description><category></category></item><item><title><![CDATA[v4l2驱动框架——media]]></title><link>https://blog.youkuaiyun.com/m0_51247005/article/details/161675839</link><guid>https://blog.youkuaiyun.com/m0_51247005/article/details/161675839</guid><author>m0_51247005</author><pubDate>Sat, 04 Jul 2026 16:56:22 +0800</pubDate><description><![CDATA[用于运行时数据流的管理，一个 V4L2 device 下属可能有非常多同类型的子设备subdev（dphy，csi，isp这些），那么在设备运行的时候我怎么知道我的数据流需要用到哪一个类型的哪一个子设备呢。这个时候就轮到 media_device 出手了，它为这一坨的子设备建立一条虚拟的连线，建立起来一个运行时的 pipeline（管道），并且可以在运行时动态改变、管理接入的设备。media_link：link在两个pad之间定向连接，数据由source pad 流向 sink pad。]]></description><category></category></item></channel></rss>