日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

RK平臺Camera開發(fā)入門:從基礎知識點到實戰(zhàn)調(diào)試

jf_44130326 ? 來源:Linux1024 ? 2026-02-05 14:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

大家好!在安防監(jiān)控、物聯(lián)網(wǎng)設備、消費電子等領域,瑞芯微Rockchip)平臺憑借出色的圖像處理能力,成為很多開發(fā)者的首選。但Camera開發(fā)涉及硬件鏈路、驅(qū)動配置、調(diào)試優(yōu)化等多個環(huán)節(jié),新手很容易踩坑。今天這篇文章,我們就基于瑞芯微官方《RK VI驅(qū)動指南》,梳理RK平臺Camera開發(fā)的核心基礎知識點實戰(zhàn)調(diào)試方法,幫你快速入門,解決常見問題。

wKgZO2kajD-AJmNeAAE51HE4gjI821.png

一、RK Camera開發(fā)基礎知識點

想要做好RK平臺Camera開發(fā),首先要理清硬件架構(gòu)-軟件配置-關鍵概念這三大塊,我們一步步拆解。

1.先搞懂:適用平臺與核心硬件模塊

RK平臺對Camera的支持覆蓋多系列芯片,不同芯片的VIVideo Input)模塊能力有差異,先明確你的開發(fā)目標平臺:

芯片型號

軟件系統(tǒng)

核心能力亮點

RV1126

Linux 4.19

支持3HDR,VICAP Full/LiteIP

RV1109

Linux 4.19

RV1126,分辨率上限3072x2048

RK3566

Linux 4.19

VICAP,不支持HDR

RK3568

Linux 4.19

支持2HDR,分辨率上限4096x2304

RK3588

Linux 5.10

ISP +FEC,支持8K合成+ 7sensor

核心硬件模塊解析

Camera數(shù)據(jù)從傳感器到輸出,要經(jīng)過采集-處理-后處理三大模塊,鏈路如下(建議收藏):

wKgZO2kajD-AWoHqAACK9k6ft40099.jpg ?

?RKVICAP:視頻采集模塊,負責接收Sensor的原始數(shù)據(jù),支持MIPIDPHY/CPHY)、LVDS、DVPBT601/BT656/BT1120接口,不同芯片的VICAP數(shù)量/能力不同(如RV1126VICAP Full+Lite)。

?RKISP:圖像信號處理器,Camera大腦,支持HDR合成(2/ 3幀)、自動白平衡(AWB)、自動曝光(AE)、自動對焦(AF)等3A功能,還能處理RAW格式轉(zhuǎn)換。

?CISCMOS Image Sensor:相機傳感器,通過I2C與主控通信,驅(qū)動需基于V4L2 Subdev框架實現(xiàn),是數(shù)據(jù)的源頭。

2.再上手:關鍵軟件配置

軟件配置的核心是DTS設備注冊驅(qū)動框架,這兩步錯了,Camera根本跑不起來。

1DTS配置:Camera注冊的身份證

DTS(設備樹)負責描述硬件連接關系,比如Sensor的接口類型、I2C地址、電源GPIO等,不同接口(MIPI/LVDS/DVP)的配置略有差異,這里以最常用的MIPI接口為例(基于RV1126+OS04A10 Sensor):

// 1. Sensor節(jié)點配置os04a10:os04a10@36{  compatible ="ovti,os04a10";// 與驅(qū)動匹配的字符串  reg = <0x36>;// Sensor I2C地址(7位)  clocks = <&cru CLK_MIPICSI_OUT>;// Sensor時鐘  clock-names ="xvclk";  power-domains = <&power RV1126_PD_VI>;// 電源域 // 電源配置  avdd-supply = <&vcc_avdd>;  dovdd-supply = <&vcc_dovdd>;  dvdd-supply = <&vcc_dvdd>; // GPIO配置(斷電/復位)  pwdn-gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_HIGH>; // 模組信息(匹配IQ參數(shù))  rockchip,camera-module-index = <1>;// 模組編號(不重復)  rockchip,camera-module-facing ="front";// 朝向(front/back) // MIPI端口鏈接  port {    ucam_out0: endpoint {      remote-endpoint = <&mipi_in_ucam0>;// 鏈接到MIPI DPHY     data-lanes = <1234>;// MIPI Lane數(shù)(必須配置,否則識別失?。?/span>    };  };};// 2. MIPI DPHY節(jié)點配置&csi_dphy0 {  status ="okay";  ports {   port@0{      mipi_in_ucam0:endpoint@1{        reg = <1>;        remote-endpoint = <&ucam_out0>;// 反向鏈接Sensor       data-lanes = <1234>;// 與Sensor一致      };    };   port@1{      csidphy0_out:endpoint@0{        remote-endpoint = <&isp_in>;// 鏈接到ISP      };    };  };};// 3. ISP虛擬節(jié)點配置(數(shù)據(jù)鏈路生效)&rkisp_vir0 {  status ="okay";  ports {   port@0{      isp_in:endpoint@0{        remote-endpoint = <&csidphy0_out>;// 反向鏈接MIPI DPHY      };    };  };};

