RM新时代网站-首页

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

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

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

如何創(chuàng)建AXI CDMA Linux用戶空間示例應(yīng)用

454398 ? 來(lái)源: XILINX技術(shù)社區(qū) ? 作者: XILINX技術(shù)社區(qū) ? 2020-09-28 15:31 ? 次閱讀

本篇博文將為您演示如何創(chuàng)建 AXI CDMA Linux 用戶空間示例應(yīng)用。

示例設(shè)計(jì)將在 Zynq UltraScale+ RFSoC ZCU111 評(píng)估板上實(shí)現(xiàn)通過(guò) AXI CDMA 把數(shù)據(jù)從 PS DDR 傳輸至 AXI BRAM。

適用平臺(tái)

Vivado 和 PetaLinux 2019.2。

Zynq UltraScale+ RFSoC ZCU111 評(píng)估板

啟動(dòng)模式:JTAG,SD

模塊框圖


Vivado步驟

步驟 1:基于ZCU111 評(píng)估版創(chuàng)建一個(gè)工程,并根據(jù)上圖中的模塊設(shè)計(jì)完成相應(yīng)的模塊設(shè)計(jì)。

步驟 2:按下列設(shè)置來(lái)配置 AXI CDMA:

步驟 3:成功完成后,選擇“驗(yàn)證設(shè)計(jì) (Validate design)”以驗(yàn)證設(shè)計(jì),并檢查地址編輯器。

步驟4:創(chuàng)建整個(gè)模塊設(shè)計(jì)的頂層文件并生成比特流。

步驟 5:導(dǎo)出硬件設(shè)計(jì)以獲取 XSA 文件。

PetaLinux步驟

以下步驟用于生成啟動(dòng)鏡像和 Linux 用戶空間應(yīng)用。

步驟 1:

使用以下命令和隨附內(nèi)容 (axicdma.c) 創(chuàng)建 AXI CDMA 用戶空間應(yīng)用。

vim axicmda.c

步驟 2:

petalinux-create -t project -n bram --template zynqMP

步驟3:

petalinux-config --v --get-hw-description=

步驟4:

在 system-user.dtsi 文件中添加以下更改以禁用 CDMA 驅(qū)動(dòng)并保留內(nèi)存。

/include/ "system-conf.dtsi"
           / {
           #address-cells = >2< ;
           #size-cells = >2< ;
           memory {
           device_type = "memory";
           reg = < 0x0 0x0 0x0 0x80000000> , < 0x0 0xA0000000 0x0 0x40000>, < 0x00000008 0x00000000 0x0 0x80000000>;
           };
           reserved-memory {
           ranges;
           reserved {
           reg = <0x0 0xa0000000 0x0 0x40000>;
           };
           };

           };
           &axi_bram_ctrl_1 {
           status = "disabled";
           };

           &axi_cdma_0 {
           status = "disabled";
           };

步驟 5:

petalinux-config -c kernel

然后,按如下方式操作:

Kernel hacking  --->[ ] Filter access to /dev/mem  --> Save & exit 

步驟 6:

petalinux-build

步驟 7:

petalinux-package --boot --fsbl images/linux/zynqmp_fsbl.elf --pmufw images/linux/pmufw.elf --fpga images/linux/system.bit  --u-boot  images/linux/u-boot.elf --force

步驟 8:

將 BOOT.bin 和 image.ub 文件與測(cè)試應(yīng)用二進(jìn)制文件一起復(fù)制到 SD 卡。

步驟 9:

啟動(dòng)評(píng)估板,并運(yùn)行隨附的應(yīng)用 (axicmda.c)。

運(yùn)行設(shè)計(jì)

要運(yùn)行設(shè)計(jì),請(qǐng)首先連接到 ZCU111 評(píng)估板并從 SD 卡啟動(dòng)鏡像,然后運(yùn)行二進(jìn)制應(yīng)用文件。

控制臺(tái)輸出

