那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

microblaze之Video Processing Subsystem調試誤區

Hack電子 ? 來源:CSDN技術社區 ? 作者:古樓望月 ? 2022-10-31 13:56 ? 次閱讀

內容:總結video processing subsystem調試中遇到的問題,以及在解決問題中的思路方法論,引為前車之鑒。

1,我的目的是希望采用vps中的scaler模塊對圖像進行拉伸縮小。IP的配置如下:

58fe184c-58d9-11ed-a3b6-dac502259ad0.png

2,整個系統的框架圖如下,僅比上期的內容增加了scaler模塊,如下:

59212cec-58d9-11ed-a3b6-dac502259ad0.png

3,查手冊,可以知道這個scaler only組件分成了hscale,vscale和GPIO,其中GPIO是控制上下游stream流控設備復位用,暫時忽略。hscale和vscale的寄存器空間如下,主要關注圖像的大小,以及縮放比率:

593c2006-58d9-11ed-a3b6-dac502259ad0.png

4,vivado中的工程綜合完畢之后,進入SDK之中,可以看到xv_hscale.h和xv_vscale.h,文件內部包含了控制這個scale模塊的函數。雖然使用的是scaler only模式,但是系統自動生成了所有的IP文件,例如deinterlace,csc等,因為這里指需要使用scale,因此直接操控xv_hscale和xv_vscale或許更簡單。

596ade50-58d9-11ed-a3b6-dac502259ad0.png

5,在SDK內部編寫控制代碼,下載之后輸出沒有圖像,添加打印之后發現hscale初始化失敗,而vscale初始化成功,對比了hscale和vscale的驅動代碼后,發現是完全一致的,于是沒有明白原因何在,如下:

5989c7c0-58d9-11ed-a3b6-dac502259ad0.png

6,在SDK中采用debug單步調試,于是發現了問題所在,原來hscale傳遞的基地址參數為0x00,這是一個非法的地址。但是想一想就知道這是系統自動生成的驅動文件,不應該出現這種低級的錯誤才對。于是去查看系統設備描述文件xparameters.h,發現hscale的地址確實是0x000000,vscale的地址是0x20000,而vps的基地是0x44A40000。

59ae93ca-58d9-11ed-a3b6-dac502259ad0.png

7,后面懷疑過自己的工程創建是否有誤,以及創建IP過程中可否允許編輯起始地址,但結果根本無法編輯,工程也確認無誤。后來想到應該是hscale和vscale的基地址僅僅是整個IP的偏移地址而已,在初始化的時候應該加上IP的首地址,于是做如下更改,并設置好圖像的寬高,但是line ratepixel rate卻不知道填寫多少,寫一個45和74吧,因為我的圖像是720P60,水平同比是45Khz,像素時鐘是74.25,結果當然還是沒有圖像輸出,原因是這個兩個值是錯誤的。同時把寄存器讀出來之后可以知道所有的數據是配置了的,那么原因就是某些數據是錯誤的。

59c7c00c-58d9-11ed-a3b6-dac502259ad0.png

8,想到上次調試TPG模塊的時候,圖像的寬度需要除以2,進而也嘗試之后仍然不對。于是去xilinx論壇社區找一下有無相同的問題。搜索vpss scaler后瀏覽,發現有人在gitup里面上傳有scale的代碼,于是點擊后大致瀏覽一遍,發現了line rate和pixel rate 的計算公式:

5a070f32-58d9-11ed-a3b6-dac502259ad0.png

9,有這個發現之后,因為我的輸入和輸出的寬度和高度是一樣的,因此line rate 和pixel rate應該設置為65536?,F在終于知道了這兩個參數指的意思分別是縱向和橫向的縮放比率。

5aa87f84-58d9-11ed-a3b6-dac502259ad0.png

