日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

如何在 Vitis 中使用 UIO 驅(qū)動框架創(chuàng)建簡單的 Linux 用戶應用

電子工程師 ? 來源:XILINX技術社區(qū) ? 作者:XILINX技術社區(qū) ? 2020-11-20 14:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Linux嵌入式設計中最基本的任務之一是創(chuàng)建用戶應用程序。

在本篇博文中,我們將探討如何在 Vitis 中使用 UIO 驅(qū)動框架創(chuàng)建簡單的 Linux 用戶應用。

1

硬件設計

本次使用的是 Zynq UltraScale+ MPSoC ZCU104 評估板。但是,無論您使用任何器件,下列步驟都應適用。

先使用 Vivado 來創(chuàng)建了塊設計。建立了 Zynq UltraScale PS,并把 AXI GPIO 連接到 ZCU104 評估板上的 4 個 LED。

地址映射如下所示:

首先 在創(chuàng)建 XSA 時使用了以下選項:

2

Linux 鏡像

如果您使用開發(fā)板,則建議使用 BSP(如果存在)。

但在本示例中,我們使用模板來創(chuàng)建鏡像。已經(jīng)添加了 UIO 驅(qū)動程序,用于 AXI GPIO。

然后創(chuàng)建了 sysroot,在 Vitis 中需要使用它來進行交叉編譯。

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

cd zcu104_linux

petalinux-config --get-hw-description=

依次選擇“DTG Settings -> (zcu104-revc)MACHINE_NAME”

petalinux-config -c kernel
Select Device Drivers -> Userspace I/O drivers
<*> Userspace I/O platform driver with generic IRQ handing
<*> Userspace platform driver with generic irq and dynamic memory

將 system-user.dtsi 替換為:

/include/ "system-conf.dtsi"

/ {

chosen {

bootargs = "earlycon clk_ignore_unused uio_pdrv_genirq.of_id=generic-uio";

stdout-path = "serial0:115200n8";

};

};

&axi_gpio_0 {

compatible = "generic-uio";

};

然后,運行以下命令:

petalinux-build

cd images/linux
petalinux-build --sdk
petalinux-package --sysroot

3

創(chuàng)建平臺

這并非必要步驟,因為用戶只需在 Vitis 中使用 sysroot 即可。

但為了便于使用,我們可以創(chuàng)建一個平臺并在 Vitis 中使用此平臺來創(chuàng)建 Linux 應用。

首先,設置平臺文件。

把平臺文件組織為一種文件夾結(jié)構。這并非必要步驟,但用戶需要注意 BIF 中的文件路徑。

在 Bootgen 中使用 BIF 來創(chuàng)建可啟動的鏡像。此處我們僅使用占位符文件名。

mkdir -p sw_comp/src/a53/xrt/image
mkdir sw_comp/src/boot

將 image.ub、boot.scr 和 rootfs.cpio.gz 文件從 PetaLinux image/linux 文件夾復制到sw_comp/src/a53/image

將 system.bit、bl31.elf、uboot.elf、zynqmp_fsbl(已重命名為 fsbl.elf)和 pmufw.elf 文件從 PetaLinux image/linux 文件夾復制到sw_comp/src/boot

創(chuàng)建 BIF:

the_ROM_image:

{

[fsbl_config] a53_x64

[bootloader]

[pmufw_image]

[destination_device=pl]

[destination_cpu=a53-0, exception_level=el-3, trustzone]

[destination_cpu=a53-0, exception_level=el-2]

}

將 linux.bif 復制到sw_comp/src/boot。現(xiàn)在,在 Vitis 中創(chuàng)建一個新平臺工程,如下所示:

這樣就會在zcu104_base/export中創(chuàng)建平臺。

4

在 Vitis 中創(chuàng)建 Linux 鏡像

選擇“從存儲庫中選擇平臺 (Select a platform from therepository)”,單擊 + 圖標并瀏覽至您的平臺。

創(chuàng)建新應用:

此處可以看到,“應用設置 (Application settings)”默認使用的是平臺中的設置。

選擇“空白應用 (Empty Application)”模板,因為我們將創(chuàng)建自己的自定義應用。

右鍵單擊 led_test 應用下的 src 文件夾,然后選擇“新建 (New)”->“文件 (File)”

指定其文件名 (.c),然后單擊“完成 (Finish)”。

現(xiàn)在,即可將以下代碼復制到其中。這是一個簡單的 UIO 示例,可用于開關 LED。

#include

#include

#include

#include

#include

#define GPIO_MAP_SIZE 0x10000

#define GPIO_DATA 0x00

#define GPIO_TRI 0x04

#define LED_NUM 256

#define LED_DELAY 10000000

int main(int argc, char *argv[])

