目前基于MPSOC的一些參考設計中并沒有實現開機畫面的功能 ,那在一些帶顯示屏的產品在設計的時候就需要這一功能,基于原來傳統的方式也可以在FPGA中來實現,今天分享一個在PS側來實現開機畫面,以節省PL側的寶貴資源。
這個設計是基于PS側的RPU(R5_0)來實現的上電送顯,首先系統上電在載完FPGA代碼后同時啟動A53和RPU,然后我們通過RPU初始化HDMI接口并實現開機畫面的送,在顯示指定時間后自動退出來將HDMI(Mixer,Framebuffer等)控制權給ARM(A53)來使用。
目前參考工程中開機畫面的分辨率為640x480,圖像數據也是以靜態數組的形式存儲在logo.c中,用戶可以將自己的圖片數據以RGB的形式存儲在logo.c中,參考設計中也是提供一個轉換方法將jpg或png的格式轉換成數組文件
將BOOT.bin及原來vcu trd軟件包中的image.ub 、boot.scr拷貝到SD中在ZCU106上運行測試。
使用vitis工具新建一個R5的軟件工程
基于vcu trd 2020.1開發包里的xsa新建一個平臺
導入hdmi的參考示例代碼,注意選擇版本為R5
更新配置及替換代碼
在xhdmi_example.c中的我們基于vcu trd實現了對framerbuffer、mixer、hdmitx 等IP的初始化及圖像數據的搬運、送顯,還有開機畫面時間的控制。
將R5的串口輸出定向到uart1,便于調試
替換xhdmi_example.c文件
修改自定義開機畫面顯示時間
用戶可以根據自己系統實際開機時間來通過logoShowTime變量設置開機畫面停留 的時間,如果想控制得更精確一些可以再實現一個R5和A53的通訊接口。
編譯生成TxOnly_R5.elf
打包BOOT.bin
修改打包配置文件bif文件如下
使用bootgen工具生成BOOT.bin
自定義開機畫面
使用ffmpeg工具將jpg或png圖片轉成RGB的裸數據
$ffmpeg -ilogo.jpg -vcodecrawvideo -pix_fmtrgb24 logo.rgb
將二進制的裸數據轉成數組
$./raw2varlogo.rgb 》logo.c
替換工程中的logo.c再重新編譯生成TxOnly_R5.elf并重新打包生成BOOT.bin
運行系統
將BOOT.bin及原來vcu trd軟件包中的image.ub 、boot.scr拷貝到SD中在ZCU106上運行測試。
編輯:jq
-
MPSoC
+關注
關注
0文章
198瀏覽量
24272
原文標題:基于MPSOC實現HDMI開機畫面顯示
文章出處:【微信號:FPGA-EETrend,微信公眾號:FPGA開發圈】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論