關鍵注意點

?compatible必須與Sensor驅(qū)動中的of_match_table一致,否則驅(qū)動無法匹配設備;

?data-lanes必須明確(如4 Lane<1 2 3 4>),MIPI接口不配置會識別為其他類型;

?Sensor注冊時,需分配不同的camera-module-index,避免沖突(如RK3588支持7Sensor6MIPI+1DVP)。

2)驅(qū)動框架:基于I2C+V4L2 Subdev

RK平臺Camera驅(qū)動遵循Linux標準框架,核心是CIS驅(qū)動Sensor驅(qū)動),基于I2C總線(Sensor與主控通信)和V4L2 Subdev(與上層框架交互),關鍵組成如下:

核心組件

作用

struct i2c_driver

I2C驅(qū)動結(jié)構(gòu)體,定義probe(設備匹配)、remove(設備卸載)、匹配表等

struct v4l2_subdev_ops

V4L2子設備操作集,包含core(電源/ IOCTL)、video(流控制)、pad(格式)

關鍵API

set_fmt(設輸出格式)、get_fmt(獲格式)、s_stream(啟停流)等

比如i2c_driver的示例代碼(簡化):

staticconststructof_device_id os04a10_of_match[] = {  { .compatible ="ovti,os04a10"},// 與DTS匹配  {},};staticstructi2c_driver os04a10_i2c_driver = {  .driver = {    .name ="os04a10",    .of_match_table = os04a10_of_match,  },  .probe = os04a10_probe,// 設備匹配成功后執(zhí)行  .remove= os04a10_remove,};module_i2c_driver(os04a10_i2c_driver);

3.必掌握:核心技術(shù)概念

搞懂這些概念,才能應對復雜場景(如HDR、多攝):

1HDR模式:高動態(tài)范圍成像

RKISP支持2幀(RK3568)或3幀(RV1126/RK3588HDR合成,原理是采集不同曝光時間的幀(短幀-欠曝、中幀-正常、長幀-過曝),通過ISP合成高動態(tài)范圍圖像,數(shù)據(jù)鏈路如下:

wKgZO2kajD-AVIIoAAA3DDqAAnM180.jpg

2RAW存儲格式:緊湊vs非緊湊

RAWSensor輸出的原始數(shù)據(jù),存儲格式影響內(nèi)存占用和處理效率:

?非緊湊型10bit/12bit數(shù)據(jù)按16bit存儲(高位對齊),內(nèi)存占用高,但處理簡單,適用于VICAP采集(如RV1126 DVP僅支持非緊湊);

?緊湊型12bit數(shù)據(jù)按8bit緊湊存儲(4字節(jié)存3個像素),內(nèi)存占用低,適用于ISP直接處理。

3)多攝同步(RK3588專屬)

RK3588支持多攝同步,解決多Sensor數(shù)據(jù)時序不一致問題,主要有兩種模式:

?Master-Slave:從設備等待主設備的同步信號,僅收到信號才輸出數(shù)據(jù);

?Master-Master:主設備發(fā)送同步信號,從設備獨立輸出,收到信號后同步(支持當前幀完成后同步或立即同步)。

核心知識點腦圖

為了方便記憶,整理成腦圖如下:

wKgZO2kajD-AUz3BAAIGnE2OpGs986.png

二、RK Camera實戰(zhàn)調(diào)試方法

開發(fā)中遇到“Camera不識別”“預覽閃爍”“圖像發(fā)紫等問題,掌握以下調(diào)試方法,能快速定位問題。

1.必備工具:media-ctl + v4l2-ctl

這兩個工具是RK Camera調(diào)試的左右手,前者管理媒體拓撲,后者操作視頻設備。

1media-ctl:查看/配置拓撲

# 1. 查看media設備拓撲(X為0/1/2,需枚舉)media-ctl -p -d /dev/mediaX# 示例輸出:會顯示Sensor→MIPI→ISP的鏈路,確認是否“ENABLED”# 2. 設置Sensor輸出格式(如OS04A10設2688x1520,RAW12)media-ctl -d /dev/media0 --set-v4l2'"os04a10 1-0036":0[fmt:SBGGR12_1X12/2688x1520]'# 3. 切換ISP數(shù)據(jù)鏈路(如從ISPP切到MainPath抓RAW)media-ctl -l'"rkisp-isp-subdev":2->"rkisp_mainpath":0[1]'

2v4l2-ctl:抓幀/設控制參數(shù)

# 1. 抓RAW圖(設分辨率、格式,保存到/tmp)v4l2-ctl -d /dev/video0 --set-fmt-video=width=2688,height=1520,pixelformat=RG10 --stream-mmap=4 # 4個MMAP緩存--stream-count=1 # 抓1幀--stream-to=/tmp/cap.raw # 保存路徑--stream-skip=2# 跳過前2幀(避免初始幀異常)# 2. 設置曝光和增益(需先找到Sensor的subdev節(jié)點,如/dev/v4l-subdev4)v4l2-ctl -d /dev/v4l-subdev4 --set-ctrl'exposure=1216,analogue_gain=10'# 3. 查看支持的控制參數(shù)v4l2-ctl -d /dev/v4l-subdev4 --list-ctrls

2. Debug信息:定位問題的線索

遇到問題先看日志,RK提供了多個Debug入口:

1)查看proc文件