/dev/mem opened.
BRAM Memory mapped at address 0x7fb5339000.
PSDDR Memory mapped at address 0x7fb5192000.
CDMA Memory mapped at address 0x7fb5336000.
Input : value in PSDDR 0 : value in BRAM 1179403647
Input : value in PSDDR 1 : value in BRAM 65794
Input : value in PSDDR 2 : value in BRAM 0
Input : value in PSDDR 3 : value in BRAM 0
Input : value in PSDDR 4 : value in BRAM 11993091
Input : value in PSDDR 5 : value in BRAM 1
Input : value in PSDDR 6 : value in BRAM 13128
Input : value in PSDDR 7 : value in BRAM 0
Input : value in PSDDR 8 : value in BRAM 64
Input : value in PSDDR 9 : value in BRAM 0
Input : value in PSDDR 10 : value in BRAM 44872
Input : value in PSDDR 11 : value in BRAM 0
Input : value in PSDDR 12 : value in BRAM 0
Input : value in PSDDR 13 : value in BRAM 3670080
Input : value in PSDDR 14 : value in BRAM 4194313
Input : value in PSDDR 15 : value in BRAM 1638426
Input : value in PSDDR 16 : value in BRAM 6
Input : value in PSDDR 17 : value in BRAM 4
Input : value in PSDDR 18 : value in BRAM 64
Input : value in PSDDR 19 : value in BRAM 0
Input : value in PSDDR 20 : value in BRAM 64
Input : value in PSDDR 21 : value in BRAM 0
Input : value in PSDDR 22 : value in BRAM 64
Input : value in PSDDR 23 : value in BRAM 0
Input : value in PSDDR 24 : value in BRAM 504
Input : value in PSDDR 25 : value in BRAM 0
Input : value in PSDDR 26 : value in BRAM 504
Input : value in PSDDR 27 : value in BRAM 0
Input : value in PSDDR 28 : value in BRAM 8
Input : value in PSDDR 29 : value in BRAM 0
Input : value in PSDDR 30 : value in BRAM 3
Input : value in PSDDR 31 : value in BRAM 4
Input : value in PSDDR 32 : value in BRAM 568
Input : value in PSDDR 33 : value in BRAM 0
Input : value in PSDDR 34 : value in BRAM 568
Input : value in PSDDR 35 : value in BRAM 0
Input : value in PSDDR 36 : value in BRAM 568
Input : value in PSDDR 37 : value in BRAM 0
Input : value in PSDDR 38 : value in BRAM 27
Input : value in PSDDR 39 : value in BRAM 0
Input : value in PSDDR 40 : value in BRAM 27
Input : value in PSDDR 41 : value in BRAM 0
Input : value in PSDDR 42 : value in BRAM 1
Input : value in PSDDR 43 : value in BRAM 0
Input : value in PSDDR 44 : value in BRAM 1
Input : value in PSDDR 45 : value in BRAM 5
Input : value in PSDDR 46 : value in BRAM 0
Input : value in PSDDR 47 : value in BRAM 0
Input : value in PSDDR 48 : value in BRAM 0
Input : value in PSDDR 49 : value in BRAM 0
Input : value in PSDDR 50 : value in BRAM 0
Input : value in PSDDR 51 : value in BRAM 0
Input : value in PSDDR 52 : value in BRAM 37116
Input : value in PSDDR 53 : value in BRAM 0
Input : value in PSDDR 54 : value in BRAM 37116
Input : value in PSDDR 55 : value in BRAM 0
Input : value in PSDDR 56 : value in BRAM 65536
Input : value in PSDDR 57 : value in BRAM 0
Input : value in PSDDR 58 : value in BRAM 1
Input : value in PSDDR 59 : value in BRAM 6
Input : value in PSDDR 60 : value in BRAM 39544
Input : value in PSDDR 61 : value in BRAM 0
Input : value in PSDDR 62 : value in BRAM 105080
Input : value in PSDDR 63 : value in BRAM 0
Input : value in PSDDR 64 : value in BRAM 105080
Input : value in PSDDR 65 : value in BRAM 0
Input : value in PSDDR 66 : value in BRAM 5072
Input : value in PSDDR 67 : value in BRAM 0
Input : value in PSDDR 68 : value in BRAM 6168
Input : value in PSDDR 69 : value in BRAM 0
Input : value in PSDDR 70 : value in BRAM 65536
Input : value in PSDDR 71 : value in BRAM 0
Input : value in PSDDR 72 : value in BRAM 2
Input : value in PSDDR 73 : value in BRAM 6
Input : value in PSDDR 74 : value in BRAM 39560
Input : value in PSDDR 75 : value in BRAM 0
Input : value in PSDDR 76 : value in BRAM 105096
Input : value in PSDDR 77 : value in BRAM 0
Input : value in PSDDR 78 : value in BRAM 105096
Input : value in PSDDR 79 : value in BRAM 0
Input : value in PSDDR 80 : value in BRAM 512
Input : value in PSDDR 81 : value in BRAM 0
Input : value in PSDDR 82 : value in BRAM 512
Input : value in PSDDR 83 : value in BRAM 0
Input : value in PSDDR 84 : value in BRAM 8
Input : value in PSDDR 85 : value in BRAM 0
Input : value in PSDDR 86 : value in BRAM 4
Input : value in PSDDR 87 : value in BRAM 4
Input : value in PSDDR 88 : value in BRAM 596
Input : value in PSDDR 89 : value in BRAM 0
Input : value in PSDDR 90 : value in BRAM 596
Input : value in PSDDR 91 : value in BRAM 0
Input : value in PSDDR 92 : value in BRAM 596
Input : value in PSDDR 93 : value in BRAM 0
Input : value in PSDDR 94 : value in BRAM 68
Input : value in PSDDR 95 : value in BRAM 0
Input : value in PSDDR 96 : value in BRAM 68
Input : value in PSDDR 97 : value in BRAM 0
Input : value in PSDDR 98 : value in BRAM 4
Input : value in PSDDR 99 : value in BRAM 0
control reg:0x00000000
status reg:0x00000002
all interrupts masked...
control reg:0x00005000
status reg:0x00000002
Writing source address
Source addr reg:0x04000000
status reg:0x00000002
Writing destination address
Dest addr reg:0xa0000000
status reg:0x00000002
Writing transfer length...
DMA transfer is completed
length reg:0x00000190
status reg:0x00001002
Output : value in PSDDR 0 : value in BRAM 0
Output : value in PSDDR 1 : value in BRAM 1
Output : value in PSDDR 2 : value in BRAM 2
Output : value in PSDDR 3 : value in BRAM 3
Output : value in PSDDR 4 : value in BRAM 4
Output : value in PSDDR 5 : value in BRAM 5
Output : value in PSDDR 6 : value in BRAM 6
Output : value in PSDDR 7 : value in BRAM 7
Output : value in PSDDR 8 : value in BRAM 8
Output : value in PSDDR 9 : value in BRAM 9
Output : value in PSDDR 10 : value in BRAM 10
Output : value in PSDDR 11 : value in BRAM 11
Output : value in PSDDR 12 : value in BRAM 12
Output : value in PSDDR 13 : value in BRAM 13
Output : value in PSDDR 14 : value in BRAM 14
Output : value in PSDDR 15 : value in BRAM 15
Output : value in PSDDR 16 : value in BRAM 16
Output : value in PSDDR 17 : value in BRAM 17
Output : value in PSDDR 18 : value in BRAM 18
Output : value in PSDDR 19 : value in BRAM 19
Output : value in PSDDR 20 : value in BRAM 20
Output : value in PSDDR 21 : value in BRAM 21
Output : value in PSDDR 22 : value in BRAM 22
Output : value in PSDDR 23 : value in BRAM 23
Output : value in PSDDR 24 : value in BRAM 24
Output : value in PSDDR 25 : value in BRAM 25
Output : value in PSDDR 26 : value in BRAM 26
Output : value in PSDDR 27 : value in BRAM 27
Output : value in PSDDR 28 : value in BRAM 28
Output : value in PSDDR 29 : value in BRAM 29
Output : value in PSDDR 30 : value in BRAM 30
Output : value in PSDDR 31 : value in BRAM 31
Output : value in PSDDR 32 : value in BRAM 32
Output : value in PSDDR 33 : value in BRAM 33
Output : value in PSDDR 34 : value in BRAM 34
Output : value in PSDDR 35 : value in BRAM 35
Output : value in PSDDR 36 : value in BRAM 36
Output : value in PSDDR 37 : value in BRAM 37
Output : value in PSDDR 38 : value in BRAM 38
Output : value in PSDDR 39 : value in BRAM 39
Output : value in PSDDR 40 : value in BRAM 40
Output : value in PSDDR 41 : value in BRAM 41
Output : value in PSDDR 42 : value in BRAM 42
Output : value in PSDDR 43 : value in BRAM 43
Output : value in PSDDR 44 : value in BRAM 44
Output : value in PSDDR 45 : value in BRAM 45
Output : value in PSDDR 46 : value in BRAM 46
Output : value in PSDDR 47 : value in BRAM 47
Output : value in PSDDR 48 : value in BRAM 48
Output : value in PSDDR 49 : value in BRAM 49
Output : value in PSDDR 50 : value in BRAM 50
Output : value in PSDDR 51 : value in BRAM 51
Output : value in PSDDR 52 : value in BRAM 52
Output : value in PSDDR 53 : value in BRAM 53
Output : value in PSDDR 54 : value in BRAM 54
Output : value in PSDDR 55 : value in BRAM 55
Output : value in PSDDR 56 : value in BRAM 56
Output : value in PSDDR 57 : value in BRAM 57
Output : value in PSDDR 58 : value in BRAM 58
Output : value in PSDDR 59 : value in BRAM 59
Output : value in PSDDR 60 : value in BRAM 60
Output : value in PSDDR 61 : value in BRAM 61
Output : value in PSDDR 62 : value in BRAM 62
Output : value in PSDDR 63 : value in BRAM 63
Output : value in PSDDR 64 : value in BRAM 64
Output : value in PSDDR 65 : value in BRAM 65
Output : value in PSDDR 66 : value in BRAM 66
Output : value in PSDDR 67 : value in BRAM 67
Output : value in PSDDR 68 : value in BRAM 68
Output : value in PSDDR 69 : value in BRAM 69
Output : value in PSDDR 70 : value in BRAM 70
Output : value in PSDDR 71 : value in BRAM 71
Output : value in PSDDR 72 : value in BRAM 72
Output : value in PSDDR 73 : value in BRAM 73
Output : value in PSDDR 74 : value in BRAM 74
Output : value in PSDDR 75 : value in BRAM 75
Output : value in PSDDR 76 : value in BRAM 76
Output : value in PSDDR 77 : value in BRAM 77
Output : value in PSDDR 78 : value in BRAM 78
Output : value in PSDDR 79 : value in BRAM 79
Output : value in PSDDR 80 : value in BRAM 80
Output : value in PSDDR 81 : value in BRAM 81
Output : value in PSDDR 82 : value in BRAM 82
Output : value in PSDDR 83 : value in BRAM 83
Output : value in PSDDR 84 : value in BRAM 84
Output : value in PSDDR 85 : value in BRAM 85
Output : value in PSDDR 86 : value in BRAM 86
Output : value in PSDDR 87 : value in BRAM 87
Output : value in PSDDR 88 : value in BRAM 88
Output : value in PSDDR 89 : value in BRAM 89
Output : value in PSDDR 90 : value in BRAM 90
Output : value in PSDDR 91 : value in BRAM 91
Output : value in PSDDR 92 : value in BRAM 92
Output : value in PSDDR 93 : value in BRAM 93
Output : value in PSDDR 94 : value in BRAM 94
Output : value in PSDDR 95 : value in BRAM 95
Output : value in PSDDR 96 : value in BRAM 96
Output : value in PSDDR 97 : value in BRAM 97
Output : value in PSDDR 98 : value in BRAM 98
Output : value in PSDDR 99 : value in BRAM 99
Transmitted Data successfully
root@cdma_proj:~#

