當(dāng)前位置:首頁 > 公眾號(hào)精選 > 嵌入式云IOT技術(shù)圈
[導(dǎo)讀]點(diǎn)擊上方「嵌入式云IOT技術(shù)圈」,選擇「置頂公眾號(hào)」第一時(shí)間查看嵌入式筆記!經(jīng)過一段時(shí)間自己學(xué)習(xí)和理解,個(gè)人對(duì)于MIPILCD接口的調(diào)試有了自己的一點(diǎn)心得,當(dāng)然也收獲了LinuxDRM顯示框架及調(diào)試的一些心得,DRM真的很難很難,本文也無法顧及所有的細(xì)節(jié),之前也發(fā)了一些DRM相關(guān)...

嵌入式云IOT技術(shù)圈" data-alias="" data-signature="分享單片機(jī)、嵌入式Linux/Android、物聯(lián)網(wǎng)等相關(guān)產(chǎn)品項(xiàng)目開發(fā)經(jīng)驗(yàn),打造最硬核嵌入式技術(shù)公眾號(hào)。" data-from="0">

點(diǎn)擊上方「嵌入式云IOT技術(shù)圈」,選擇「置頂公眾號(hào)」第一時(shí)間查看嵌入式筆記!

經(jīng)過一段時(shí)間自己學(xué)習(xí)和理解,個(gè)人對(duì)于MIPI LCD接口的調(diào)試有了自己的一點(diǎn)心得,當(dāng)然也收獲了Linux DRM顯示框架及調(diào)試的一些心得,DRM真的很難很難,本文也無法顧及所有的細(xì)節(jié),之前也發(fā)了一些DRM相關(guān)的文章:

linux中基于DRM的圖形顯示系統(tǒng)概述

libdrm-modetest原理及圖顯系統(tǒng)驗(yàn)證方法

以下的這些概念和操作都是本人在實(shí)踐的過程中覺得對(duì)調(diào)試有用,所以就記下來了,接下來我們來簡單的了解一下:

1、有關(guān)DRM的一些基礎(chǔ)概念

1.1、Connectors
就是屏幕,比如主控芯片通過HDMI、MIPI DSI,分別接2個(gè)屏幕顯示,就會(huì)有2個(gè)對(duì)應(yīng)的Connectors ID;

1.2、CRTCs
表示VOP,一個(gè)屏幕一般對(duì)應(yīng)一個(gè)crtc;

1.3、Planes
就是圖層,比如視頻層在plane2,UI在plane1,視頻在UI上面;

2、通過modetest查看系統(tǒng)DRM的情況

例如在RV1109的開發(fā)板端執(zhí)行modetest,我們可以看到以下輸出信息:

[root@RV1126_RV1109:/oem]# modetest
Encoders:
id ??crtc ?type ?possible crtcs possible clones
55 ???53 ??DSI ??0x00000001 ??0x00000000
Connectors:
id ??encoder status ????name ?????size (mm) ???modes ?encoders
56 ???55 ??connected ???DSI-1 ?????154x86 ?????1 ???55
modes:
???name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
1024x600 54 1024 1240 1310 1470 600 612 622 645 51200 flags: nhsync, nvsync;
type: preferred, driver
props:
????1 EDID:
???????flags: immutable blob
???????blobs:
???????value:
????2 DPMS:
???????flags: enum
???????enums: On=0 Standby=1 Suspend=2 Off=3
???????value: 0
????5 link-status:
???????flags: enum
???????enums: Good=0 Bad=1
???????value: 0
????6 non-desktop:
???????flags: immutable range
???????values: 0 1
???????value: 0
????43 brightness:
???????flags: range
???????values: 0 100
???????value: 50
????44 contrast:
???????flags: range
???????values: 0 100
???????value: 50
????47 saturation:
???????flags: range
???????values: 0 100
???????value: 50
????48 hue:
???????flags: range
???????values: 0 100
???????value: 50
CRTCs:
id ??fb ??pos ??size
53 ???57 ??(0,0) ?(1024x600)
1024x600 54 1024 1240 1310 1470 600 612 622 645 51200 flags: nhsync, nvsync;
type: preferred, driver
props:
????38 left margin:
???????flags: range
???????values: 0 100
???????value: 100
????39 right margin:
???????flags: range
???????values: 0 100
???????value: 100
????40 top margin:
???????flags: range
???????values: 0 100
???????value: 100
????41 bottom margin:
???????flags: range
???????values: 0 100
???????value: 100
????51 FEATURE:
???????flags: immutable bitmask
???????values: afbdc=0x1
???????value: 0
???????Planes:
id ??crtc ?fb ??CRTC x,y ???x,y ??gamma size ??possible crtcs
52 ???53 ???57 ???0,0 ??????0,0 ??0 ???????0x00000001
formats: XR24 AR24 XB24 AB24 RG24 BG24 RG16 BG16
props:
????8 type:
???????flags: immutable enum
???????enums: Overlay=0 Primary=1 Cursor=2
???????value: 1
????50 FEATURE:
???????flags: immutable bitmask
???????values: scale=0x1 alpha=0x2 hdr2sdr=0x4 sdr2hdr=0x8 afbdc=0x10
???????value: 2
54 ???0 ???0 ???0,0 ??????0,0 ??0 ???????0x00000001
formats: XR24 AR24 XB24 AB24 RG24 BG24 RG16 BG16 NV12 NV16 NV24
props:
????8 type:
???????flags: immutable enum
???????enums: Overlay=0 Primary=1 Cursor=2
???????value: 0
????50 FEATURE:
???????flags: immutable bitmask
???????values: scale=0x1 alpha=0x2 hdr2sdr=0x4 sdr2hdr=0x8 afbdc=0x10
???????value: 3
Frame buffers:
id ??size ?pitch從以上信息,我們能夠了解到:

