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

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

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

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

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

11、新建regs.init

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

13、測試


14、上電開機,加載axi-dma的驅(qū)動,將3.0U盤掛在到mnt下

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

審核編輯:符乾江
-
文件
+關注
關注
1文章
598瀏覽量
26124 -
編譯
+關注
關注
0文章
696瀏覽量
35296
發(fā)布評論請先 登錄
DMA傳輸完成通知未在S32K324上的半滿緩沖區(qū)時觸發(fā),為什么?
C語言的緩沖區(qū)(緩存)詳解
CW32F030的DMA問題求解
CW32L052串口的緩沖區(qū)機制
飛凌嵌入式ElfBoard-標準IO接口之設置緩沖區(qū)
移植的lvgl,在運行的時候,緩沖區(qū)無法釋放怎么解決?
對于CYUSB3014芯片,哪個函數(shù)可以讀取GPIF II端DMA緩沖區(qū)中緩存的實際數(shù)據(jù)量?
如何清除CYUSB3014的緩沖區(qū)數(shù)據(jù)?USB接口數(shù)據(jù)什么時候發(fā)送到電腦?
請問USB緩沖區(qū)取數(shù)據(jù)可以多次取嗎?
解析RZ/N2L CANFD模塊的緩沖區(qū)機制(2)
Petalinux加速axi-dma內(nèi)核驅(qū)動緩沖區(qū)讀過程
評論