国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

Xilinx Vitis 2020.1里面MicroBlaze軟核的sleep函數卡死的問題

C29F_xilinx_inc ? 來源:賽靈思 ? 作者:賽靈思 ? 2022-02-16 16:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在Vitis里面創建了一個LwIP工程,調試的時候發現,在BRAM里面運行正常,但如果改到DDR3內存里面運行,啟動時就會卡死在sleep函數上。

于是建立了一個Hello World工程來檢查,代碼如下:

#include
#include
#include "platform.h"

int main()
{
int i = 0;

init_platform();

xil_printf("Hello World\r\n");
xil_printf("Successfully ran Hello World application\r\n");

while (1)
{
xil_printf("i=%d\r\n", i);
i++;
sleep(1);
}

cleanup_platform();
return 0;
}

用xil_prinf串口打印函數,編譯后.text的大小為4944。將xil_printf全部替換為printf(替換后所有的\r可以省去),編譯后.text的大小為70964。

沒有使能Instruction and Data Cache時,需要在MicroBlaze里面勾選Enable Peripheral AXI Instruction Interface,才能將程序放入DDR3內存中執行:

pYYBAGGYSaKAVAs1AAD0gzlf86Y149.png

poYBAGIMpxmALRTUAAAzYFhpVkU743.png

Code Sections就是程序代碼的放置位置。

pYYBAGIMpxqAZL0BAAELhozcV0c459.png

如果使能了Cache(勾選了Use Instruction and Data Caches),就可以不用勾選Enable Peripheral AXI Instruction Interface(勾不勾選,對sleep函數沒有影響)。

poYBAGIMpxyAD9_YAAE8j9hq3YM319.png

測試后發現:

程序運行在DDR3中,開了cache,用printf:sleep無法使用
程序運行在DDR3中,開了cache,用xil_printf:sleep可以使用
程序運行在DDR3中,不開cache,用printf:sleep無法使用
程序運行在DDR3中,不開cache,用xil_printf:sleep無法使用

但是如果仔細看的話,會發現有些情況下sleep并不是完全卡死,而是過了好幾分鐘才返回,串口打印出下一個i的值。這說明sleep并不是無法使用,而是執行起來非常慢。
sleep函數內部是用匯編語句實現的,可能是放到DDR3里面執行的話,取指有一定的問題。放到BRAM里面則可以正常運行。

所以,如果程序很大,非要放到DDR3里面運行的話,那就最好不要使用sleep函數。可以自己修改sleep函數的代碼,或者干脆自己重定義另外一個延時函數。