輸出截屏

編輯:hfy


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

    關(guān)注

    87

    文章

    11292

    瀏覽量

    209322
  • Xilinx
    +關(guān)注

    關(guān)注

    71

    文章

    2167

    瀏覽量

    121298
  • AXI
    AXI
    +關(guān)注

    關(guān)注

    1

    文章

    127

    瀏覽量

    16622
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    AXI VIP設(shè)計(jì)示例 AXI接口傳輸分析

    賽靈思 AXI Verification IP (AXI VIP) 是支持用戶對(duì) AXI4 和 AXI4-Lite 進(jìn)行仿真的 IP。它還可
    發(fā)表于 07-08 09:24 ?1793次閱讀

    怎么使用AXI CDMA從OCM/DDR寫(xiě)入BRAM

    可以從Zynq上運(yùn)行的Linux控制的額外IP。我要做的就是將一些配置數(shù)據(jù)寫(xiě)入PL中的BRAM。要做到這一點(diǎn),根據(jù)我在其他地方得到的建議,我提出了一個(gè)axi_cdma。所以CDMA有一個(gè)
    發(fā)表于 04-19 07:50

    Linux環(huán)境下oracle創(chuàng)建和刪除表空間用戶

    maxsize 2048m extent management local; --//創(chuàng)建用戶并指定表空間 用戶名和密碼均為"test" create user test
    發(fā)表于 07-05 07:12

    如何用zedboard創(chuàng)建一個(gè)AXI接口應(yīng)用程序?

    大家好,我正在使用zedboard創(chuàng)建一個(gè)AXI接口應(yīng)用程序,以突發(fā)模式從ARM發(fā)送64字節(jié)數(shù)據(jù)到FPGA。為此,我在vivado中創(chuàng)建了一個(gè)自定義AXI從站,選擇它作為
    發(fā)表于 08-12 10:37

    用戶空間如何訪問(wèn)內(nèi)核空間?

    學(xué)習(xí)嵌入式系統(tǒng)就是學(xué)習(xí)用戶編程API通過(guò)內(nèi)核提供的服務(wù)實(shí)現(xiàn)相應(yīng)的功能C語(yǔ)言程序設(shè)計(jì):無(wú)os 語(yǔ)法?。?、Linux系統(tǒng)構(gòu)成劃分:用戶空間、內(nèi)核空間
    發(fā)表于 12-27 06:15

    AXI接口簡(jiǎn)介_(kāi)AXI IP核的創(chuàng)建流程及讀寫(xiě)邏輯分析

    本文包含兩部分內(nèi)容:1)AXI接口簡(jiǎn)介;2)AXI IP核的創(chuàng)建流程及讀寫(xiě)邏輯分析。 1AXI簡(jiǎn)介(本部分內(nèi)容參考官網(wǎng)資料翻譯) 自定義IP核是Zynq學(xué)習(xí)與開(kāi)發(fā)中的難點(diǎn),
    的頭像 發(fā)表于 06-29 09:33 ?1.6w次閱讀
    <b class='flag-5'>AXI</b>接口簡(jiǎn)介_(kāi)<b class='flag-5'>AXI</b> IP核的<b class='flag-5'>創(chuàng)建</b>流程及讀寫(xiě)邏輯分析

    如何使用Vivado功能創(chuàng)建AXI外設(shè)

    了解如何使用Vivado的創(chuàng)建和封裝IP功能創(chuàng)建可添加自定義邏輯的AXI外設(shè),以創(chuàng)建自定義IP。
    的頭像 發(fā)表于 11-29 06:48 ?7136次閱讀
    如何使用Vivado功能<b class='flag-5'>創(chuàng)建</b><b class='flag-5'>AXI</b>外設(shè)

    高端內(nèi)存的詳解:linux用戶空間與內(nèi)核空間

    Linux 操作系統(tǒng)和驅(qū)動(dòng)程序運(yùn)行在內(nèi)核空間,應(yīng)用程序運(yùn)行在用戶空間,兩者不能簡(jiǎn)單地使用指針傳遞數(shù)據(jù),因?yàn)?b class='flag-5'>Linux使用的虛擬內(nèi)存機(jī)制,
    發(fā)表于 04-28 17:33 ?984次閱讀
    高端內(nèi)存的詳解:<b class='flag-5'>linux</b><b class='flag-5'>用戶</b><b class='flag-5'>空間</b>與內(nèi)核<b class='flag-5'>空間</b>

    需要了解linux內(nèi)核空間用戶空間的基本原理

    linux驅(qū)動(dòng)程序一般工作在內(nèi)核空間,但也可以工作在用戶空間。下面我們將詳細(xì)解析,什么是內(nèi)核空間,什么是
    發(fā)表于 05-06 16:13 ?730次閱讀

    Linux用戶空間與內(nèi)核空間

    應(yīng)用程序運(yùn)行在用戶空間,而Linux 驅(qū)動(dòng)屬于內(nèi)核的一部分,因此驅(qū)動(dòng)運(yùn)行于內(nèi)核空間。當(dāng)我們?cè)?b class='flag-5'>用戶空間
    發(fā)表于 05-20 10:58 ?1028次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>用戶</b><b class='flag-5'>空間</b>與內(nèi)核<b class='flag-5'>空間</b>

    如何創(chuàng)建AXI CDMA Linux用戶空間示例應(yīng)用

    步驟 3:成功完成后,選擇“驗(yàn)證設(shè)計(jì) (Validate design)”以驗(yàn)證設(shè)計(jì),并檢查地址編輯器。
    的頭像 發(fā)表于 07-02 15:03 ?2596次閱讀
    如何<b class='flag-5'>創(chuàng)建</b><b class='flag-5'>AXI</b> <b class='flag-5'>CDMA</b> <b class='flag-5'>Linux</b><b class='flag-5'>用戶</b><b class='flag-5'>空間</b><b class='flag-5'>示例</b>應(yīng)用

    如何在 Vitis 中使用 UIO 驅(qū)動(dòng)框架創(chuàng)建簡(jiǎn)單的 Linux 用戶應(yīng)用

    Linux嵌入式設(shè)計(jì)中最基本的任務(wù)之一是創(chuàng)建用戶應(yīng)用程序。 在本篇博文中,我們將探討如何在 Vitis 中使用 UIO 驅(qū)動(dòng)框架創(chuàng)建簡(jiǎn)單的 Linu
    的頭像 發(fā)表于 11-20 14:05 ?4298次閱讀

    Linux中如何如何為現(xiàn)有用戶創(chuàng)建主目錄?

    Linux系統(tǒng)中,每個(gè)用戶都有一個(gè)主目錄,通常稱為home目錄,用于存儲(chǔ)用戶的個(gè)人文件和配置信息。然而,有時(shí)候我們會(huì)創(chuàng)建一個(gè)新的用戶,但是
    的頭像 發(fā)表于 05-12 16:24 ?2307次閱讀
    <b class='flag-5'>Linux</b>中如何如何為現(xiàn)有<b class='flag-5'>用戶</b><b class='flag-5'>創(chuàng)建</b>主目錄?

    Zynq UltraScale+RFSoC的AXI CDMA Linux用戶空間示例

    本文將為您演示如何創(chuàng)建?AXI CDMA Linux?用戶空間
    的頭像 發(fā)表于 07-07 14:15 ?811次閱讀
    Zynq UltraScale+RFSoC的<b class='flag-5'>AXI</b> <b class='flag-5'>CDMA</b> <b class='flag-5'>Linux</b><b class='flag-5'>用戶</b><b class='flag-5'>空間</b><b class='flag-5'>示例</b>

    Linux中的用戶創(chuàng)建

    Linux中的用戶創(chuàng)建 用戶的類型 超級(jí)管理用戶: 權(quán)限最高的用戶(uid:0) #uid:是
    的頭像 發(fā)表于 12-20 14:24 ?149次閱讀
    <b class='flag-5'>Linux</b>中的<b class='flag-5'>用戶</b>與<b class='flag-5'>創(chuàng)建</b>
    RM新时代网站-首页