proc文件包含ISP/VICAP的實時狀態(tài),比如:

# 查看ISP狀態(tài)(幀號、格式、模塊開關)cat/proc/rkisp0# 查看VICAP狀態(tài)(輸入格式、幀率、中斷統(tǒng)計)cat/proc/rkcif_mipi_lvds

示例輸出關鍵信息:

?Input Format:SGBRG10_1X10 Size:2688x1520@30fps:輸入格式和幀率;

?ErrCnt:0:無錯誤中斷,若不為0,可能是MIPI鏈路異常;

?HDRTMO ONHDR TMO模塊已開啟。

2寄存器Dump

若懷疑硬件配置問題,可Dump ISP/VICAP寄存器:

# RV1126 Dump ISP寄存器(地址0xffb50000,長度0x10000)io-4-l0x100000xffb50000 > /tmp/isp.reg# RK3568 Dump ISP寄存器io-4-l0x100000xfdff0000 > /tmp/isp.reg

3)開啟驅(qū)動日志

# 開啟ISP驅(qū)動日志(n=0~3,3級最詳細)echo3 > /sys/module/video_rkisp/parameters/debug# 開啟ISPP驅(qū)動日志echo3 > /sys/module/video_rkispp/parameters/debug# 查看日志dmesg | grep -i"rkisp"

3.常見問題排查:實戰(zhàn)案例

1)問題1:預覽閃爍

排查步驟

1.開啟AE日志AE(自動曝光)異常是閃爍的常見原因,開啟日志查看統(tǒng)計值:

exportpersist_camera_engine_log=0x1ff3# 開啟AE logrkisp_demo# 運行測試程序

1.分析日志

?TmoMeanLumaTMO合成后亮度)跳變,是TMO參數(shù)不匹配,需調(diào)整IQ參數(shù);

?MeanLuma穩(wěn)定但畫面閃爍,是ISP后處理模塊問題,需聯(lián)系瑞芯微工程師;

?time(曝光時間)和gain(增益)同時變化,檢查生效幀配置(如sensortime通常n+2幀生效,需在IQ文件中設置time_delay=2)。

1.測試線性度:若gain線性度差,會導致亮度跳變,測試方法:

?蓋毛玻璃(均勻入光),固定gain=1,抓10ms/20ms/30msRAW圖;

?統(tǒng)計亮度值,減去黑電平(鏡頭遮黑抓圖),若亮度與曝光時間成直線,線性度正常。

2)問題2:光源處紫色溢出

排查步驟

1.線性模式:檢查gain值是否超Sensor手冊限制(如驅(qū)動換算的gain寄存器值是否合法);