10,原本以為可以出圖了,實際上還是沒有出圖,讓人沒想到的是程序只要執行scaler_set_HwReg的任何函數,程序立馬就跑飛了。然后重新燒錄bit文件,重新運行elf文件,還是一樣的結果。這個時候我把Block design中的debug信號全部去掉,同時把AXI系統時鐘由150M改為100M,最終的結果還是會跑飛。這時候我想軟件上面沒有改動的余地了,于是想知道VPS這個IP的AXI總線是處于什么狀態,當我執行這些函數的時候。于是僅把AXI總線信號加入debug模塊,觸發運行后得到如下的結果,情況是VPS沒有應答,因此CPU直接掛掉了。

5acfe7fe-58d9-11ed-a3b6-dac502259ad0.png

11,這個時候差點快絕望了,于是放棄直接控制h_scale和v_scale的方式,改用控制最上層的vps,誰知道xilinx需要做什么騷操作。首先看一下xvprocss.h文件信息,里面定義各種操作的函數,初始化函數中依據所定義的子IP,SetSubsystemConfig函數有選擇性的進行配置。

5b0c555e-58d9-11ed-a3b6-dac502259ad0.png

12,然后仔細的看了一遍函數中的數據結構定義,于是重新編寫了控制程序,這時候想應該有圖輸出了吧,然而還是沒有圖輸出。并且把里面的寄存器讀出來之后,發現除了最開始0x00寄存器空間之外,其他數據全部是0,確實很意外。

5b4d4d48-58d9-11ed-a3b6-dac502259ad0.png

13,到了這個時候,確實沒有招了,于是來回的改來改去,無意中多注釋了兩行代碼,結果出圖了,同時監控AXI總線上的數據,也有應答了。原來是我在配置完成之后,又把這個IP軟復位了。因此其余的數據全部變成了0。印證了陸游的那句話,山窮水復疑無路,柳暗花明又一村。

5b828968-58d9-11ed-a3b6-dac502259ad0.png

5c06126a-58d9-11ed-a3b6-dac502259ad0.png

總結:

1,通過調試這個IP,對于軟件編程有了更進一步的了解;

2,其實直接控制h_scale和v_scale應該可以達到同樣的功能,只不過這個IP需要有特殊的配置順序,以及各種復位邏輯,任何的差池都會導致沒有圖像輸出;

3,目前還沒有深入了解這個IP的控制流程,還需要深入底層去看實現的細節部分,比如實現deinterlace等其他功能。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Video
    +關注

    關注

    0

    文章

    195

    瀏覽量

    45264
  • MicroBlaze
    +關注

    關注

    3

    文章

    68

    瀏覽量

    21590
  • Subsystem
    +關注

    關注

    0

    文章

    5

    瀏覽量

    6624

原文標題:microblaze之Video Processing Subsystem調試誤區

