女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

    文章

    2181

    瀏覽量

    124288
  • MicroBlaze
    +關注

    關注

    3

    文章

    68

    瀏覽量

    21854
收藏 人收藏

    評論

    相關推薦
    熱點推薦

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

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

    在Ubuntu16.04上從版本2020.1 OpenVINO?升級到2021.4.2之后不兼容怎么解決?

    OpenVINO? 2020.1 成功構建自定義庫。 升級至 OpenVINO? 2021.4.2,并重新構建自定義庫。 加載自定義庫時收到錯誤: /src/.build.linux
    發表于 03-05 10:00

    LDC1000里面配套的PCB線圈的電感值是多少?

    LDC1000里面配套的PCB線圈的電感值是多少?還有用電感公式算出來的電感能用來做什么?我之前以為能算出靠近PCB線圈的電感的電感值
    發表于 01-17 08:07

    使用AMD Vitis進行嵌入式設計開發用戶指南

    Zynq MPSoC 和 AMD Alveo 數據中心加速器卡)為目標的異構嵌入式應用。 Vitis 工具包括: C++ 編譯器、庫和本征函數,適用于 AI 引擎和可編程邏輯( PL ) 適用于 Arm
    的頭像 發表于 01-08 09:33 ?1252次閱讀
    使用AMD <b class='flag-5'>Vitis</b>進行嵌入式設計開發用戶指南

    AMD Vitis Unified Software Platform 2024.2發布

    近日,全新 AMD Vitis Unified Software Platform 2024.2 版本推出。
    的頭像 發表于 11-27 15:47 ?623次閱讀

    如何申請xilinx IP的license

    在使用FPGA的時候,有些IP是需要申請后才能使用的,本文介紹如何申請xilinx IP的license。
    的頭像 發表于 10-25 16:48 ?1126次閱讀
    如何申請<b class='flag-5'>xilinx</b> IP<b class='flag-5'>核</b>的license

    MicroBlaze V處理器的功能特性

    本指南提供了有關 AMD Vivado Design Suite 中包含的 32 位和 64 位 MicroBlaze V 處理器的信息。該文檔旨在用作為處理器硬件架構的指南,隨附《RISC-V 指令集手冊》第一卷和第二卷。
    的頭像 發表于 10-16 09:17 ?942次閱讀
    <b class='flag-5'>MicroBlaze</b> V<b class='flag-5'>軟</b><b class='flag-5'>核</b>處理器的功能特性

    pcm5121里面EQ如何設定做1.1通道輸出?

    pcm5121里面EQ如何設定做1.1通道輸出
    發表于 09-30 08:27

    高斯卷積函數在圖像采樣中的意義

    高斯卷積函數在圖像采樣中的意義主要體現在以下幾個方面: 1. 平滑處理與去噪 平滑圖像 :高斯卷積函數通過其權重分布特性,即中心像素點權重最高,周圍像素點權重逐漸降低,實現了對圖像
    的頭像 發表于 09-29 09:33 ?752次閱讀

    [XILINX] 正點原子ZYNQ7035/7045/7100開發板發布、ZYNQ 7000系列、雙ARM、PCIe2.0、SFPX2!

    正點原子FPGA新品ZYNQ7035/7045/7100開發板,ZYNQ 7000系列、雙ARM、PCIe2.0、SFPX2! 正點原子Z100 ZYNQ開發板,搭載Xilinx Zynq7000
    發表于 09-02 17:18

    請問TINA-TI 9里面是否有與非門?

    TINA-TI 9里面是否有與非門?
    發表于 08-15 08:03

    STM32F407GET6的工程發CAN數據時,容易卡死在rt_device_write函數里面,為什么?

    同樣是在RTThread里面調用 rt_device_write(can_dev, 0, &msg, sizeof(msg)) 發送CAN數據時, 基于STM32F407GET6的工程就容易卡死在這個函數
    發表于 07-15 08:26

    在ESP32使用esp-idf框架該如何獲取系統上電時間呢?

    ESP8266里面可以通過 esp_get_time()函數 獲取系統上電時間, 在 ESP32 使用 esp-idf 框架 該如何獲取系統上電時間呢? 謝謝
    發表于 06-19 07:13

    esp32-c3使用esp_sleep_enable_ext1_wakeup()函數報錯的原因?

    在程序中添加esp_sleep_enable_ext1_wakeup(ext_wakeup_pin_1_mask, ESP_EXT1_WAKEUP_ANY_HIGH);為啥會報錯,在官網文檔
    發表于 06-18 07:23

    FPGA | Xilinx ISE14.7 LVDS應用

    產生,原語的使用可參考: E:\\Xilinx\\ISE\\14.7\\ISE_DS\\ISE\\doc\\usenglish\\isehelp\\spartan6里面提供了所用器件的原語
    發表于 06-13 16:28