全志科技公司A83T Qt 支持雙屏顯示

目前A83T支持單屏顯示,首屏為LCD或者首屏為hdmi,都使用無論使用SCREEN0還是SCREEN1都是使用FB0作為framebuffer,在android下可以實現LCD和HDMI同樣屏幕顯示,而我們需要LCD和HDMI分別顯示。
FrameBuffer采用的是linux下的framebuffer分層驅動,fbmem.c作為通用層,然后驅動層實現對fb操作的可選部分,包括一系列的fb_ops。A83T硬件上有一個DE,然后通過TCON0和TCON1實現對顯示的輸出,其中TCON0控制LCD,實現對lvds,dsi,rgb接口的LCD控制,TCON1實現對HDMI的控制,整體的硬件框架如圖。
全志科技公司A83T Qt 支持雙屏顯示
全志科技公司A83T Qt 支持雙屏顯示
從框架上來看是可以實現雙屏異顯的,目前系統無法實現可能還和以前一樣硬件上為了和android配合接下來抽絲剝繭把驅動擼一遍,應該就能找到原因。
驅動層上共注冊了兩個設備,一個是disp,另一個是hdmi,通過disp的probe對全盤進行初始化,通過hdmi的probe進行hdmi的底層初始化。
[ 0.750562] [dev_disp]disp_module_init
[ 0.750989] [dev_disp]disp probe function
[ 0.751092] [dev_disp]start disp_init
[ 0.751297] [dev_disp]display mode is 0
[ 0.751398] [dev_disp]disp_mode is 0,base=0xf1000000, size=0x400000, irq=0
[ 0.751665] [dev_disp]disp_mode is 1,base=0xf1c0c000, size=0x3fc, irq=118
[ 0.751767] [dev_disp]disp_mode is 2,base=0xf1c0d000, size=0x3fc, irq=119
[ 0.751947] [dev_disp]disp_mode is 3,base=0x0, size=0x0, irq=0
[ 0.752048] [dev_disp]disp_mode is 4,base=0xf1c26000, size=0x2fc, irq=0
[ 0.752227] [dev_disp]disp_mode is 5,base=0x0, size=0x0, irq=0
[ 0.752325] [dev_disp]disp_mode is 6,base=0x0, size=0x0, irq=0
[ 0.752503] [dev_disp]disp_mode is 7,base=0x0, size=0x0, irq=0
[ 0.752692] [dev_disp]boot para type is 1,mode is 0
[ 0.752791] [disp_display]start bsp_disp_init
[ 0.753406] [disp_display]start init hdmi
[ 0.753592] [disp_hdmi]hdmi is used,start disp_init_hdmi
[ 0.753692] [disp_hdmi]disp number is 0
[ 0.753868] [disp_hdmi]disp number is 1
[ 0.753965] [disp_hdmi]disp 1 is output by hdmi
[ 0.754064] [disp_hdmi]mode is 4,irq number is 119
[ 0.754243] [disp_hdmi]start check hdmi is supported and register
[ 0.754429] [disp_hdmi]start hdmi init call clk init
[ 0.754605] [disp_hdmi]start hdmi clk init
[ 0.754710] [disp_hdmi]init hdmi and register
[ 0.754954] [dev_disp]total screens is 2
[ 0.792619] [dev_disp]start work
[ 0.792728] [dev_disp]bsp disp sync with hw
[ 0.793464] [dev_disp]output type is not hdmi or hdmi is registed
[ 1.256339] [dev_hdmi]start hdmi module init
[ 1.261716] [drv_hdmi]start hdmi_init
[ 1.266445] [drv_hdmi]start hdmi thread hdmi_run_thread
[ 1.272615] [dev_disp]start work
[ 1.276419] [dev_disp]output type is not hdmi or hdmi is registed

LCD作為首屏和hdmi作為首屏有兩個不一樣的地方,LCD作為首屏使用的是syn=1,貌似是通過硬件進行顯示同步;hdmi時并不這樣做,差異表現在disp的初始化后的start_work函數。
Start_work函數解析。
首先等待初始化完成,如果50ms還沒初始化完成,則報異常。
然后判斷啟動參數,啟動參數為sync=1時,則根據啟動時對應的屏幕是不是一致的,不一致則切換,并且設置硬件sync函數;如果sync不是1時,則分別對不同的屏幕做初始化。啟動時的屏幕配置則從command line中獲取,經過驗證,lcd為主屏是設置為100,hdmi為主屏時設置為00.

從而在start_work中導致了不同,如果是LCD啟動,則如果輸出類型是hdmi且HDMI沒有注冊(也就是沒有初始化)則退出,否則判斷啟動時對應的disp也就是fb是否和控制器對應,不對應則調用bsp_disp_sync_with_hw

bsp_disp_sync_with_hw函數,在啟動時syn=1并且啟動類型不是DISP_OUTPUT_TYPE_NONE時才可以。先獲取fb對應的控制器,然后調用disp_device_attached,從兩個screen里找到一個disp_device_attached可以成功的。然后調用控制器,調用控制器對應的設備的sw_enable。