2.HDR模式

?查看內(nèi)核日志是否有MIPI報錯(dmesg | grep -i "mipi err"),若有是短幀偏移導致合成錯位;

?確認短幀曝光是否超限制(如某sensor短幀最大2ms,若IQ配置3ms,實際僅2ms生效,導致合成ratio異常)。

調(diào)試流程圖

wKgZO2kajD-ATDsbAAChqUld74o293.jpg

4.實用技巧

?單獨更新驅(qū)動:無需重新編譯內(nèi)核,生成補丁后應用:

# 生成補?。ˋ=老版本commit,B=新版本commit)git format-patch A..B drivers/media/... -o tmp_patch# 應用補丁git am tmp_patch/*

?查看驅(qū)動版本

cat/sys/module/video_rkisp/parameters/version

?判斷ISP加載狀態(tài)

# 查看video節(jié)點名稱,確認RKISP節(jié)點grep''/sys/class/video4linux/video*/name# 查看拓撲是否正常media-ctl -p -d /dev/mediaX

三、總結(jié)與資源推薦

開發(fā)要點總結(jié)

1.硬件層面:明確芯片的VI模塊能力(如RK3588的多攝同步),理清Sensor→VICAP→ISP的數(shù)據(jù)鏈路;

2.軟件層面DTS配置要注意compatible、data-lanes等關鍵參數(shù),驅(qū)動遵循I2C+V4L2 Subdev框架;

3.調(diào)試層面:先用media-ctl/v4l2-ctl驗證鏈路,再通過proc日志和寄存器定位問題,常見問題優(yōu)先查AE日志和參數(shù)限制。

參考資源

?官方文檔:《Rockchip_Driver_Guide_VI_CN》(本文基于v1.1.1版本);

