一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

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

掃碼添加小助手

加入工程師交流群

在Vitis里面創(chuàng)建了一個(gè)LwIP工程,調(diào)試的時(shí)候發(fā)現(xiàn),在BRAM里面運(yùn)行正常,但如果改到DDR3內(nèi)存里面運(yùn)行,啟動(dòng)時(shí)就會(huì)卡死在sleep函數(shù)上。

于是建立了一個(gè)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串口打印函數(shù),編譯后.text的大小為4944。將xil_printf全部替換為printf(替換后所有的\r可以省去),編譯后.text的大小為70964。

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

pYYBAGGYSaKAVAs1AAD0gzlf86Y149.png

poYBAGIMpxmALRTUAAAzYFhpVkU743.png

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

pYYBAGIMpxqAZL0BAAELhozcV0c459.png

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

poYBAGIMpxyAD9_YAAE8j9hq3YM319.png

測試后發(fā)現(xiàn):

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

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

所以,如果程序很大,非要放到DDR3里面運(yùn)行的話,那就最好不要使用sleep函數(shù)??梢宰约盒薷膕leep函數(shù)的代碼,或者干脆自己重定義另外一個(gè)延時(shí)函數(shù)。

審核編輯:符乾江

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Xilinx
    +關(guān)注

    關(guān)注

    73

    文章

    2185

    瀏覽量

    125322
  • MicroBlaze
    +關(guān)注

    關(guān)注

    3

    文章

    68

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    使用AMD Vitis Unified IDE創(chuàng)建HLS組件

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

    STM32G473進(jìn)行雙bank升級(jí)的時(shí)候,進(jìn)行FLASH的批量擦除回卡死是怎么回事?

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

    如何使用AMD Vitis HLS創(chuàng)建HLS IP

    本文逐步演示了如何使用 AMD Vitis HLS 來創(chuàng)建一個(gè) HLS IP,通過 AXI4 接口從存儲(chǔ)器讀取數(shù)據(jù)、執(zhí)行簡單的數(shù)學(xué)運(yùn)算,然后將數(shù)據(jù)寫回存儲(chǔ)器。接著會(huì)在 AMD Vivado Design Suite 設(shè)計(jì)中使用此 HLS IP,并使用嵌入式 Vitis 應(yīng)
    的頭像 發(fā)表于 06-13 09:50 ?653次閱讀
    如何使用AMD <b class='flag-5'>Vitis</b> HLS創(chuàng)建HLS IP

    STM32G473 flash擦除時(shí)程序卡死,為什么?

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

    STM32G473 flash擦除時(shí)程序卡死的原因?

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

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

    OpenVINO? 2020.1 成功構(gòu)建自定義庫。 升級(jí)至 OpenVINO? 2021.4.2,并重新構(gòu)建自定義庫。 加載自定義庫時(shí)收到錯(cuò)誤: /src/.build.linux
    發(fā)表于 03-05 10:00

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

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

    使用AMD Vitis進(jìn)行嵌入式設(shè)計(jì)開發(fā)用戶指南

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

    AMD Vitis Unified Software Platform 2024.2發(fā)布

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

    如何申請xilinx IP的license

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

    MicroBlaze V處理器的功能特性

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

    pcm5121里面EQ如何設(shè)定做1.1通道輸出?

    pcm5121里面EQ如何設(shè)定做1.1通道輸出
    發(fā)表于 09-30 08:27

    高斯卷積函數(shù)在圖像采樣中的意義

    高斯卷積函數(shù)在圖像采樣中的意義主要體現(xiàn)在以下幾個(gè)方面: 1. 平滑處理與去噪 平滑圖像 :高斯卷積函數(shù)通過其權(quán)重分布特性,即中心像素點(diǎn)權(quán)重最高,周圍像素點(diǎn)權(quán)重逐漸降低,實(shí)現(xiàn)了對(duì)圖像
    的頭像 發(fā)表于 09-29 09:33 ?852次閱讀

    [XILINX] 正點(diǎn)原子ZYNQ7035/7045/7100開發(fā)板發(fā)布、ZYNQ 7000系列、雙ARM、PCIe2.0、SFPX2!

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

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

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