在sync為0時,如果設置的是使用screen0,id=0或者screen1,id=1時,如果輸出類型是lcd,lcd已經注冊且當前id對應的顯示類型不是lcd,調用bsp_disp_device_switch進行切換,hdmi時也如此操作,如果既不是lcd,也不是hdmi,則直接調用切換。

bsp_disp_device_switch函數就是直接用disp_device_attached函數進行綁定,如果不成功,則從兩個screen里找一個能綁定成功的。

disp_device_attached,找到id對應的mgr,設備存在,類型不為0,則表示已經綁定成功了。
對應設備是enabled同時,enable和disable都存在,disable設備,unsetmanger函數存在時,unsetmanager。根究disp_dev和output_type找到設備,設備具有set_manager時,設置mgr,設備存在set_mode函數時,設置mode。

Fb_init
首先初始化8個framebuffer,其中有一個fb_num的變量,寫死為1,此處做的操作為從設備的信息獲取長寬等信息,填入fb的結構體信息。然后調用display_fb_request函數。

display_fb_request函數。
通過fb_id和fb_para設置fb對應的參數,然后調用Fb_map_video_memory,然后獲取mgr并且通過mgr把參數設置到g_fbi的參數內。

Fb_map_video_memory函數
函數會根據傳入的info內容申請內存并把內存記錄到info的變量內。

把syn=1去掉,換成syn=0;然后在注冊時保證lcd注冊成功;fb_number設置為2,startwork時分別switch一下屏幕,再看日志,再看日志,解決了。
從代碼結構上看,應該是能夠夠實現channel和layer的,但貌似沒怎么好好弄,反正我們也不用這么高級的功能,算了,不研究了。

轉載于:https://blog.51cto.com/13558393/2056499

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/453161.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453161.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453161.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

明日之后怎么跳過實名認證_明日之后寶箱達人活動怎么玩 明日之后寶箱達人可以開箱多少次...

《明日之后》寶箱達人是今天游戲中更新的活動,玩家們在部分的野外地圖中可以找到寶箱。很多玩家都想知道這個寶箱獲得的獎勵是什么。接下來就讓小編給大家帶來明日之后寶箱達人活動獎勵介紹,一起來看看吧。明日之后寶箱達人活動介紹 一、活動時間2020年9…

JVM內存模型與垃圾回收GC

Java開發有個很基礎的問題,雖然我們平時接觸的不多,但是了解它卻成為Java開發的必備基礎——這就是JVM。在C中我們需要手動申請內存然后釋放內存,否則就會出現對象已經不再使用內存卻仍被占用的情況。在Java中JVM內置了垃圾回收的機制&#x…

Windows批處理命令學習

Windows批處理命令學習一 Windows的批處理命令固然比不上unix的shell腳本強大,但用好了仍能給我們的工作帶來很大作用。一個朋友問我為什么學習批處理命令,我以《程序員修煉之道——從小工到專家》一書的一句話答復他:圖形界面的優點是所見即…

介質控制訪問為什么不適用多路復用技術來解決沖突

因為使用頻分多路復用或者時分多路復用會增加延遲時間,同時信道利用率也比較低

CAE所表示的計算機術語是,計算機應用中,英文縮略語CAE所表示的計算機術語是()。...

_剛果紅染色可呈紅色陽性反應的疾病有()。當管流過水斷面流速按拋物線規律分布時,管中水流為紊流。一般含硫量較低的石油多產自碳酸鹽巖系和膏巖系含油層。轉移因子屬于免疫()劑,適用于()。某客戶在南京分行營業部開立的一卡通憑證失磁/損壞,…

第 11 章 Paragraphs

目錄 11.1. para11.2. simpara11.3. formalpara11.4. bridgehead11.5. blockquote11.6. sidebar11.7. TM 商標 11.8. epigraph 題詞11.9. Font Formatting Codes11.9.1. strong11.9.2. bold11.9.3. italic11.9.4. literal11.9.5. remark11.1. para <para>helloworld</…

傷疤好了有黑印怎么辦_春藤家長圈|家有二孩,老大老二一起搶東西,家長該怎么辦?...

本期主講&#xff1a;齊靜美國G.T.I.認證父母效能訓練師高級家庭教育指導師未來春藤家長學院特聘講師(西安)五年一線幼兒教學從業經驗兩個孩子的媽媽每周一次的春藤家長圈線上案例分享時間到啦&#xff01;本周是我們線上案例分享的第十四期&#xff01;本周案例&#xff1a;本…

Java_方法

方法就是將一段代碼封裝在一個結構體中&#xff0c;并且可反復調用 方法的定義&#xff1a; public static 返回值類型 方法名稱 &#xff08;[參數類型 變量&#xff0c; 參數類型 變量&#xff0c;參數類型 變量...]&#xff09;{ 方法中包含的代碼&#xff1b; [return 返回…

