在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

使用Vivado通過AXI Quad SPI實現XIP功能

Hack電子 ? 來源:AMD開發者社區 ? 2024-10-29 14:23 ? 次閱讀

作者:Longley Zhang,AMD工程師;來源:AMD開發者社區

就地執行(eXecute In Place,下面簡稱XIP),即芯片內執行,是指應用程序可以直接在非易失存儲器或閃存中取指然后譯碼、執行,不必再把代碼讀到系統RAM中。它是使用共享內存的擴展,以減少所需的總內存量。AMD的軟核處理器Microblaze可以通過AXI Quad SPI IP實現XIP的功能。AMD提供參考設計XAPP1176(見Ref 1,Ref 2),介紹使用 Vivado 通過 AXI Quad SPI 進行就地執行(XIP)。用戶可以通過這個參考設計了解Microblaze實現XIP功能的基本概念和設計思路。然而這篇文檔使用的Vivado版本是2013.2,這個版本已經很舊了,文檔里面提到的一些工具(如:IMPACT) 以及命令(XMCSUTIL)在新版本的Vivado都已經不支持了,并且XAPP1176里提供的bootloader比較復雜。

本博客提供了基于2023.2 Vivado的參考工程,展示如何使用Microblaze就地執行(XIP)程序,并提供一個簡單的bootloader。

下面是工程創建流程和程序運行步驟:

1. 修改2023.2 AC701 Petalinux BSP里自帶的Vivado工程,使能AXI Quad SPI IP里的XIP模式。

或者創建一個基于AC701的Vivado工程運行,然后運行附件的tcl文件。

8a50db4e-95a6-11ef-a511-92fbcf53809c.png

2. 構建Vivado工程,生成bit文件并導出包含bitstream的xsa文件。

3. 在Vitis里,基于導出的xsa文件創建platform工程,創建兩個工程,一個是bootloader,另外一個是XIP的用戶程序。

這個bootloader只是一個運行在BRAM里的簡單程序,作用是把PC跳轉到XIP程序的起始位置。

XIP程序可以是任何用戶程序,用戶需要在linker script里把.text等只讀的section放到QSPI flash的地址段,把.data/.bss等讀寫的section放到BRAM。

如果.data section里有已經初始化的變量,用戶需要在用戶程序里把.data section復制到BRAM里。

4. 分別右鍵點擊bootloader工程和XIP工程里的src文件夾,導入附件的工程文件。(在本博客的工程里,bootloader工程文件在bootloader_ar的文件夾里,XIP工程文件在dhry_0文件夾里。)

5. 在XSCT里運行mb-objcopy把xip工程的elf文件轉換成bin文件(下面命令把dhry_0.elf轉換成dhry_0.b)。

mb-objcopy -O binary -R .vectors.reset -R .vectors.sw_exception -R .vectors.interrupt -R .vectors.debug_sw_break -R .vectors.hw_exception dhry_0.elf dhry_0.b

6. 在Vitis里,通過菜單Vitis -> Program Device把bootloader.elf更新到bit文件里,生成新的download.bit。

8a732bd6-95a6-11ef-a511-92fbcf53809c.png

7. 在Vivado里,通過菜單Tools -> Generate Write Memory Configuration File把download.bit和XIP工程的bin文件合并成一個mcs文件(這里相當于XAPP1176里的Merging Two MCS Files)。

8aa52ff0-95a6-11ef-a511-92fbcf53809c.png

8. 把生成的mcs文件燒寫到AC701的QSIP flash里,連接UART線,把AC701設置為QSPI flash啟動模式并上電啟動。這樣就能看到串口的打印輸出了,輸出內容是DHRYSTONE測試的結果。

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

    關注

    16

    文章

    1805

    瀏覽量

    115145
  • 存儲器
    +關注

    關注

    38

    文章

    7530

    瀏覽量

    164403
  • 程序
    +關注

    關注

    117

    文章

    3798

    瀏覽量

    81457
  • MicroBlaze
    +關注

    關注

    3

    文章

    68

    瀏覽量

    21609

原文標題:如何使用Microblaze 就地執行(XIP)程序

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

