自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 drm driver

display_subsystem” probe 的dts图:主要是vop节点,vop节点再通过remote-ep链接encoder-hdmi/dp。component_list, 每个组件probe时都以component挂载在list上,积木块。aggregate-device, 最终的component-master设备,积木作品。其他组件:hdmi-bind,dw-dp-bind,dsi2-bind,…drm_device, 全局唯一的当前显示设备,管理所有有关的组件。

2025-07-19 14:18:47 68

原创 hsync/vsync/porch

极性:有正极性和负极性,信号中高电平时间长,低电平时间短就是负极性,反之就是正极性,前图的LCD信号图中的Hsync就是负极性,VGA显示器输入信号图中的Hsync是正极性;当分辨率/刷新率偏离标准时(如自定义分辨率),VESA的CVT(Coordinated Video Timings)算法会动态计算Porch值,而CEA则严格遵循预定义表格。视频信号的 水平频率(H-Freq) 是显示时序中的关键参数,其计算公式与视频时序参数直接相关。VESA:通常使用负极性同步(H-/V-)

2025-07-19 14:07:26 137

原创 hdmi hpd

Source设备检测TMDS是否被上拉到3.3V,有部分设备会检测所有的TMDS信号被上拉才输出TMDS信号,部分设备必须要检测到CLOCK上拉才输出信号,部分设备只要检测到某对TMDS被上拉即输出该上拉的TMDS。如果Sink的EDID内容发生改变,或者需要切换HDMI通道需要Source重新读取EDID,那么HPD需要发出一个不短于100ms时间的低电平信号,低电平再次变为高电平时,Source将重新读取EDID。需要提醒一下,我们HPD要有效,肯定是+5V电源的配电开关要使能。

2025-07-19 13:57:14 112

原创 cvt vesa

VESA 1080p60:为PC优化,效率优先,直接驱动像素。CEA 1080p60:为视频兼容性设计,保留电视传统特性。关键差异:消隐区间、同步极性、量化范围和元数据。实际应用中需确保源设备与显示器的标准匹配。

2025-07-19 13:54:11 144

原创 HDR 之 libdrm 输出测试

gst-plugins-bad 提供了 h264parse、h265parse 等插件,可以解析 HDR 元数据。配置 DRM 显示模块:将 HDR 元数据传递给 DRM 显示模块,以正确显示 HDR 内容。解析 HDR 元数据:从视频流中提取 HDR 元数据(如亮度、色彩空间等)。DRM 显示模块需要接收 HDR 元数据,以正确配置显示器的 HDR 模式。h265parse:解析 H.265 视频流中的 HDR 元数据。:将 HDR 元数据设置到 DRM 连接器。:创建 HDR 元数据的 Blob。

2025-07-19 13:43:37 251

原创 HDR 之colorimetric & eotf

Colorimetric 定义了图像的色彩范围和准确性。EOTF 定义了图像的亮度和对比度表现。两者共同决定了图像的色彩和亮度表现,特别是在 HDR 显示中尤为重要。在实际应用中,Colorimetric 和 EOTF 信息通常嵌入在视频流的元数据中,显示器需要根据这些信息进行配置,以正确显示图像。Perceptual Quantizer(PQ)‌是一种高动态范围(HDR)编码方法,由SMPTE(电影和电视工程师协会)与Dolby Laboratories联合开发。

2025-07-19 11:48:27 421

原创 sourceinsight 解析kernel源码

_printf(x,x)是linux kenrel内的特别宏用户检查功能,一般kernel开发者不用关心这个,但是si默认把它当作函数来解析,导致实际的devm_kvasprintf被认为是字符串,解析不出来。Linux内核中有很多宏定义,sourceinsight不识别,导致解析出问题,经常是灰色的,无法跳转与分析调用链,怎么办?使用si的.com宏解析文件,让si忽略他们或者预先解析,这样就不影响function解析。修改:“Source Insight 4.0\c.tom”

2025-07-19 11:18:10 113

原创 【无标题】

此外,它还支持多种存储介质(如 eMMC、SD 卡、Raw NAND、UBIFS、NOR 和 SPI-NOR 闪存)的更新,并提供了流式传输模式,避免了临时文件的复制,从而节省了资源。它提供了完整性,签名验证,固件加密等功能,保证了升级固件的安全性和私密性。下面的文件就是各个固件文件了。swupdate是一个基于嵌入式的Linux平台的升级服务框架程序,它提供了分区升级,文件升级,差分升级(补丁应用)功能,并提供了开放接口,方便用户添加自定义升级处理函数。该文件描述了升级包归档文件中的文件信息和升级信息。

