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

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

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

Vitis調(diào)試技巧-從Vitis中導(dǎo)出數(shù)據(jù)到本地

FPGA開源工坊 ? 來源:FPGA開源工坊 ? 2023-05-29 09:35 ? 次閱讀

在Zynq開發(fā)中有一個(gè)很常用的功能是將ARM端的數(shù)據(jù)導(dǎo)出到本地,然后通過Matlab,Python等工具對數(shù)據(jù)進(jìn)行分析。

可以在Vitis的Memory窗口中觀察到Zynq內(nèi)存中的數(shù)據(jù),如下圖:

e5ca23b0-fd66-11ed-90ce-dac502259ad0.png

如果僅僅是觀察幾個(gè)數(shù)據(jù)的值,在這個(gè)窗口里面操作也足夠了,但是往往是需要將這些導(dǎo)出來進(jìn)行分析的。可以通過外置的接口比如串口,網(wǎng)口等方式將內(nèi)存中的數(shù)據(jù)傳到本地,但是這些方式都需要上位機(jī)的配合。

在Vitis中提供了mrd的命令來幫助我們將這些數(shù)據(jù)導(dǎo)出來。

基本的使用方式如下,filename.txt是指保存的文件名,0x00000000指的是起始地址,256是指保存的大小,這個(gè)大小不一定是字節(jié),這個(gè)需要注意。

mrd -bin -file filename.txt 0x00000000 256

我們在xsct console中輸入上面的命令

e5d4b9d8-fd66-11ed-90ce-dac502259ad0.png

保存出來的文件如下所示,可以看到的確是從00000000地址起始的數(shù)據(jù),可以和上面Memory窗口中的數(shù)據(jù)對應(yīng)上。

因?yàn)槊總€(gè)數(shù)據(jù)都是8bit的,所以00 01 02 03這四個(gè)數(shù)據(jù)就是4個(gè)字節(jié),那么下圖中一行就是16個(gè)字節(jié),而整個(gè)文件一共有64行(篇幅有限,所以沒有全部截下來),也就是1024個(gè)字節(jié),而在命令中只輸入了256作為保存的大小,這又是為什么呢。

e5df922c-fd66-11ed-90ce-dac502259ad0.png

通過查看xilinx提供的手冊可以看到mrd還有一些其他的參數(shù)來控制保存數(shù)據(jù)的大小。

e5eac94e-fd66-11ed-90ce-dac502259ad0.png

可以看到第二個(gè)選項(xiàng)-size,里面提供了-b也就是按字節(jié)(8 bit)大小來保存,-h按半字(16 bit)來保存,-w是按字(32 bit)來保存,-d(64 bit)是按雙字來保存,在默認(rèn)情況下就按字來保存的。

因?yàn)閆YNQ是32bit處理器,所以半字,字,雙字的位寬是括號里面的值。

那么就可以解釋為啥我們給定的大小是256,而保存的文件有1024個(gè)字節(jié)了,1024=256*4(byte)。

所以我們可以通過指定-size這個(gè)選項(xiàng)來控制按哪種方式來保存數(shù)據(jù)的大小。

比如輸入下面這句命令

mrd-bin-sizeb-filefilename.txt0x00000000256

保存下來的數(shù)據(jù)如下圖所示:這次就真的是256個(gè)字節(jié)了,一行是16個(gè)字節(jié),一共16行

e5fc2e28-fd66-11ed-90ce-dac502259ad0.png

另外手冊上還有一個(gè)-unaligned-access的選項(xiàng),這個(gè)選項(xiàng)是為了讓我們保存數(shù)據(jù)的時(shí)候可以從非對齊地址開始保存。對于32位地址空間來說就是按4字節(jié)對齊的,也就是如果不知道-unaligned-access的選項(xiàng)我們在獲取數(shù)據(jù)的時(shí)候起始地址必須以0,4,8等4的倍數(shù)開始的地址,如果你強(qiáng)行指定一共0x00000001這樣的非對齊地址,他保存數(shù)據(jù)的時(shí)候也是從0x00000000開始的。

mrd -bin -file filename.txt 0x00000001 256
mrd -bin -file filename.txt 0x00000000 256

比如上面兩句命令,他保存出來的結(jié)果是一樣的,注意值是從0開始的,如下所示:

e60485c8-fd66-11ed-90ce-dac502259ad0.png