收藏 人收藏

    評論

    相關推薦

    如何將AXI VIP添加到Vivado工程中

    在這篇新博文中,我們來聊一聊如何將 AXI VIP 添加到 Vivado 工程中,并對 AXI4-Lite 接口進行仿真。隨后,我們將在仿真波形窗口中講解用于AXI4-Lite 傳輸事
    發表于 07-08 09:27 ?2055次閱讀

    請問CYW20829能否通過Quad SPI連接固件、用戶數據和Quad SPI SRAM?

    我計劃在下圖所示的配置中使用 CYW20829。 是否可以使用 Quad SPI 連接固件、用戶數據和 Quad SPI SRAM?
    發表于 07-03 06:25

    AXI QUAD SPI的綜合放置中遇到錯誤

    我在AXI QUAD SPI的綜合/放置中遇到以下錯誤我為ext_spi_clk創建了外部端口,為SPI_O創建了接口端口。[放置30-57
    發表于 10-18 14:37

    Vivado無法放置任何時鐘資源

    )無法通過放置階段,會產生大量的放置錯誤,如下所示。基本上,Vivado不能放置與時鐘相關的任何原語 -BUFG,BUFH,PLLE2_ADV,GTHE2_COMMON等。設計針對xc7vx690t
    發表于 11-02 11:32

    [放置30-73]SPI接口IP,如何解決這個嚴重警告?

    - 工具:VIVADO 2017.1 -IP名稱:AXI Quad SPI - 目標設備:Artix 7 - 消息:[放置30-73]寄存器'dsp / Load_Database
    發表于 11-02 11:34

    [放置30-73] axi_quad_spi版本3.2的寄存器'IO1_I_REG'的約束無效

    你好,我們正在收到執行重要警告w.r.t. axi_quad_spi核心的MISO或Io1_i引腳。問題出現是因為核心期望輸入端口被放置在IOB中。這也在支持產品文檔中說明。不幸的是,我們無法將輸入
    發表于 11-12 14:41

    怎么使用AXI Quad SPI IP Core對帶有PROM文件的SPI Flash進行編程

    AXI總線,由AXI主機(PCIe)控制,從主機PC接收其事務。我的想法是能夠通過PCIe鏈路發送PROM bistream到使用新PROM文件對SPI閃存進行編程的
    發表于 03-14 13:53

    Axi quad spi怎么作為從屬設備?

    大家好。當我在zynq-7000中使用axi quad spi ip core作為從設備時,我遇到了一個問題。我將slave axi quad
    發表于 04-17 10:13

    vivado hls axi接口問題

    你好!如果我想使用vivado hls來合成具有axi流接口的代碼,是否有必須遵循的標準編碼風格?
    發表于 04-21 10:23

    如何使用Vivado功能創建AXI外設

    了解如何使用Vivado的創建和封裝IP功能創建可添加自定義邏輯的AXI外設,以創建自定義IP。
    的頭像 發表于 11-29 06:48 ?7186次閱讀
    如何使用<b class='flag-5'>Vivado</b><b class='flag-5'>功能</b>創建<b class='flag-5'>AXI</b>外設

    如何使用Vivado Design Suite IP Integrator的調試AXI接口

    了解如何使用Vivado Design Suite IP Integrator有效地調試AXI接口。 本視頻介紹了如何使用該工具的好處,所需的調試步驟和演示。
    的頭像 發表于 11-29 06:00 ?4060次閱讀

    基于Vivado/SDK 2018.3的XIP參考設計

    Without External Memory,把代碼和只讀數據放在QSPI Flash中運行程序,這就是execute in place (XIP)。 上述XIP參考設計工作正常,但是只更新到了Vivado
    的頭像 發表于 10-09 10:09 ?3472次閱讀

    怎么樣利用AXI Quad SPI快速打通Linux至PL端SPI從設備?

    [導讀] 前面寫過篇介紹ZYNQ基本情況的文章,今天來肝一篇實戰文章介紹AXI quad SPI 使用方法,如果你正使用ZYNQ的這個IP,希望對你有所幫助。 初識AXI
    的頭像 發表于 04-09 17:45 ?8241次閱讀
    怎么樣利用<b class='flag-5'>AXI</b> <b class='flag-5'>Quad</b> <b class='flag-5'>SPI</b>快速打通Linux至PL端<b class='flag-5'>SPI</b>從設備?

    【ZYNQ實戰】利用AXI Quad SPI快速打通Linux至PL端SPI從設備

    [導讀] 前面寫過篇介紹ZYNQ基本情況的文章,今天來肝一篇實戰文章介紹AXI quad SPI 使用方法,如果你正使用ZYNQ的這個IP,希望對你有所...
    發表于 01-26 17:01 ?7次下載
    【ZYNQ實戰】利用<b class='flag-5'>AXI</b> <b class='flag-5'>Quad</b> <b class='flag-5'>SPI</b>快速打通Linux至PL端<b class='flag-5'>SPI</b>從設備

    AMD MicroBlaze中通過AXI Timer獲取時間戳

    硬件的Vivado Block design設計中,添加AXI Timer
    的頭像 發表于 06-08 09:21 ?747次閱讀
    主站蜘蛛池模板: 久久久精品久久久久久久久久久 | 日本一级黄色毛片 | 亚洲一区二区三区免费看 | 天天做天天做天天综合网 | 国产国产人免费人成成免视频 | 国产成人综合亚洲怡春院 | 神马影视午夜 | 亚洲激情视频网站 | 亚洲图片综合区另类图片 | 天天摸天天添人人澡 | 国产精品色片 | 日本天堂影院 | bt天堂在线最新版在线 | 高清一区二区三区 | 色五月婷婷成人网 | 亚洲天天做日日做天天看2018 | 亚欧乱色束缚一区二区三区 | 国模私拍大尺度视频在线播放 | 中国一级毛片aaa片 中国一级特黄aa毛片大片 | 麻豆三级在线播放 | 久久婷婷色一区二区三区 | 免费看男女做好爽好硬视频 | 特黄aa级毛片免费视频播放 | 国产理论片在线观看 | 中文字幕不卡免费高清视频 | 国产人成午夜免费噼啪视频 | 在线观看免费黄视频 | 欧美社区| 欧美色影视 | 日本三人交xxx69视频 | 男人操女人视频在线观看 | 男人天堂资源站 | 伊人网色 | 热久久久久 | 老司机成人精品视频lsj | 黄色大片网 | 免费的很黄很色的床小视频 | 午夜激情福利视频 | 日本加勒比官网 | 天堂社区在线观看 | 伊人操|