{

int fd;

char *uiod = "/dev/uio0";

void *gpio_ptr;

volatile int Delay;

printf("AXI GPIO UIO test. ");

// open the UIO device file to allow access to the device in user space

fd = open(uiod, O_RDWR);

if (fd < 1) {

printf("Invalid UIO device file:%s. ", uiod);

return -1;

}

// mmap the GPIO device into user space

gpio_ptr = mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);

if (gpio_ptr == MAP_FAILED) {

printf("Mmap call failure. ");

return -1;

}

// set bit0 on the GPIO to be output

// see pg144 for ref

*((volatile unsigned *)(gpio_ptr + GPIO_TRI)) = 0x0;

// Toggle the LED

while (1) {

int i;

unsigned char led_pin = 0x0;

for (i = 0; i < LED_NUM; i++) {

*((volatile unsigned *)(gpio_ptr + GPIO_DATA)) = led_pin;

for (Delay = 0; Delay < LED_DELAY; Delay++);

*((volatile unsigned *)(gpio_ptr + GPIO_DATA)) = 0x0;

led_pin++;

}

}

// unmap the GPIO device from user space

munmap(gpio_ptr, 4096);

return 0;

}

選擇系統(tǒng)工程,然后單擊錘子圖標。這樣即可構建可執(zhí)行文件,并創(chuàng)建啟動鏡像。

5

在硬件上執(zhí)行測試

將所有鏡像從led_app_systemDebugsd_card復制到 SD 卡上。

啟動后,將自動裝載 SD 卡。

在此處更改目錄,并執(zhí)行l(wèi)ed_app.elf,如下所示:

同時,您在板上應該還可以看到 LED 閃爍。

使用 Ctrl + c 即可取消。

責任編輯:xj

原文標題:開發(fā)者分享 | 在 Zynq UltraScale 器件上通過 Vitis 創(chuàng)建 Linux 用戶應用

文章出處:【微信公眾號:XILINX技術社區(qū)】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

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

    關注

    88

    文章

    11822

    瀏覽量

    219602
  • Zynq
    +關注

    關注

    10

    文章

    633

    瀏覽量

    49590
  • Vitis
    +關注

    關注

    0

    文章

    158

    瀏覽量

    8433

原文標題:開發(fā)者分享 | 在 Zynq UltraScale 器件上通過 Vitis 創(chuàng)建 Linux 用戶應用

