1、參考https://forums.xilinx.com/t5/%E5%B5%8C%E5%85%A5%E5%BC%8F-%E7%A1%AC%E4%BB...
按照官方說(shuō)明,copy數(shù)據(jù)速率基本為系統(tǒng)ddr的帶寬。
2、工程 生成數(shù)據(jù)大小2048X2048 4MB 也就是一次dma數(shù)據(jù)大小,一次dma數(shù)據(jù)的大小與axi-dma核中buffer lenght registr有關(guān),長(zhǎng)度最大26,也就是2^26個(gè)字節(jié),為64MB,工程中加入ila核用來(lái)調(diào)試。

3、生成bit后,導(dǎo)出xsa文件。
4、在vitis中應(yīng)用xsa文件,新建a5_zynqmp_fsbl工程,按照官方說(shuō)明,修改sfsbl_main.c,并編譯,在debug文件夾中可以找到a5_zynqmp_fsbl.elf文件。

5、在petalinux環(huán)境中新建工程,參考以前的博客,直到petalinux-build。
6、修改設(shè)備樹(shù)

7、重新petalinux-build。
8、在image/linux文件夾下

9、拷貝出bl31.elf boot.scr image.ub pmufw.elf system.bit system.dtb u-boot.elf 七個(gè)文件,以及vitis中生成的a5_zynqmp_fsbl.elf共8個(gè)文件,到linux_dma_test.
10、在petalinux工程中,build文件夾中拷貝bootgen.bif文件,并修改成如下

11、新建regs.init

12、生成BOOT.BIN,然后一起將BOOT.BIN image.ub和boot.scr復(fù)制到sd卡。

13、測(cè)試


14、上電開(kāi)機(jī),加載axi-dma的驅(qū)動(dòng),將3.0U盤(pán)掛在到mnt下

由以上可以看出,pl生成一張4MB的數(shù)據(jù)耗時(shí)43ms,將4MB數(shù)據(jù)由dma讀緩沖區(qū)copy到內(nèi)核緩沖區(qū)耗時(shí)4ms,基本接近ddr的帶寬。整個(gè)鏈路中的帶寬完全受限于U盤(pán)的存儲(chǔ)速度。
15、U盤(pán)中的圖片,大小128MB,數(shù)據(jù)正確。

審核編輯:符乾江
-
文件
+關(guān)注
關(guān)注
1文章
594瀏覽量
26068 -
編譯
+關(guān)注
關(guān)注
0文章
694瀏覽量
35182
發(fā)布評(píng)論請(qǐng)先 登錄
C語(yǔ)言的緩沖區(qū)(緩存)詳解
CW32L052串口的緩沖區(qū)機(jī)制
飛凌嵌入式ElfBoard-標(biāo)準(zhǔn)IO接口之設(shè)置緩沖區(qū)
移植的lvgl,在運(yùn)行的時(shí)候,緩沖區(qū)無(wú)法釋放怎么解決?
對(duì)于CYUSB3014芯片,哪個(gè)函數(shù)可以讀取GPIF II端DMA緩沖區(qū)中緩存的實(shí)際數(shù)據(jù)量?
如何清除CYUSB3014的緩沖區(qū)數(shù)據(jù)?USB接口數(shù)據(jù)什么時(shí)候發(fā)送到電腦?
請(qǐng)問(wèn)USB緩沖區(qū)取數(shù)據(jù)可以多次取嗎?
FX3 Socket緩沖區(qū)切換的最大時(shí)間是多少?
在傳輸DMA通道中的所有緩沖區(qū)后,DMA標(biāo)志(就緒和部分)被卡住了是怎么回事?
DMA緩沖區(qū)設(shè)置為48K,如果沒(méi)有寫(xiě)滿48K,數(shù)據(jù)會(huì)自動(dòng)被發(fā)送出去嗎?
求助,關(guān)于3014的緩沖區(qū)設(shè)置疑問(wèn)求解
一文詳解AXI DMA技術(shù)
Petalinux加速axi-dma內(nèi)核驅(qū)動(dòng)緩沖區(qū)讀過(guò)程
評(píng)論