新聞中心

        EEPW首頁 > 光電顯示 > 設計應用 > 基于I2C的OSD顯示驅動設計與實現

        基于I2C的OSD顯示驅動設計與實現

        作者: 時間:2012-07-31 來源:網絡 收藏

        T128設備的初始化,主要是首先映射GPIO和T128相關寄存器到虛擬地址空間,然后檢測總線有沒有初始化,創建互斥體,并建立一個寫線程OsdWriteProc(),同時建立一個寫命令非空事件g_hevOsdQueueEmpty這樣檢測到非空事件時就可以調用寫進程。初始化設備失敗或者設備卸載的時候調用設備卸載函數,卸載時要釋放虛擬GPIO寄存器的空間,調用的卸載函數,并關閉互斥體。

        2.3.3 寫入流程

        實踐中發現在寫OSD時需要停止T128 MCU,寫完后恢復其運行,否則OSD會錯亂。如果要停止T128MCU時,它正在切換視頻、檢測視頻信號,操作未完成時被停掉,則液晶屏會錯亂,圖像分成幾個部分。而上層應用的寫OSD請求不能丟棄,否則上層的狀態又會錯亂,該隱藏的未隱藏,該的沒。因此需要一種機制,既保證上層的寫OSD操作不丟棄,又不與T128 MCU沖突。

        如圖5所示,一個緩沖隊列,接收到上傳人的OSD數據壓入隊列。OSD留給上層的Write接口,不負責實際的寫操作,將數據壓入隊列(此時會激活隊列非空事件)后立即返回。創建一個OSD寫線程,等待緩沖隊列非空事件激活后,查詢T128 MCU狀態,待其空閑后,獲取關鍵代碼段,執行寫操作,寫完后退出關鍵代碼段,進入下一輪循環。

        3 性能分析

        T128通過3根主線跟CPU通信,由T128處理從DVD和PXA270來的視頻信號,這樣OSD就可以在各個源的信號上疊加。由于T128處理了很大一部分視頻信號,降低了CPU的負擔,同時也圓滿解決了OSD在DVD信號上的疊加問題。由于的多主控特點,不會影響掛在I2C上的其他外設的工作和性能。

        4 結語

        本文介紹了PXA270處理器和Windows CE5.0操作系統上的OSD。目前已經在本平臺上穩定運行,具有很好的OSD處理能力。同時,鑒于T128強大的處理功能,該驅動還可以優化和拓展,比如可以利用T128車載平臺機構的翻轉。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 葵青区| 泽州县| 始兴县| 衡南县| 濮阳市| 孝感市| 酒泉市| 潞西市| 南通市| 邳州市| 讷河市| 长子县| 岑巩县| 海林市| 怀仁县| 丰都县| 泰顺县| 读书| 霞浦县| 昌图县| 凭祥市| 乌拉特后旗| 武平县| 邻水| 彰武县| 社旗县| 榕江县| 临潭县| 宝坻区| 大宁县| 安义县| 扶绥县| 蕉岭县| 汉寿县| 保靖县| 鄢陵县| 启东市| 黄骅市| 白水县| 广汉市| 桦川县|