2025-07-19 10:48:56 91

原创 linux驱动模型发展背景

近年来,Linux 驱动开发还在不断演进,特别是在容器化和微服务架构的兴起下,Linux 内核也在探索如何更好地支持虚拟化技术(如 KVM、Xen)和容器(如 Docker、Kubernetes)。此外,为了提高系统的安全性,Linux 内核也在不断改进其驱动模型,例如通过引入更严格的权限控制和沙箱机制来隔离不同驱动的运行环境。随着硬件的日益复杂,Linux 内核引入了更高级的抽象层来管理硬件设备,特别是通过引入总线抽象层(如 PCI、USB、I2C 等)和设备模型。驱动框架和总线抽象(2005年以后)

2025-07-19 10:34:21 127

原创 DRM 从app到libdrm,到/dev/dri/card0

内核 DRM 驱动实现了一系列 IOCTL 接口(如 `DRM_IOCTL_MODE_GETRESOURCES`、`DRM_IOCTL_MODE_SETCRTC`)。用户空间程序通过 `libdrm` 打开 DRM 设备文件(如 `/dev/dri/card0`),获取文件描述符。- `drmOpen` 是 `libdrm` 提供的函数,用于打开 DRM 设备。- `libdrm` 通过 `ioctl` 系统调用与内核 DRM 驱动交互。通过 `libdrm` 设置显示模式(如分辨率、刷新率)。

2025-07-19 10:27:31 355

原创 device-driver:bus/kobject/kset

bus是驱动模型的主要一环,衔接了driver和device,特别地,bus负责管理挂载在上面的所有driver和devices, 大部分的情况是: 系统初始化时候,xxx-bus-core注册了一个虚拟总线,比如 i2c总线, 然后soc厂家在这个总线上, 注册自己的i2c-host, 一个host,一个driver,多个client devices.使用kobject del。删除一个kobject,或者使用kobject_unregister函数,它是kobject_del和kobject_put。

2025-07-19 09:57:09 363

原创 kernel trace function call-stack

设置要追踪的函数(例如 `__alloc_pages`)# 启用 function_graph 追踪。# 挂载 debugfs(如果未挂载)# 运行你的测试用例(触发函数调用)# 进入 ftrace 目录。

2025-06-02 17:30:38 117

原创 sysfs 与设备驱动模型0331

如果调用者需要明 确指定一个自己的kobj_type对象给该kobject对象,那么还应该使用其他函数,比如调用kobject_init_and_add函数。kset意味着一组相似的设备,相互通过 list联系起来, 当需要向用户发送uevent时候,就用大家共享的uevent_ops发送uevent给用户层的udev(函数是kobject_uevent()).如上所见,cdev结构中嵌人了kobject:结构。在kobject结构的parent成员中,保存了另外一个kobject结构的指针,这个结构表。

2025-04-03 07:53:05 281

原创 udev rules文件语法

udev 规则文件(.rules文件)的语法用于定义设备事件触发时的行为(如设备命名、权限设置、执行脚本等)。以下是。

2025-03-25 11:44:13 627

原创 HDR HDR10+ DolbyVision

The HDR10 format allows for a maximum brightness of 1,000 nits, and a color-depth of 10 bits.HDR10+ increases the maximum brightness to 4,000 nits, which thereby increases contrast too. But the biggest difference is in how HDR10+ handles information. W..

2021-03-01 10:39:18 1154

原创 busybox rootfs

下载busybox的源码,解压后,设定ARCH 和 CROSS_COMPILE的两个基本环境变量,选择defconfig作为默认配置,大部分的busybox 工具都会被编译出来。 如果不指定输出目录,默认输出到根目录的_install目录下面,如果需要指定目录,配置CONFIG_PREFIX=/a/b/c/rootfs, 这样make生成的 /bin, /sbin, /usr三个默认文件夹就直接在rootfs目录下。 make ARCH=arm CROSS_COMPILE=arm...

2021-02-24 15:32:08 258

原创 initrd ramfs

@initrd and initramfsinitrd historyInitrd 的英文全称是 initial ram disk,从字面意思来看,initi指linux的初始阶段,ram disk指RAM 盘。ram disk是一个基于ram的块设备,同其他存储设备一样,它不仅占据了一块固定的内存(只是它占用的RAM内存,而普通从此设备是ROM内存),而且其上也需要文件系统。initrd文件...

2020-01-07 14:41:20 188

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除