2011年度最佳代碼“不管你們信不信,我反正信了”

最近有段十分流行的代碼&#xff0c;是從江湖傳聞“身懷八蛋”的鐵道部發言人王勇平同志的一句名言&#xff1a;“不管你們信不信&#xff0c;我反正信了……這是生命的奇跡……它就是發生了”所引申出來的。這段代碼雖然只是在調侃&#xff0c;但是圍繞這段代碼也產生了一些討…

無錫計算機硬件培訓,無錫錫山辦公軟件電腦基礎培訓隨到隨學 學會為止

一、辦公 2個月WORD文字處理&#xff1b;EXCEL電子表格應用&#xff1b;PowerPoint動畫幻燈片制作&#xff1b;國際互聯網、電子郵件、網上傳真&#xff1b;軟件安裝、計算機維護、基礎、常用辦公硬件的使用(打印機、掃描儀、刻錄機、數碼相機等)從事行政、管理、文秘、銷售、…

以太網和局域網的關系

以太網 以太網是當今現有局域網采用的通用通信協議標準&#xff0c;組建于七十年代早期。Ethernet(以太網&#xff09;是一種傳輸速率為10Mbps的常用局域網&#xff08;LAN&#xff09;標準。在以太網中&#xff0c;所有計算機被連接一條同軸電纜上&#xff0c;采用具有沖突檢…

不懂卷積神經網絡?別怕,看完這幾張萌圖你就明白了

本文來自AI新媒體量子位&#xff08;QbitAI&#xff09;這篇文章用最簡明易懂的方式解釋了卷積神經網絡&#xff08;CNN&#xff09;的基本原理&#xff0c;并繞開了里面的數學理論。 同時&#xff0c;如果想對從頭開始構建CNN網絡之類的問題感興趣&#xff0c;作者推薦去讀《 …

xrd連續掃描和步進掃描_一種提高xrd實驗精度的方法

一種提高xrd實驗精度的方法【專利摘要】本發明公開了一種提高XRD實驗精度的方法&#xff0c;包括如下步驟&#xff1a;步驟1&#xff1a;將待測試樣進行處理至表面平整光潔&#xff1b;步驟2&#xff1a;選用步進掃描方式對待測鋼試樣進行XRD實驗&#xff0c;步進掃描方式的掃描…

2018雙一流排名 計算機,2018中國雙一流高校名單

目前全球范圍內&#xff0c;比較有影響力的世界大學排名包括《QS世界大學排名》、《世界大學學術排名(ARWU)》、《泰晤士高等教育世界大學排名》、《usnews世界大學排名》和CWUR沙特阿拉伯全球大學評級中心世界大學排名。這些排名從各個方面對世界范圍內的高校進行綜合排名&…

交換機和集線器的區別

集線器采用的是共享帶寬的工作方式&#xff0c;簡單打個比如&#xff0c;集線器就好比一條單行道&#xff0c;“10M”的帶寬分多個端口使用&#xff0c;當一個端口占用了大部分帶寬后&#xff0c;另外的端口就會顯得很慢。相反&#xff0c;交換機是一個獨享的通道&#xff0c;它…

移動平臺還有哪些創業機會

這是一個移動互聯網創業的最好時代。 過去的2011年&#xff0c;國內大批創業者為移動互聯網而瘋狂。這個超過200億元的市場牢牢吸引著他們&#xff0c;每天都有新鮮的主意轉化為應用。 移動互聯網時代的創業成本遠小于互聯網時代。創新工場創始人李開復在2011中國移動開發者大…

Swift封裝 滑出式導航欄

前言&#xff1a; 本文將會創建以下幾個主類&#xff1a; DWContainerViewController&#xff1a;這包含了左視圖&#xff0c;中視圖和右視圖控制器的視圖&#xff0c;并處理動畫和滑動等操作。 DWCenterViewController&#xff1a;中央面板。 DWSidePanelViewController&#…

廣東電網計算機專業筆試題目,廣東電網筆試題目

廣東電網筆試題目筆試是一種與面試對應的測試&#xff0c;是以填寫的方法考核應聘者學識水平的重要工具。這種方法可以有效的測量應聘人的基本知識、專業知識、管理知識、綜合分析能力和文字表達能力等素質及能力的差異。下面是小編為大家收集的廣東電網筆試題目&#xff0c;希…

波特率和比特率

波特率&#xff08;符號率&#xff09;&#xff0c;可以理解為傳輸介質實際能達到的電壓變化&#xff0c;比如每秒可以改變多少次。 比特率&#xff0c;是邏輯層面上每秒能傳輸多少個比特。 考慮最簡單的不歸零編碼&#xff0c;用5伏電壓表示1&#xff0c;-5伏電壓表示0&…

usart和uart 的區別

摘自:https://blog.csdn.net/meic51/article/details/7714847 什么是同步和異步 轉自https://blog.csdn.net/seashine_yan/article/details/71192283轉載于:https://www.cnblogs.com/chulin/p/8661720.html