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