審核編輯:符乾江

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

    關注

    73

    文章

    2200

    瀏覽量

    131129
  • MicroBlaze
    +關注

    關注

    3

    文章

    68

    瀏覽量

    22305
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何在AMD Vitis Unified IDE中使用系統設備樹

    您將在這篇博客中了解系統設備樹 (SDT) 以及如何在 AMD Vitis Unified IDE 中使用 SDT 維護來自 XSA 的硬件元數據。本文還講述了如何對 SDT 進行操作,以便在 Vitis Unified IDE 中實現更靈活的使用場景。
    的頭像 發表于 11-18 11:13 ?3113次閱讀
    如何在AMD <b class='flag-5'>Vitis</b> Unified IDE中使用系統設備樹

    同系列性能更強!面向高性能 AI 應用,AXU2CGB-I 有何亮點?

    Cortex-A53 + 雙 Cortex-R5 處理器與強大的 FPGA 可編程邏輯資源,為高端應用提供堅實算力基礎。 ? 板卡支持? Xilinx Vitis-AI DPU ,適配 V
    的頭像 發表于 11-12 16:56 ?1397次閱讀
    同系列性能更強!面向高性能 AI 應用,AXU2CGB-I 有何亮點?

    AMD Vitis AI 5.1測試版現已開放下載

    AMD Vitis AI 5.1全新發布——新增了對 AMD Versal AI Edge 系列神經網絡處理單元( NPU )的支持。Vitis AI 包含優化的 NPU IP、模型編譯工具和部署 API,可在嵌入式平臺上實現可擴展的高性能推理。
    的頭像 發表于 11-08 09:24 ?1307次閱讀

    e203 如何和FPGA通信?

    求教e203 如何和FPGA通信
    發表于 11-07 06:15

    AMD Vitis AI 5.1測試版發布

    AMD Vitis AI 5.1全新發布——新增了對 AMD Versal AI Edge 系列神經網絡處理單元 (NPU) 的支持。Vitis AI 包含優化的 NPU IP、模型編譯工具和部署 API,可在嵌入式平臺上實現可擴展的高性能推理。
    的頭像 發表于 10-31 12:46 ?793次閱讀

    E203提高CPU時鐘頻率方法

    本文將分享我們團隊提高E203主頻的辦法。 查閱芯來科技官方出版的《手把手教你設計CPU——RISC-V處理器篇》教材,我們發現,原本設計的E203主時鐘域應該是100MHZ
    發表于 10-29 06:19

    在移植的時候發現卡死,為什么?

    請教大佬,我是按照網上的教程來移植的,板子是野火的霸天虎,但是到最后驗證的時候出問題了,發現board.c文件中的代碼可以運行,但就是運行不到主函數,而是卡死在以下兩個函數中 以下是我的主
    發表于 09-29 06:28

    線程中調用rt_thread_mdelay()函數卡死的原因?怎么解決?

    在線程中調用rt_thread_mdelay()函數程序卡死。搞了兩天也不知道問題出在哪,怎么解決。 int main(void) { interrupt_config
    發表于 09-11 08:11

    MicroBlaze處理器嵌入式設計用戶指南

    *本指南內容涵蓋了在嵌入式設計中使用 MicroBlaze 處理器、含存儲器 IP 的設計、IP integrator 中的復位和時鐘拓撲結構。獲取完整版《 MicroBlaze 處理器嵌入式設計用戶指南》,請至文末掃描二維碼
    的頭像 發表于 07-28 10:43 ?1077次閱讀

    使用AMD Vitis Unified IDE創建HLS組件

    這篇文章在開發者分享|AMD Vitis HLS 系列 1 - AMD Vivado IP 流程(Vitis 傳統 IDE) 的基礎上撰寫,但使用的是 AMD Vitis Unified IDE,而不是之前傳統版本的
    的頭像 發表于 06-20 10:06 ?2330次閱讀
    使用AMD <b class='flag-5'>Vitis</b> Unified IDE創建HLS組件

    STM32G473進行雙bank升級的時候,進行FLASH的批量擦除回卡死是怎么回事?

    ,也有更新4次、6次卡死的。我嘗試在進行擦除之前關中斷 __disable_irq();發現測試連續30次升級都沒卡死,但沒有找到根本原因。注:調用擦除bank的函數執行在CAN接收中斷
    發表于 06-18 08:04

    如何使用AMD Vitis HLS創建HLS IP

    本文逐步演示了如何使用 AMD Vitis HLS 來創建一個 HLS IP,通過 AXI4 接口從存儲器讀取數據、執行簡單的數學運算,然后將數據寫回存儲器。接著會在 AMD Vivado Design Suite 設計中使用此 HLS IP,并使用嵌入式 Vitis
    的頭像 發表于 06-13 09:50 ?1866次閱讀
    如何使用AMD <b class='flag-5'>Vitis</b> HLS創建HLS IP

    STM32G473 flash擦除時程序卡死,為什么?

    ,也有更新4次、6次卡死的。我嘗試在進行擦除之前關中斷 __disable_irq();發現測試連續30次升級都沒卡死,但沒有找到根本原因。注:調用擦除bank的函數執行在CAN接收中斷
    發表于 06-12 08:05

    STM32G473 flash擦除時程序卡死的原因?

    ,也有更新4次、6次卡死的。我嘗試在進行擦除之前關中斷 __disable_irq();發現測試連續30次升級都沒卡死,但沒有找到根本原因。注:調用擦除bank的函數執行在CAN接收中斷
    發表于 06-09 07:23

    國際亮相中國建2025數字生態大會

    此前,5月13日至14日,中國建2025數字生態大會在雄安會展中心隆重召開。大會以“數智賦能新生態,轉型共贏創未來”為主題,由中國學會指導、中國建成員單位中華輝承辦。中
    的頭像 發表于 05-20 15:55 ?833次閱讀
    中<b class='flag-5'>軟</b>國際亮相中國<b class='flag-5'>核</b>建2025數字生態大會