文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發(fā)者社區(qū)】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    何在 Linux 中使用 imx8mm

    Hi, 我們在 Linux 中使用 imx8mm(4x Cortex A53)。因此,我們的設備樹 dts 包括 imx8mm.dtsi (https://elixir.bootlin.com
    發(fā)表于 04-29 08:26

    何在運行 Linux作系統(tǒng)的 i.MX 8M Plus EVK 板上創(chuàng)建用戶友好的 GUI?

    我正在嘗試創(chuàng)建一個用戶友好的GUI to display some data. i have flashed the imx-image-full (所有
    發(fā)表于 04-08 06:33

    uIO-Stick v2 用戶指南:設計、應用與安全要點

    uIO-Stick v2 用戶指南:設計、應用與安全要點 在電子工程領域,接口設備對于連接不同系統(tǒng)和實現(xiàn)功能交互起著至關重要的作用。uIO-Stick v2 作為一款用于 MOTIX? MCU 設備
    的頭像 發(fā)表于 12-20 11:10 ?902次閱讀

    Linux-RT特點及簡單應用

    工具。這些工具可以用來查看和修改任務的調(diào)度策略和優(yōu)先級,以及監(jiān)視系統(tǒng)中運行的實時任務。 下面一個示例,演示如何在Linux-RT上使用C語言和pthread_create()函數(shù)創(chuàng)建實時
    發(fā)表于 12-05 07:37

    Linux驅(qū)動開發(fā)的必備知識

    、內(nèi)核模塊編程: 掌握內(nèi)核模塊的編寫、編譯、加載和卸載方法。 了解內(nèi)核模塊的初始化和清理函數(shù)的編寫。 5、設備驅(qū)動框架: 熟悉字符設備、塊設備、網(wǎng)絡設備等驅(qū)動框架。 能夠根據(jù)
    發(fā)表于 12-04 07:58

    何在AMD Vitis Unified IDE中使用系統(tǒng)設備樹

    您將在這篇博客中了解系統(tǒng)設備樹 (SDT) 以及如何在 AMD Vitis Unified IDE 中使用 SDT 維護來自 XSA 的硬件元數(shù)據(jù)。本文還講述了如何對 SDT 進行操作,以便在
    的頭像 發(fā)表于 11-18 11:13 ?3354次閱讀
    如<b class='flag-5'>何在</b>AMD <b class='flag-5'>Vitis</b> Unified IDE<b class='flag-5'>中使</b>用系統(tǒng)設備樹

    【書籍評測活動NO.67】成為硬核Linux開發(fā)者:《Linux 設備驅(qū)動開發(fā)(第 2 版)》

    Linux 設備驅(qū)動開發(fā)(第 2 版)》。第2版系統(tǒng)講解內(nèi)存管理、IRO管理、加鎖機制等嵌入式系統(tǒng)關鍵內(nèi)容,透徹分析時鐘源、DMA引擎等核心機制,引入Regmap API等現(xiàn)代驅(qū)動開發(fā)框架
    發(fā)表于 11-17 17:52

    何在VS code中配置Zephyr集成開發(fā)環(huán)境

    上一篇文章介紹了如何在VS code中使用瑞薩官方插件為RA芯片創(chuàng)建項目與項目調(diào)試,相信大家對RA在VS code中的開發(fā)有了基礎的了解。
    的頭像 發(fā)表于 11-05 14:46 ?1818次閱讀
    如<b class='flag-5'>何在</b>VS code中配置Zephyr集成開發(fā)環(huán)境

    PYQT 應用程序框架及開發(fā)工具

    大家好,本團隊此次分享的內(nèi)容為開發(fā)過程中使用到的PYQT 應用程序框架及開發(fā)工具。 pYqt 是一個多平臺的 python 圖形用戶界面應用程序框架,由于其面向?qū)ο蟆? 易擴展(可
    發(fā)表于 10-29 07:15

    何在應用程序調(diào)試期間分析棧和堆使用情況

    ,并在 Unified IDE 中仍可使用。本文涵蓋了如何在 Vitis 中使用分析工具在應用程序調(diào)試期間對棧和堆進行監(jiān)控。
    的頭像 發(fā)表于 10-24 16:54 ?1071次閱讀
    如<b class='flag-5'>何在</b>應用程序調(diào)試期間分析棧和堆使用情況

    請問STM32如何移植Audio框架?

    最近在學習音頻解碼,想用一下Audio框架。 1、這個該如何移植到自己創(chuàng)建的BSP并對接到device框架中?看了官方移植文檔沒有對沒有對該部分的描述。 2、我只想實現(xiàn)一個簡單的播放功
    發(fā)表于 09-25 07:17

    何在AMD Vitis Unified 2024.2中連接到QEMU

    在本篇文章我們將學習如何在 AMD Vitis Unified 2024.2 中連接到 QEMU。 這是本系列的第 2 篇博文。要了解如何設置和使用 QEMU + 協(xié)同仿真,請參閱開發(fā)者分享|在 AMD Versal 自適應 SoC 上使用
    的頭像 發(fā)表于 08-06 17:24 ?2021次閱讀
    如<b class='flag-5'>何在</b>AMD <b class='flag-5'>Vitis</b> Unified 2024.2中連接到QEMU

    何在Unified IDE中創(chuàng)建視覺庫HLS組件

    Vivado IP 流程(Vitis Unified),在這篇 AMD Vitis HLS 系列 3 中,我們將介紹如何使用 Unified IDE 創(chuàng)建 HLS 組件。這里采用“自下而上”的流程,從 HLS
    的頭像 發(fā)表于 07-02 10:55 ?1700次閱讀
    如<b class='flag-5'>何在</b>Unified IDE中<b class='flag-5'>創(chuàng)建</b>視覺庫HLS組件

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

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

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

    本文逐步演示了如何使用 AMD Vitis HLS 來創(chuàng)建一個 HLS IP,通過 AXI4 接口從存儲器讀取數(shù)據(jù)、執(zhí)行簡單的數(shù)學運算,然后將數(shù)據(jù)寫回存儲器。接著會在 AMD Vivado Design Suite 設計
    的頭像 發(fā)表于 06-13 09:50 ?2294次閱讀
    如何使用AMD <b class='flag-5'>Vitis</b> HLS<b class='flag-5'>創(chuàng)建</b>HLS IP
    贵州省| 和龙市| 金堂县| 鄂尔多斯市| 安西县| 桑植县| 宜黄县| 庄浪县| 定远县| 沅陵县| 武乡县| 宾川县| 元谋县| 仙居县| 兴和县| 横山县| 康定县| 乌拉特后旗| 砀山县| 中宁县| 民县| 石楼县| 广州市| 彭州市| 兴安县| 云阳县| 嘉鱼县| 西充县| 兴化市| 平安县| 甘肃省| 遂昌县| 吉木乃县| 平安县| 万全县| 黄浦区| 德阳市| 隆安县| 沙湾县| 保康县| 黄骅市|