2.1、Connectors
觀察以上信息,我們可以看到Connectors有1個(gè),代表可以接1個(gè)屏幕輸出,ID是56。該顯示輸出的最大分辨率是1024x600,刷新頻率54hz;

2.2、CRTCs
觀察以上信息,我們可以看到CRTCs有1個(gè),ID是53;

2.3、Planes
觀察以上信息,我們可以看到Planes有2個(gè),即代表有2個(gè)圖層,ID分別是52、54。plane 53當(dāng)前type值是1,代表是Primary層;plane 55當(dāng)前type值是0,代表是Overlay層;

2.3.1、Primary層

2.3.2、Overlay層

3、通過modetest指令測(cè)試屏幕輸出

我們可以根據(jù)以上modetest探測(cè)出來的信息,然后發(fā)送以下指令讓色塊顯示到LCD顯示屏上,在ARM端輸入以下命令:

modetest -s 56@53:1024x600@RG24其中:

  • 56,對(duì)應(yīng)Connectors ID;

  • 53,對(duì)應(yīng)CRTCs ID;

  • 1024x600,輸出最大分辨率;

  • RG24,代表RGB888,每個(gè)像素點(diǎn)24bit,R/G/B各8bit;

執(zhí)行以后,我們可以看到屏幕上的顯示效果:

4、如何用/sys/kernel/debug/dri進(jìn)行監(jiān)控

4.1、查看/sys/kernel/debug/dri下的節(jié)點(diǎn)
ls /sys/kernel/debug/dri/0/可以看到:

4.2、獲取dri的狀態(tài)
cat /sys/kernel/debug/dri/0/state可以看到:

4.3、查看dri當(dāng)前的顯示狀態(tài)
cat /sys/kernel/debug/dri/0/summary可以看到:

從以上信息可以看出:

VOP的狀態(tài)是ACTIVE,表示正在運(yùn)行中,如果是DISABLED,表示VOP沒在運(yùn)行。

Connector:DSI 表示對(duì)應(yīng)屏幕接口的名稱。

Display mode表示的是當(dāng)前顯示的分辨率和頻率為,即分辨率為1024*600,頻率為54fps。