希望這篇文章能幫你快速上手RK平臺Camera開發(fā)!如果有其他問題,歡迎在評論區(qū)交流~

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    88

    文章

    11822

    瀏覽量

    219600
  • 瑞芯微
    +關注

    關注

    27

    文章

    861

    瀏覽量

    54678
  • Camera
    +關注

    關注

    1

    文章

    85

    瀏覽量

    22328
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    第18章 BSD Sockets基礎知識

    最新網(wǎng)絡教程第18章簡介本章節(jié)為大家講解BSD Sockets,需要大家對BSD Sockets有個基礎的認識,方便后面章節(jié)Socket實戰(zhàn)操作。 (本章的知識點主要整理自網(wǎng)絡)18.1 初學者重要
    發(fā)表于 11-08 17:29

    第29章 NTP網(wǎng)絡時間協(xié)議基礎知識

    章節(jié)的實戰(zhàn)操作。(本章的知識點主要整理自網(wǎng)絡)29.1 初學者重要提示29.2 NTP基礎知識參考資料29.3 NTP基礎知識點 29.4 SNTP
    發(fā)表于 11-27 16:47

    第31章 Telnet遠程登錄基礎知識

    轉(zhuǎn)帖 本章節(jié)為大家講解Telnet (Teletype Network) 的基礎知識,方便后面章節(jié)的實戰(zhàn)操作。(本章的知識點主要整理自網(wǎng)絡)31.1 初學者重要提示31.2 Telnet基礎知
    發(fā)表于 11-30 08:15

    第33章 SMTP簡單郵件傳輸協(xié)議基礎知識

    轉(zhuǎn)帖 本章節(jié)為大家講解SMTP(Simple Mail Transfer Protocol,簡單郵件傳輸協(xié)議)的基礎知識,方便后面章節(jié)的實戰(zhàn)操作。 (本章的知識點主要整理自網(wǎng)絡)33.1 初學者重要提示33.2 SMTP
    發(fā)表于 12-10 08:52

    絕對好貨 LABVIEW入門實戰(zhàn)開發(fā)100例

    LABVIEW入門實戰(zhàn)開發(fā)100例簡介:《LabVIEW入門實戰(zhàn)開發(fā)100例》全書
    發(fā)表于 08-03 23:10

    初級小白實戰(zhàn)資料,零基礎入門rk3399平臺下linux4.4+android8.1開發(fā)

    app應用再到控制硬件設備,從上到下全鏈路打通知識點,讓大家徹底搞懂一個完整的基于RK3399平臺下Linux4.4+Android8.1的嵌入式系統(tǒng)是如何打造出來的。直播大綱:1. 認識嵌入式
    發(fā)表于 07-27 17:53

    關于Arduino入門必備基礎知識點總結(jié)的太棒了

    關于Arduino入門必備基礎知識點總結(jié)的太棒了
    發(fā)表于 09-26 06:12

    嵌入式開發(fā)入門知識點大合集

    嵌入式開發(fā)八大入門知識點
    發(fā)表于 11-16 06:33

    電力基礎知識點合集

    電力基礎知識點合集
    發(fā)表于 03-14 16:35 ?0次下載

    詳解射頻微波基礎知識點

    詳解射頻微波基礎知識點
    的頭像 發(fā)表于 01-29 10:28 ?3536次閱讀

    javaweb入門實戰(zhàn)

    的學習和實踐。本文將為大家詳述JavaWeb的入門以及實戰(zhàn)經(jīng)驗,希望能幫助到正在追求JavaWeb技術(shù)的開發(fā)者。 入門 1.1 Java基礎知識
    的頭像 發(fā)表于 12-03 11:44 ?2350次閱讀

    【北京迅為】iTOP-RK3568OpenHarmony系統(tǒng)南向驅(qū)動開發(fā)GPIO基礎知識

    【北京迅為】iTOP-RK3568OpenHarmony系統(tǒng)南向驅(qū)動開發(fā)GPIO基礎知識
    的頭像 發(fā)表于 03-06 11:23 ?1434次閱讀
    【北京迅為】iTOP-<b class='flag-5'>RK</b>3568OpenHarmony系統(tǒng)南向驅(qū)動<b class='flag-5'>開發(fā)</b>GPIO<b class='flag-5'>基礎知識</b>

    一文吃透RK平臺OTA升級開發(fā)邏輯到調(diào)試的完整指南

    ,能讓開發(fā)者高效解決固件更新、功能迭代等問題。本文將從升級邏輯、核心技巧、調(diào)試點到問題排查,全方位拆解 RK 平臺 OTA 升級
    的頭像 發(fā)表于 02-09 16:26 ?773次閱讀
    一文吃透<b class='flag-5'>RK</b><b class='flag-5'>平臺</b>OTA升級<b class='flag-5'>開發(fā)</b>:<b class='flag-5'>從</b>邏輯到<b class='flag-5'>調(diào)試</b>的完整指南

    RK平臺Linux IOMMU開發(fā)原理到實戰(zhàn)

    顯示(VOP)、編解碼(VPU/HEVC)等場景。今天就從原理、驅(qū)動、實戰(zhàn)、問題排查、Linux 內(nèi)存管理支撐五個維度,帶大家快速上手 RK 平臺 IOMMU 開發(fā)。
    的頭像 發(fā)表于 02-04 16:24 ?2978次閱讀
    <b class='flag-5'>RK</b><b class='flag-5'>平臺</b>Linux IOMMU<b class='flag-5'>開發(fā)</b>:<b class='flag-5'>從</b>原理到<b class='flag-5'>實戰(zhàn)</b>

    RK?平臺?Vendor Storage?開發(fā)指南:基礎知識、流程與實用技巧

    在瑞芯微(RK平臺的嵌入式開發(fā)中,vendor_storage?是一個核心模塊,專門用于存儲?SN(序列號)、MAC?地址、DRM?密鑰等廠商專屬數(shù)據(jù)。它不僅提供了跨環(huán)境的數(shù)據(jù)讀寫能力,還具
    的頭像 發(fā)表于 11-22 07:11 ?1239次閱讀
    <b class='flag-5'>RK</b>?<b class='flag-5'>平臺</b>?Vendor Storage?<b class='flag-5'>開發(fā)</b>指南:<b class='flag-5'>基礎知識</b>、流程與實用技巧
    越西县| 鸡西市| 怀远县| 铜梁县| 静宁县| 上思县| 历史| 西和县| 河北区| 青神县| 井研县| 嘉义县| 成武县| 大厂| 库伦旗| 迁安市| 枣庄市| 理塘县| 讷河市| 邢台市| 广南县| 台北市| 梁河县| 开化县| 沧州市| 河南省| 正镶白旗| 福州市| 河源市| 兖州市| 丁青县| 电白县| 辽中县| 金昌市| 财经| 乌拉特中旗| 宣城市| 宜州市| 马山县| 安庆市| 海林市|