RK3588-HDMIRX

文章介绍了在RK3588芯片平台上通过HDMIRX模块开发HDMIIN功能的方法,包括dts配置以设置HDMIRX控制器和预留内存,以及如何调试和获取HDMI输入源的分辨率信息,使用v4l2-ctl命令进行抓帧。
摘要由CSDN通过智能技术生成

1. 简介

  • HDMI IN功能可以通过桥接芯⽚的⽅式实现,将HDMI信号转换成MIPI信号接收,RK3588芯⽚平台⾃带
    HDMI RX模块,可以直接接收HDMI信号。
  • 本篇文章主要介绍在RK3588 平台通过HDMI RX模块开发实现HDMI IN功能的⽅法。

2. dts配置

2.1 HDMI RX控制器配置

/* Should work with at least 128MB cma reserved above. */ 
&hdmirx_ctrler { 
	status = "okay"; 
	
	/* Effective level used to trigger HPD: 0-low, 1-high */ 
	hpd-trigger-level = <1>; 
	hdmirx-det-gpios = <&gpio1 RK_PC6 GPIO_ACTIVE_LOW>; 
	pinctrl-names = "default"; 
	pinctrl-0 = <&hdmim1_rx &hdmirx_det>; 
}; 

&pinctrl {
	hdmirx {
		hdmirx_det: hdmirx-det {
			rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};
}

2.2 预留内存

RK3588 HDMI RX模块只能使用物理连续内存,需要预留至少128MB的CMA内存:
注:按3840x2160分辨率,RGB888图像格式,4个轮转Buffer计算。

/* If hdmirx node is disabled, delete the reserved-memory node here. */ 
reserved-memory { 
	#address-cells = <2>; 
	#size-cells = <2>; 
	ranges; 
	
	/* Reserve 128MB memory for hdmirx-controller@fdee0000 */ 
	cma { 
		compatible = "shared-dma-pool"; 
		reusable; 
		reg = <0x0 (256 * 0x100000) 0x0 (128 * 0x100000)>; 
		linux,cma-default; 
	}; 
};

3. 调试

HDMI-IN 设备在内核中会被注册为 video 设备,生成的节点如:/dev/video20,可以通过 v4l2-ctl 命令来获取设备信息和抓帧。

  • 查看所有video节点

    ls /dev/video* 
    
  • 获取设备信息,查找rk_hdmirx设备对应的是哪个video节点

     v4l2-ctl -d /dev/video* -D      例: v4l2-ctl -d /dev/video20 -D 
    

    使⽤v4l2-ctl -d参数指定vidoe节点,-D命令查看节点信息,通过Driver name确认哪个是节点是rk_hdmirx 设备:

    在这里插入图片描述

  • 获取外部设备输入的分辨率信息

    v4l2-ctl -d /dev/video20  -V
    

    在这里插入图片描述
    可以看出此时输入源的像素格式为 ’ NV24 ’ 。分辨率为 1920 * 1080

    抓图:根据输入源的格式和分辨率设置好抓图命令的格式和分辨率: ( 这里像素格式为 ’ NV24 ’ 。分辨率为 1920 * 1080 )

    v4l2-ctl -d /dev/video20 --set-fmt-video=width=1920,height=1080,pixelformat=NV24 --stream-mmap=3 --stream-skip=100 --stream-to=/oem/NV24.yuv --stream-count=1 --stream-poll
    
  • 在 PC 端查看抓取到的帧文件

    将抓取到的NV24.yuv图片可adb pull到PC端,通过7yuv、YUView等⼯具软件查看:

    adb pull /oem/NV24.yuv ./  
    
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
### 回答1: Windows Shell编程是一种用于Microsoft Windows操作系统的脚本编程语言。在这个领域,有一本非常著名和有用的参考书籍,名为“Windows Shell编程(Windows Shell Programming)”。 这本书是一本PDF格式的电子书,它提供了关于Windows Shell编程的详细指导和解释。通过阅读这本书,读者可以学习到如何使用Windows Shell命令和脚本语言来自动化和批处理各种任务。这对于那些想要提高他们的工作效率,简化操作流程的用户来说非常有用。 这本书首先介绍了Windows Shell编程的基本概念和术语,然后深入讲解了各种不同的Shell命令和脚本语言,以及如何编写和运行它们。读者将学习如何使用命令提示符、PowerShell和批处理程序来操作文件和文件夹、管理系统设置、自动化任务和脚本编程等等。 此外,这本书还提供了一些实际的案例和示例,以帮助读者更好地理解和应用所学到的知识。它还探讨了一些高级主题,如通过Shell程序与其他编程语言(如Python、C++等)进行交互。 总的来说,这本《Windows Shell编程》书籍对于那些希望深入了解Windows Shell编程,学习如何有效利用命令行工具和脚本语言来完成各种任务的读者来说是一本非常有价值的资源。无论是初学者还是有经验的开发者,都可以从中获得宝贵的知识和技能。这本书的PDF版使得读者可以方便地在各种设备上阅读和学习,是一本不可或缺的参考书籍。 ### 回答2: Windows Shell编程是指通过使用Windows Shell(如Command Prompt或PowerShell)来编写和执行一系列的命令和脚本。Windows Shell编程可以帮助用户自动化日常任务、管理系统配置和执行一些高级的操作。 虽然没有找到直接针对Windows Shell编程的完整的PDF,但是可以通过互联网上的资源来学习和掌握这个领域。 首先,你可以在微软官方网站上找到一些有关Windows Shell编程的基本信息和指南。这些官方文档通常提供了基本的概念解释、示例代码和命令的详细说明。通过这些文档,你可以了解如何使用不同的命令和脚本来完成任务,并了解一些高级的功能和技巧。 另外,你可以在互联网上找到一些编写和使用Windows Shell编程的教程和指南。这些资源通常由经验丰富的开发者或Windows Shell编程的专家提供。这些教程可能包含更实际的示例代码、技巧和最佳实践。 此外,还可以通过参考一些专业的书籍或在线文档来学习Windows Shell编程。这些资源通常提供了更丰富和深入的知识,从基础到高级的内容都有所涵盖。阅读这些书籍或文档可以帮助你更全面地理解Windows Shell编程,并且掌握一些实用的技巧和技术。 总而言之,虽然没有找到特定的PDF资源,但是你可以通过微软官方文档、互联网上的教程以及专业书籍来学习和掌握Windows Shell编程。通过积极学习和实践,你将能够成为一个熟练的Windows Shell编程者。 ### 回答3: Windows Shell编程是Windows操作系统中用于控制和管理计算机的命令行界面。通过编写Shell脚本,用户可以自动化完成各种任务,如文件和文件夹操作、系统配置和管理、程序运行等。随着Windows操作系统的发展,微软也提供了丰富的Shell编程工具和命令,使得编写Shell脚本变得更加方便和强大。 当前,有许多PDF文档提供了关于Windows Shell编程的指南和教程。这些文档主要介绍了Shell脚本的基本语法、常用命令和功能,以及如何在Windows环境中进行高级的脚本编程。这些PDF文档通常包含了示例代码和演示,帮助用户更好地理解和掌握Shell编程技巧。 通过学习和掌握Windows Shell编程,用户可以更加高效地进行系统管理和任务自动化。对于系统管理员和开发人员来说,掌握Shell编程技术是非常有帮助的,可以简化工作流程,提高工作效率。同时,Shell编程也可以被用于编写自定义的工具和脚本,使得用户能够根据自己的需求进行个性化的系统配置和管理。 综上所述,Windows Shell编程是一种在Windows操作系统中控制和管理计算机的方法,存在许多PDF文档提供了关于Shell编程的指南和教程,帮助用户学习和使用Shell脚本的基本语法和命令。通过掌握Shell编程,用户可以实现系统自动化和任务管理,提高工作效率,以及编写自定义工具和脚本。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式Linux开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值