4.4、查看當(dāng)前的顯示時(shí)鐘
cat /sys/kernel/debug/clk/clk_summary | grep vop可以看到:

  • 關(guān)于dclk即pixel clock, 像素時(shí)鐘, 該時(shí)鐘由具體的顯示timing決定, 如果dclk不正確, 可能導(dǎo)致fps不對(duì)或直接不顯示.edp, mipi, lvds等顯示接口對(duì)應(yīng)dclk的容忍性較好, 有些偏差也不影響正常顯示.但hdmi, dp等高清顯示接口,是有嚴(yán)格要求的, 這類顯示接口的頻率要給的很精準(zhǔn).

  • DCLK頻率

    指的是像素時(shí)鐘,跟數(shù)據(jù)傳輸有關(guān),液晶面板分辨率越高,像素時(shí)鐘信號(hào)的頻率也越高。在一行內(nèi),像素時(shí)鐘的個(gè)數(shù)與液晶面板一行內(nèi)所具有的像素?cái)?shù)量相等。例如,對(duì)于1024×768的液晶面板,一行有1024個(gè)像素,則在一行中(對(duì)應(yīng)于有效視頻區(qū)間)像素時(shí)鐘的個(gè)數(shù)也是1024個(gè)。

  • aclk_vop:如果該時(shí)鐘頻率太低, 可能會(huì)導(dǎo)致顯示出現(xiàn)抖動(dòng), 另外如果aclk 沒有使能的話, 訪問vop的寄存器也可能引發(fā)總線掛死

  • hclk_vop:如果該時(shí)鐘未使能, 不能訪問vop的寄存器, 一但訪問vop寄存器, 會(huì)造成總線掛死.

5、如何用/sys/類/drm進(jìn)行監(jiān)控

5.1、查看/sys/drm/目錄下的節(jié)點(diǎn)
ls /sys/class/drm可以看到:

5.2、獲取DRM連接器的名稱和當(dāng)前的狀態(tài)
ARM終端輸入:

for p in /sys/class/drm/*/status; do con=${p%/status}; echo -n "${con#*/card?-}:"; cat $p; done可以看到:

當(dāng)前還有其它的節(jié)點(diǎn)可以訪問。

6、基于RK平臺(tái)MIPI DSI設(shè)備調(diào)試實(shí)戰(zhàn)

6.1、查看顯示驅(qū)動(dòng)是否已經(jīng)正常加載
以RK平臺(tái)為例,之前一直調(diào)試的是RV1126_RV1109,RK在底層實(shí)現(xiàn)了自己的一套DRM顯示框架:

MIPI DRM 驅(qū)動(dòng)的加載存在依賴關(guān)系,所以可能會(huì)多次因?yàn)轵?qū)動(dòng)資源暫時(shí)獲取不到而返回 -517 ,但是只要配置正確,待相關(guān)組件驅(qū)動(dòng)能夠完整獲取到資源后,最終就會(huì) bound 成功,如果沒有看到如下:

[ ??0.889511] rockchip-drm display-subsystem: bound ffb00000.vop (ops0xb093e180)
[ ??0.889613] rockchip-drm display-subsystem: bound ffb30000.dsi (ops0xb09448ac)則綁定失敗,通訊異常。

注意:如果你確定軟件上已經(jīng)沒問題了,那么多半是硬件連接的問題,因?yàn)?MIPI 排線比較脆弱,很容易導(dǎo)致接觸不良。

6.2、查看顯示信息
查看命令如下:

cat /sys/kernel/debug/dri/0/summary


6.3、查看當(dāng)前連接狀態(tài)

查看命令:

cat /sys/class/drm/card0-DSI-1/status

6.4、查看當(dāng)前使能狀態(tài)
cat /sys/class/drm/card0-DSI-1/enabled

6.5、查看當(dāng)前支持的顯示模式
查看命令:

cat /sys/class/drm/card0-DSI-1/modes

往期精彩

Linux MIPI DSI LCD設(shè)備驅(qū)動(dòng)開發(fā)調(diào)試細(xì)節(jié)學(xué)習(xí)筆記(一)

Linux MIPI DSI驅(qū)動(dòng)調(diào)試筆記-設(shè)備樹DCS格式序列之配置LCD初始化代碼(二)

Linux MIPI DSI驅(qū)動(dòng)調(diào)試筆記-LCD時(shí)序參數(shù)配置(三)

楊工本周直播PPT分享<<表驅(qū)動(dòng)法在嵌入式產(chǎn)品開發(fā)中的應(yīng)用>>

新產(chǎn)品立項(xiàng)了,作為嵌入式軟件工程師該如何來開展設(shè)計(jì)工作?(個(gè)人經(jīng)驗(yàn)分享)

覺得本次分享的文章對(duì)您有幫助,隨手點(diǎn)[在看]并轉(zhuǎn)發(fā)分享,也是對(duì)我的支持。

嵌入式技術(shù)公眾號(hào)。" data-from="0">

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