當(dāng)我們指定非對齊之后,獲取到的數(shù)據(jù)就是從01開始的,也就是從地址00000001獲取到的數(shù)據(jù)

mrd -bin -unaligned-access -file filename.txt 0x00000001 256

e61130de-fd66-11ed-90ce-dac502259ad0.png

需要注意的是,這里的對齊并不是和多少位總線,或者操作系統(tǒng)是多少位的有關(guān),而是和之前我們指定的-size這個(gè)選項(xiàng)有關(guān),在默認(rèn)情況下是按-w也就是字來對齊的,也就是按32bit對齊。在-b下就是按8bit對齊,在這種情況下也就沒有對不對齊的概念了,因?yàn)?bit對齊就是按0,1,2,3,4等等這樣的自然序?qū)R的。所以-d是按64bit對齊,-h是按16bit對齊。

比如下面這句話沒有指定非對齊獲取,他也能從地址1開始取數(shù),因?yàn)樗旧砭褪菍R的。

mrd -bin -size b -file filename.txt 0x00000001 256

e61dd67c-fd66-11ed-90ce-dac502259ad0.png

上面這個(gè)小技巧是經(jīng)常使用的哦,比如在FPGA中處理完一組數(shù)據(jù)后想分析一下處理的對不對就可以把數(shù)據(jù)通過這種方式取出來,然后使用Matlab python等工具進(jìn)行處理。例如在FPGA中做了一個(gè)Sobel的邊緣檢測,就可以把處理完的數(shù)據(jù)拿出來,用Matlab、Python等工具把處理結(jié)果恢復(fù)成圖像,或者直接和參考模型進(jìn)行比對。





審核編輯:劉清

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

    關(guān)注

    1629

    文章

    21736

    瀏覽量

    603419
  • ARM處理器
    +關(guān)注

    關(guān)注

    6

    文章

    360

    瀏覽量

    41746
  • 上位機(jī)
    +關(guān)注

    關(guān)注

    27

    文章

    942

    瀏覽量

    54815
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4797

    瀏覽量

    84690

原文標(biāo)題:Vitis調(diào)試技巧--從Vitis中導(dǎo)出數(shù)據(jù)到本地

