- 博客(1455)
- 资源 (33)
- 收藏
- 关注
原创 RK3399平台入门到精通系列讲解 - 总目录
欢迎大家来到内核笔记的《RK3399平台开发入门到精通系列讲解》,开始前博主先列出RK3399平台学习的大纲,同时这也可以作为大家学习RK3399内核与安卓框架的参考。下面蓝字都是传送门,点击进入即可:...
2020-11-17 23:20:48
99917
207
原创 RK3568 从入门到实战项目专栏目录及介绍
本专栏采用AIO-3568J四核高性能人工智能主板。是四核处理器,集成双核心架构GPU以及高效能NPU;支持8G大内存;板载M.2与SATA3.0接口;支持POE+供电;支持WiFi 6,5G/4G无线网络通讯;拥有丰富的扩展接口,可应用于智能NVR、云终端、物联网网关、工业控制等场景。
2018-01-30 20:05:13
33423
52
原创 RK3568平台开发系列讲解:HDMI 接口介绍
HDMI 接口有 A 到 E 五种接口。1.HDMI-A 接口又叫做标准接口,也是使用最广泛的接口。引脚定义:2.HDMI-B 接口在日常使用中基本看不到。HDMI-B 接口的数据传输能力比 HDMI-A 快近 2 倍,一般用在比较专业的场景。3.HDMI-C 又叫做 Mini HDMI、迷你 HDMI 接口,尺寸比 HDMI-A 小了近三分之一,主要用在小型设备中,比如游戏机,数码相机等。引脚定义:4.HDMI-D 接口又叫做 Micro HDMI、微型 HDMI 接口。
2025-12-03 23:54:42
69
原创 RK3568平台开发系列讲解:HDMI EDID 介绍
不同种类,不同品牌的显示器分辨率和时序都不同,HDMI 接口又要做到兼容,如果处理器输出一个固定的分辨率和时序参数就不能很好的驱动所有显示器。EDID 全称是 Extended Display Identification Data,即外部显示设备标识数据。在 EDID 中包含显示器相关参数,如分辨率,时序信息。还有厂商信息,产品 ID,生产日期等信息。如下图 EDID 结构图中的 08h 地址,占 2 个字节大小,用来表示生产厂家名字,采用 ISA 3 字符 ID 码。
2025-12-03 23:43:03
160
原创 RK3568平台开发系列讲解:MIPI协议
本文介绍了MIPI DSI协议中的关键概念和工作原理。首先解释了Lane(通道)的含义及其在MIPI硬件连接中的作用,包括1-4个数据通道的工作方式。详细说明了信号电平在不同模式下的差异:LP模式下采用0-1.2V单端信号,HS模式下采用200mV差分信号。文章还阐述了三种工作模式(控制模式、高速模式和Escape模式)及其切换过程,并介绍了MIPI D-PHY和C-PHY、M-PHY的区别。最后,对MIPI DSI的四层架构(物理层、通道管理层、协议层和应用层)进行了说明,重点讲解了短包和长包的数据格式及
2025-12-02 21:21:30
65
原创 RK3568平台开发系列讲解:DRM Objects详细介绍
虚线以上的为drm_mode_object(或者说是modset object),虚线以下为drm_gem_object(或者说是gem objec)。于是,原来的encoder驱动和LCD驱动之间的耦合,就转变成了上图中encoder驱动与drm_panel、drm_panel与LCD驱动之间的“耦合”,从而实现了encoder驱动与LCD驱动之间的解耦合。在编写DRM驱动程序之前,我们先对DRM内部的objects进行一番介绍,因为这些objects是DRM框架的核心,它们缺一不可。
2025-11-25 21:57:56
80
原创 RK3568平台开发系列讲解:DRM显示框架硬件抽象
但是为了通知LCD休眠唤醒,需要调用LCD驱动的相应接口,因此放在LCD驱动中。plane LCD Controller没有Overlay硬件,它只有一个数据源通道,被抽象为Primary Plane,同样需要访问 LCD Controller硬件寄存器,因此放在LCD Controller驱动中。crtc RGB timing的产生,以及显示数据的更新,都需要访问LCD Controller硬件寄存器,因此放在LCD Controller驱动中。
2025-11-25 21:40:44
196
1
原创 RK3568平台开发系列讲解:DRM框架元素介绍
学习DRM驱动其实就是学习上面各个元素的实现及用法,如果你能掌握这些知识点,那么在编写DRM驱动的时候就能游刃有余。想象一下,我们要在一個美術館(GPU/显示系统)里举办一场画展,最终目标是把一幅画展示在墙上的画框(显示器) 里。
2025-11-20 23:00:32
98
原创 RK3568平台开发系列讲解:LCD 框架
HBP: 行后肩,表示HSYNC行同步型号开始后,DE数据使能前(必须DE使能后才开始数据显示),这中间的时间(并不是说行同步型号开始了,你就立马能开始一行数据的显示了,可以理解成必须要在行同步信号开始的情况下,才能开始行数据显示,那么这就是一个先后的顺序,为了保证这个先后的顺序,就需要HSYNC和数据开始显示中间要有一段时间);然后LCD控制器每次将一个像素点的数据传送给LCD驱动器,LCD驱动器根据这个像素点的数据,驱动这个像素点的液晶分子旋转,从而让这个像素点显示出对应的颜色。
2025-11-14 00:06:22
81
原创 RK3568平台开发系列讲解:RK VOP 显示控制器
本文介绍了显示控制器(LCDC/VOP)的基本概念及瑞芯微SoC中的VOP架构。主要内容包括: 显示控制器的作用类似于显卡,负责将内存图像传输到显示设备,RK系列SoC(如RK3399/RK3568)集成VOP可直接驱动显示屏。 VOP1架构通过多个VOP模块支持多屏显示(如RK3399的双VOP),而VOP2架构采用单VOP多VP接口设计(如RK3568的3路VP),各VP可独立输出不同接口信号。 介绍了扩展显示输出的两种技术: connector-mirror技术可复制VP输出到多个接口(最多7路) V
2025-11-13 23:56:03
85
原创 新突破:瑞芯微RK3576的12路视频流延迟低至140ms
在智能视觉技术不断发展的今天,多路摄像数据的处理与传输已成为众多应用场景的核心需求。从智能安防监控领域的全面覆盖,到工业视觉处理网关的精准检测,再到车载环视融合平台的实时驾驶辅助以及智慧社区AI防控的快速响应,多路摄像数据的处理与传输已成为关键需求,而高效且低延时的解决方案则是实现这些应用的核心。目前多路摄像传输方案往往存在一定局限,接入路数有限,难以满足大规模监控场景的需求,且延迟较高,影响实时性,编码效率也不尽如人意,通常会占用大量带宽和存储资源。
2025-10-23 11:57:39
1152
原创 RK3568平台开发系列讲解:使用 sysfs 接口操作 pwm
在 Linux 系统中,PWM(脉宽调制)控制通过 sysfs 接口进行操作,相关的文件和属性可以在 /sys/class/pwm/ 目录下找到。下面详细介绍 /sys/class/pwm/pwmchipX 目录下的关键文件及其作用。当导出 PWM 通道(例如 pwm0)后,会在 /sys/class/pwm/pwmchipX/ 目录下生成对应的文件夹(例如 /sys/class/pwm/pwmchip0/pwm0/)。在该文件夹中,有几个重要的属性文件,用于配置和控制 PWM 的输出信号。
2025-09-03 00:42:52
140
原创 RK3568平台开发系列讲解:瑞芯微平台4G模块篇移植
本文介绍了如何通过USB虚拟串口获取蜂窝网络信号值的技术实现。首先展示了硬件连接图,目标是通过USB虚拟串口通道实现信号值获取功能。文章详细说明了Linux内核配置中需要启用的USB串行驱动相关宏(CONFIG_USB_SERIAL和CONFIG_USB_SERIAL_OPTION)。重点分析了usb_device_id结构体在设备识别中的关键作用,包括其字段定义和典型用法示例,并介绍了常用的设备匹配辅助宏。最后说明了如何在驱动代码中注册设备ID表,包括驱动结构体定义和模块初始化时的驱动注册过程,这是实现U
2025-08-31 22:15:15
262
1
原创 RK3568平台开发系列讲解:WIFI调试技巧分享
本文介绍了Linux系统中配置WIFI功能的常用工具和方法。主要工具包括hostapd(创建热点)、wpa_supplicant(连接热点)及相关命令行工具,以及iw、iwpriv等无线网卡管理工具。文章详细说明了hostapd.conf等关键配置文件的参数设置,并提供了开启AP模式和连接热点的标准流程。最后总结了常见问题排查要点,如热点连接失败、IP分配异常等情况的解决方法。通过学习这些内容,可以掌握Linux系统下WIFI配置的核心技术要点。
2025-08-23 02:53:36
275
原创 RK3568平台开发系列讲解:触摸屏多点触摸协议详解
如果硬件设备追踪到了比他正在上报的还要多的触摸点,那么驱动程序应该发送 BTN_TOOL_*TAP 消息,并且调用 input_mt_report_pointer_emulation()函数,将此函数的第二个参数 use_count 设置为 false。此函数有两个参数,第一个参数是 input_dev 设备,第二个参数 slot 用于指定当前上报的是哪个触摸点信息。input_mt_slot()函数会触发 ABS_MT_SLOT 事件,此事件会告诉接收者当前正在更新的是哪个触摸点(slot)的数据。
2025-08-17 23:48:59
196
原创 RK3568平台开发系列讲解:PCIE trainning失败怎么办
PCIe链路训练超时问题分析与修复 问题现象: Rockchip PCIe控制器在Gen1速度模式下出现链路训练超时(error -110),导致设备探测失败。 可能原因: 硬件连接异常(接触不良) 电源供应不足 时钟信号问题 PCB设计缺陷 固件配置错误 驱动兼容性问题 解决方案: 在排除硬件问题后,通过延长PCIe链路训练的超时时间参数来解决问题。该方案通过调整内核驱动中的超时阈值,为链路训练提供更充裕的时间窗口。
2025-08-17 23:42:14
209
原创 RK3568平台开发系列讲解:Linux设备树插件驱动实验
本文介绍了Linux设备树覆盖(Device Tree Overlay)的配置实现,通过configfs文件系统动态加载设备树片段。核心内容包括: 提供了设备树覆盖项的源码实现,支持不同Linux内核版本(4.7+)的兼容性处理; 实现了设备树覆盖的创建、释放和状态管理功能; 包含Makefile编译脚本,支持ARM64架构交叉编译; 使用of_overlay_fdt_apply等内核API实现设备树片段的动态加载; 通过pr_debug输出调试信息,便于问题追踪。 该方案适用于嵌入式系统开发中需要动态修改
2025-08-14 00:33:41
2918
原创 RK3568平台开发系列讲解:RK3568 RK809 Codec调试记录
文章摘要 RK809是一款集成了Codec的PMIC电源管理芯片,内置音频编解码功能,支持耳机输出、1.3W单声道喇叭输出及差分/单端音频输入。其通过I2S接口与主控通信,关键信号包括主时钟(MCLK)、串行时钟(SCLK)、左右声道时钟(LRCK)以及数据输入输出(SDI/SDO)。设备树(dts)配置中需定义音频格式、声道映射及硬件连接关系。测试时可通过/proc/asound/cards查看声卡列表,/dev/snd目录下的设备接口文件用于控制音频输入输出,arecord -l命令可检查录音设备状态。
2025-08-13 00:56:51
461
原创 RK3568平台开发系列讲解:HDMI显示驱动
表示这个节点的状态是启用的。通常在设备树中,“okay”意味着该硬件组件已经被启用并可以正常工作。RK3568 VOP2.0有3个Video Post接口,分别是VP0、VP1、VP2。这个设备树描述的是与 HDMI 相关的硬件连接和状态配置。可能是定义在其他地方的硬件接口,指向某个 HDMI 输出端口。是一个设备节点,表示 HDMI 路由的配置。目录下可以看到驱动注册的各个显卡,控制器同时支持的分辨率列表;控制器同时支持的分辨率列表;显示器的扩展显示标识数据;信息,一共256个字节;接口连接状态的信息;
2025-06-30 23:09:24
507
1
原创 RK3568平台开发系列讲解:WIFI的调试手段
本文介绍了Linux系统下WIFI模块的调试方法,主要包括:1)通过hostapd_cli检查hostapd运行状态;2)使用iw命令查看端口信息、监听事件和国家码;3)通过hostapd_cli设置SSID、加密类型和密码(需reload生效);4)设置channel参数(重启不保存);5)展示完整的WIFI配置文件示例,包含2.4G/5G双频配置、SSID、加密方式、信道等参数设置。文章还提供了Linux系统知识库套餐的获取方式。
2025-06-30 22:55:24
429
原创 ⏰ 限时福利 Linux 系统工程师训练营
对于初入Linux底层驱动领域的新手来说,这条学习之路往往布满荆棘。- 你按照教程一步步操作,确认了软件环境配置无误,检查了硬件连线正确,但设备就是毫无反应。面对沉默的黑屏,你陷入自我怀疑:是教程过时了?是硬件兼容问题?还是自己遗漏了某个关键步骤?这种无从下手的挫败感消耗着你的学习热情。- 刚接触Linux驱动开发,你被"中断下半部"、“自旋锁”、“设备树”、“Platform设备”、"输入子系统"等专业名词轰炸。
2025-06-17 23:29:38
844
原创 RK3568平台开发系列讲解:UBOOT详细介绍
U-boot是一款广泛使用的开源引导加载程序,支持多种嵌入式操作系统和处理器架构。其主要功能包括系统上电时的硬件初始化、引导操作系统内核等。U-boot的引导流程通常包括Boot Code、idbloader.img、uboot.img、boot.img和rootfs.img等步骤。启动U-boot时,通过Debug串口连接板卡,按下ctrl+c键可进入U-Boot命令行模式。U-boot启动过程中会执行一系列初始化操作,如打印系统信息、初始化内存、加载内核设备树、初始化I2C、PMIC电源芯片、DRM框架
2025-05-21 00:50:05
491
原创 RK3568平台开发系列讲解(调试篇)debugfs文件系统及常见调试节点介绍
调试内核模块:很多内核模块会在 debugfs 中创建条目,便于开发者查看模块的状态或调整参数。
2025-04-23 23:08:24
461
原创 RK3568平台开发系列讲解(内核篇)Linux kbuild编译系统
从Linux内核2.6开始,Linux内核的编译采用Kbuild系统,这同过去的编译系统有很大的不同,尤其对于Linux内核模块的编译。在新的系统下,Linux编译系统会两次扫描Linux的Makefile:首先编译系统会读取Linux内核顶层的 Makefile,然后根据读到的内容第二次读取Kbuild的Makefile来编译Linux内核。用途:根目录下的 Makefile 是内核构建的核心入口点。用途:包含 kbuild 体系的核心构建规则和工具定义。沉淀、分享、成长,让自己和他人都能有所收获!
2025-03-11 19:22:29
594
1
原创 RK3568平台开发系列讲解(内核篇)Linux 内核启动流程
自解压:Bootloader 加载压缩的内核映像,内核自解压到内存。内核运行入口:从汇编代码(如 stext)开始,初始化 CPU 和内存管理。汇编阶段:完成低级硬件初始化,设置堆栈、分段和分页。C 函数阶段:进入 start_kernel(),初始化内核核心子系统。启动内核现场:创建第一个用户进程,挂载根文件系统。执行 init 程序:启动用户空间的第一个进程 init,完成系统初始化。
2025-02-26 19:33:05
938
原创 RK3568平台开发系列讲解(UBOOT篇)u-boot启动流程
U-Boot(Universal Bootloader)是一种开源的引导加载程序,广泛用于嵌入式系统中。它的主要功能是初始化硬件设备,加载操作系统内核,并将控制权交给操作系统。U-Boot的启动流程可以分为多个阶段,以下是典型的U-Boot启动流程:
2025-02-26 19:04:37
823
原创 RK3568平台开发系列讲解(调试篇)CGroup(Control Group)
CGroup 的全称是 Control Group,是容器实现环境隔离的两种关键技术之一,它对很多子系统提供精细化的控制的能力,比如下面这些:
2025-02-25 19:20:06
271
原创 当 VSCode 遇见 DeepSeek:AI 赋能未来编程
近期,国产大模型Deepseek v3凭借其卓越的推理能力引发了广泛关注🔥。其官网提供的大模型API接口服务以高性价比著称,价格极具竞争力。本文将介绍如何在VSCode中,通过开源AI编程辅助插件Continue,配置Deepseek的API接口,从而实现常见的AI编程辅助功能。
2025-02-11 19:20:32
1757
原创 RK3568平台开发系列讲解(调试篇)网卡队列均衡负载
RPS(Receive Packet Steering) 是一种用于提高网络接收性能的技术,通常用于多核处理器系统中。它的主要目的是优化网络接收数据包的分配,减少 CPU 负载的集中,改善网络处理性能,特别是在高负载的情况下。RPS 通过将网络接收数据包的处理任务分配到多个 CPU 核心,来平衡各核心的负载,提高多核系统的吞吐量。
2025-02-11 00:42:50
420
2
原创 RK3568平台开发系列讲解(ConfigFS篇)ConfigFS核心数据结构
理解 ConfigFS 的核心数据结构对于深入使用和定制 ConfigFS 非常重要, 可以帮助开发者更好地进行设备的配置和管理, 提高系统的灵活性和可扩展性。
2025-02-07 19:32:52
439
原创 RK3568平台开发系列讲解(设备树篇)设备树插件驱动
dtbocfg.c 为设备树插件驱动文件。在驱动文件中, 生成 device-tree/overlays 目录结构。
2025-02-07 01:06:42
389
1
原创 RK3588平台开发系列讲解(DMA篇)DMA engine使用
Linux 内核的 DMA 引擎提供了一组完整的接口,用于申请和释放 DMA 通道、准备 DMA 描述符、启动和控制 DMA 传输,以及同步和管理缓存。通过这些接口,内核能够高效地处理异步的 DMA 传输任务,减少 CPU 的干预,提高数据传输的效率。
2025-02-06 19:09:39
1214
原创 Linux 音视频入门到实战专栏(视频篇)视频编解码 MPP
瑞芯微提供的媒体处理软件平台(Media Process Platform,简称MPP)是适用于瑞芯微芯片系列的通用媒体处理软件平台。该平台对应用软件屏蔽了芯片相关的复杂底层处理,其目的是为了屏蔽不同芯片的差异,为使用者提供统一的视频媒体处理接口(Media Process Interface,缩写MPI)。视频解码 H.265 / H.264 / H.263 / VP9 / VP8 / MPEG-4 / MPEG-2 / MPEG-1 / VC1 / MJPEG / AV1。
2025-01-18 23:31:51
1067
1
原创 Linux 音视频入门到实战专栏(音频篇)基于alsa api的音频播放/录制流程
音频播放流程主要包括打开设备、设置参数、写入数据和关闭设备等步骤。
2025-01-15 00:39:11
706
rkisp的驱动代码
2020-10-21
ioremap_gpio_demo.c
2021-02-26
RK3399 Android7.1-Box 软件开发指南 V1.01-20170401.rar
2021-06-04
MLX90640红外开发资料包.zip
2020-02-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