文章出處:【微信號:Hack電子,微信公眾號:Hack電子】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    MicroBlaze串口設計

    本系統中,Basys3的MicroBlaze模塊調用基于AXI協議的UART IP核,通過AXI總線實現MicroBlaze-UART之間的通信,完成串口打印。
    發表于 08-02 09:32 ?1603次閱讀
    <b class='flag-5'>MicroBlaze</b>串口設計

    Video Processing Using FPGAs in Video Surveillance Systems

    Video Processing Using FPGAs in Video Surveillance SystemsVideo surveillance systems are a key
    發表于 08-08 12:32

    ATSC Standard:AVC Video Transport Subsystem Characteristics

    ATSC Standard:AVC Video Transport Subsystem CharacteristicsIn issuing this standard, the ATSC
    發表于 10-16 08:36

    如何理解DM8148的HD Video Coprocessor Subsystem和Media Controller Subsystem中的HDVICP2

    和HDVICP2.。在1.4節又提到了HD Video Coprocessor Subsystem,簡稱也是HDVICP2。請問這兩個有什么不同?非常感謝
    發表于 05-28 11:17

    怎么遠程調試microblaze軟件

    嗨,我已經在Xiphos上問了這個問題,但得到了負面的反饋。我正在嘗試在嵌入式系統上安裝gdb服務器來遠程調試microblaze-gcc編譯的應用程序。我使用gcc編譯器在本地主機上進行了遠程調試
    發表于 02-27 09:46

    調試Microblaze應用程序出現處理器無法停止的錯誤

    嗨,大家好,我正在嘗試調試我的Microblaze應用程序,但是當我啟動它并且讓時間過去時它會停止在XMD控制臺中顯示此消息:處理器無法停止錯誤:MicroBlaze未被計時。檢查
    發表于 07-17 14:18

    SDK 16.2無法調試Microblaze

    我正在使用SDK 16.2調試微問題。最初,Vivado 16.2沒有推出SDK 16.2,但是當我手動啟動它時,它無法調試microblaze。我嘗試使用SDK 15.4&amp; Vivado 15.4和一切都工作得很好。
    發表于 09-27 09:49

    TMS320DM335 pdf datasheet(數字媒體

    for display applications that do not require video compression and decompression. Coupled with a video processing
    發表于 08-05 10:25 ?19次下載

    VIDEO PROCESSING FOR DLPTM DIS

    VIDEO PROCESSING FOR DLPTM DISPLAY SYSTEMS:Texas Instruments’ Digital Light ProcessingTM (DLPTM
    發表于 10-01 16:56 ?17次下載

    Video and Image Processing Up

    The Altera® video and image processing up conversion example designdemonstrates up conversion
    發表于 11-24 11:12 ?11次下載

    TMS320DM335-216,pdf(Digital Me

    for display applications that do not require video compression and decompression. Coupled with a video processing
    發表于 12-01 23:42 ?45次下載

    TMS320DM335-135,pdf(Digital Me

    for display applications that do not require video compression and decompression. Coupled with a video processing
    發表于 12-01 23:46 ?18次下載

    MicroBlaze性能詳解

    MicroBlaze是一個高度靈活可以配置的軟核。你可以根據你設計的需要,對MicroBlaze進行裁減,用最少的資源完成設計的需要。 MicroBlaze的基本特性: 32個32位的通用寄存器
    發表于 11-25 09:11 ?8592次閱讀

    HDMI_1.4_2.0_RX_Subsystem_IP介紹和基礎debug建議

    Xilinx HDMI 1.4/2.0 RX的解決方案是由HDMI 1.4/2.0 Receiver Subsystem IP作為MAC和Video PHY Controller IP作為PHY組成,在板上,由外部電阻來實現TMDS level shifter,還有TMD
    的頭像 發表于 03-25 09:13 ?4117次閱讀

    Video Processing subsystem例程分析

    連接設備:v_proc_ss_0---m_axi_mm(接收video_processing_subsystem master端口傳過來的 數據)時鐘來源:mig_7series_0---ui_clk/ACLK
    的頭像 發表于 10-28 14:30 ?2075次閱讀
    威尼斯人娱乐官方| 百家乐的看路技巧| 大发888易发| 运城百家乐官网的玩法技巧和规则| 威尼斯人娱乐网假吗 | 澳门百家乐官网加盟| 大发888娱乐85战神版| 百家乐三宝| 葡京百家乐官网的玩法技巧和规则| 大发888赌场 游戏平台| 现金百家乐人气最高| 马牌百家乐官网现金网| 百家乐赌术大揭秘| 百家乐官网棋牌游戏开发| 至尊百家乐官网贺一航| 澳门博彩有限公司| 太阳城公司| 线上百家乐玩法| 百家乐官网赌场代理| 真钱的棋牌游戏| 百家乐博百家乐的玩法技巧和规则| 网上赌百家乐正规吗| 24山72向水口吉凶断| 百家乐官网游戏百家乐官网| 百家乐官网玩家技巧分享| 博彩行业| 德州扑克底牌| 威尼斯人娱乐场有什么玩| 土豪百家乐的玩法技巧和规则| 百家乐娱乐优惠| 玩百家乐优博娱乐城| 百家乐系统足球博彩通| 百家乐是不是有假| 永利百家乐娱乐| 百家乐补牌规制| 81数理 做生意| 24山风水发几房| 杨公24山向水法吉凶断| 24楼层风水| 择日自学24| 澳门百家乐投注法|