文章出處:【微信號:FPGA開源工坊,微信公眾號:FPGA開源工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Vitis里如何創(chuàng)建嵌入式軟件工程

    Vitis可以為異構(gòu)平臺的應(yīng)用實(shí)現(xiàn)加速。其實(shí),Vitis也能完美的支持嵌入式軟件開發(fā)。下面以MicroZed單板為例,介紹在Vitis里如何創(chuàng)建嵌入式軟件工程,并且編譯和調(diào)試,直到啟動(dòng)
    的頭像 發(fā)表于 11-04 12:03 ?5552次閱讀
    <b class='flag-5'>Vitis</b>里如何創(chuàng)建嵌入式軟件工程

    如何把賽靈思SDK工程移植Vitis

    2019.2 版開始,賽靈思 SDK 開發(fā)環(huán)境已統(tǒng)一整合到全功能一體化的 Vitis 統(tǒng)一軟件平臺 中。 馬上開始將工程賽靈思 SDK 移植
    的頭像 發(fā)表于 11-09 16:57 ?2723次閱讀

    Vitis2023.2使用之—— classic Vitis IDE

    Vitis 已經(jīng)更新到2023.2了,新版本相較于舊版本更新了嵌入式平臺,新版平臺增加了Versal? AI 引擎 DSP 設(shè)計(jì)的增強(qiáng)功能,全新的獨(dú)立 Vitis 嵌入式軟件,最新 Vitis 統(tǒng)一
    發(fā)表于 03-24 16:15

    Vitis2023.2使用之—— updata to Vitis Unified IDE

    Workspace To Unified IDE 選擇導(dǎo)出的路徑文件位置 這時(shí)候就會在所選路徑下生成遷移腳本migrate.py,然后打開 VivadoTcl Shell ,cd腳本文件夾下輸入命令 vitis
    發(fā)表于 03-24 17:14

    Vivado硬件平臺更新后Vitis工程如何更新

    立的硬件平臺上右擊,選擇Update Hardware Specification,選擇最新導(dǎo)出的硬件平臺文件;    在建立的應(yīng)用工程上,選擇應(yīng)用工程對應(yīng)的硬件平臺,將上一個(gè)目錄的硬件平臺Remove,否則刪除上一個(gè)VITIS目錄后,目前移動(dòng)以后的
    發(fā)表于 01-15 16:46

    Vitis的使用教程

    在學(xué)習(xí)ZYNQ嵌入式開發(fā)的過程中,正點(diǎn)原子的教程是采用SDK,而我下載的vivado2020.1已經(jīng)變成了vitis,所以寫一這篇博客,方便后續(xù)查閱。
    發(fā)表于 02-04 07:09

    如何keil中導(dǎo)出內(nèi)存數(shù)據(jù)matlab中?

    如何keil中導(dǎo)出內(nèi)存數(shù)據(jù)matlab中?
    發(fā)表于 11-19 08:07

    使用Vitis HLS創(chuàng)建屬于自己的IP相關(guān)資料分享

    Xilinx而言,Vivado 2019.1之前(包括),HLS工具叫Vivado HLS,之后為了統(tǒng)一將HLS集成Vitis里了,集成之后增加了一些功能,同時(shí)將這部分開源出來了。Vitis
    發(fā)表于 09-09 16:45

    Vitis初探—1.將設(shè)計(jì)SDSoC/Vivado HLS遷移到Vitis上的教程

    本文介紹如何一步一步將設(shè)計(jì)SDSoC/Vivado HLS遷移到Vitis平臺。
    的頭像 發(fā)表于 07-25 17:45 ?3899次閱讀
    <b class='flag-5'>Vitis</b>初探—1.將設(shè)計(jì)<b class='flag-5'>從</b>SDSoC/Vivado HLS遷移到<b class='flag-5'>Vitis</b>上的教程

    Vitis初探—1.將設(shè)計(jì)SDSoC/Vivado HLS遷移到Vitis

    本文介紹如何一步一步將設(shè)計(jì)SDSoC/Vivado HLS遷移到Vitis平臺。
    發(fā)表于 01-31 08:12 ?8次下載
    <b class='flag-5'>Vitis</b>初探—1.將設(shè)計(jì)<b class='flag-5'>從</b>SDSoC/Vivado HLS遷移到<b class='flag-5'>Vitis</b>上

    HLS導(dǎo)出的.xo文件如何導(dǎo)入Vitis里面

    Q1 HLS導(dǎo)出的.xo文件如何導(dǎo)入Vitis里面?需要把.xo文件解壓,然后把文件夾導(dǎo)入Vitis Kernel/src文件夾下嗎?
    的頭像 發(fā)表于 08-26 17:03 ?2600次閱讀

    基于Vitis HLS的加速圖像處理

    Vitis Vision庫是OpenCV和Vision功能的加速庫,可在Vitis環(huán)境中使用,這些庫的L1目錄是示例設(shè)計(jì)。為了適應(yīng)各種用戶環(huán)境,2020.1版本開始,Xilinx不再
    的頭像 發(fā)表于 02-16 16:21 ?2462次閱讀
    基于<b class='flag-5'>Vitis</b> HLS的加速圖像處理

    Vitis HLS如何添加HLS導(dǎo)出的.xo文件

    HLS導(dǎo)出的.xo文件如何導(dǎo)入Vitis里面?需要把.xo文件解壓,然后把文件夾導(dǎo)入Vitis Kernel/src文件夾下嗎?
    的頭像 發(fā)表于 08-03 11:20 ?3086次閱讀
    <b class='flag-5'>Vitis</b> HLS如何添加HLS<b class='flag-5'>導(dǎo)出</b>的.xo文件

    Vitis調(diào)試ARM可信固件和U-boot

    在本篇博文中,我們將探討如何在 Vitis調(diào)試 Zynq UltraScale 器件啟動(dòng)鏡像。這些啟動(dòng)鏡像包括 ARM 可信固件 (ATF) 和 U-boot。
    的頭像 發(fā)表于 08-02 10:14 ?3615次閱讀
    在<b class='flag-5'>Vitis</b>中<b class='flag-5'>調(diào)試</b>ARM可信固件和U-boot

    Vitis AI校準(zhǔn)和量化代碼

    Vitis AI 校準(zhǔn)和量化代碼導(dǎo)入必要的模塊執(zhí)行校準(zhǔn)過程評估量化模型準(zhǔn)確度導(dǎo)出量化模型?
    發(fā)表于 10-15 17:14 ?2次下載