皮皮网

【知识产权源码】【桶装水溯源码价格不一样】【源码输出声音十几秒卡一次】petalinux驱动源码_petalinux 驱动开发

时间:2024-12-25 00:46:15 来源:支付看片源码

1.Linux 应用案例开发手册——基于Xilinx Zynq-7010/7020工业开发板
2.如何利用Zynq-7000的PL和PS进行交互
3.sdr开发篇 6. zynq+ad9361的驱驱动linux工程搭建
4.使用Petalinux准备U-Boot并从网络启动
5.如何在Zynq-7000上烧写PL Image

petalinux驱动源码_petalinux 驱动开发

Linux 应用案例开发手册——基于Xilinx Zynq-7010/7020工业开发板

       开发案例说明

       开发案例位于产品资料“4-软件资料\Demo\tl-linux-application\”路径下的 base-demos 和 python-demos 目录。base-demos目录提供Linux常用开发案例,动源案例bin目录存放可执行文件,驱驱动案例src目录存放源码。动源python-demos目录提供Python开发案例,驱驱动脚本文件无需编译,动源知识产权源码可直接运行。驱驱动测试板卡是动源基于Xilinx Zynq-系列XC7Z/XC7Z高性能低功耗处理器设计的异构多核SoC工业级核心板。

       若需重新编译Linux常用开发案例,驱驱动请将对应案例src目录复制到Ubuntu工作目录下,动源进入src目录执行命令加载PetaLinux环境变量,驱驱动并执行make命令进行案例编译。动源编译完成后,驱驱动将在当前目录下生成可执行文件。动源

       Linux常用开发案例包括tl_led_flash、驱驱动桶装水溯源码价格不一样tl_key_test和tl_can_echo等。

       tl_led_flash案例功能是通过向评估底板用户指示灯LED设备节点反复交替写入1、0数值,实现LED闪烁效果。LED点亮与熄灭时间均为0.5s。程序流程示意图显示LED设备节点为“/sys/class/leds/user-ledX/”目录下的brightness。

       操作说明包括将案例bin目录下的可执行程序tl_led_flash复制到评估板文件系统,并在可执行程序所在目录执行命令运行程序,即可看到评估底板LED1以0.5s的时间间隔进行闪烁。同时,串口终端打印系统全部LED设备信息和程序当前控制的LED设备信息。

       关键代码包括预定义LED数组、LED亮灭操作和时间间隔。

       tl_key_test案例功能是源码输出声音十几秒卡一次通过监听用户按键设备节点状态,检测按键事件。程序流程示意图显示用户按键设备节点为“/dev/input/event0”。操作说明包括将案例bin目录下的可执行程序tl_key_test复制到评估板文件系统,在可执行程序所在目录执行命令运行程序,串口终端将打印提示信息。再按下评估板用户按键KEY1,程序将检测到按键事件,并打印按键状态信息。

       关键代码包括定义按键、监听按键事件和循环监听。

       tl_can_echo案例功能使用canutils工具包的canecho程序实现CAN接口数据接收并重发功能。canutils工具包内含5个独立程序,包括canconfig、candump、哪一种论坛源码比较好看canecho、cansend、cansequence等。本案例仅使用canecho功能,如需实现其他功能,可自行下载canutils工具包并从中获取对应功能程序源码。操作说明包括使用USB转CAN模块连接评估板CAN接口和PC机USB接口,参照调试工具安装文档安装USB转CAN驱动和ECAN Tools调试软件,双击打开ECAN Tools软件,选择设备类型,然后点击“打开设备”。打开ECAN Tools界面,将案例bin目录下的PL端.bin格式可执行文件复制到评估板文件系统"/lib/firmware/"目录下,并执行命令加载PL端可执行文件。设计师必备的十大网页源码进入评估板文件系统使用文件系统自带的canconfig工具设置波特率,并启动CAN接口。将案例bin目录下的可执行程序tl_can_echo复制到评估板文件系统,执行命令查看程序参数信息,绑定CAN接口并接收由ECAN Tools发出的数据,然后将接收到的数据重新发送出去。

       关键代码包括使用socket监听CAN接口和将从CAN接口接收到的数据重新发送出去。

       tcp_udp_demos案例主要实现客户端(client)与服务端(server)的文本数据相互收发功能。案例包含4个程序,包括tl_tcp_server、tl_tcp_client、tl_udp_server和tl_udp_client。操作说明包括将案例bin目录下的4个可执行程序复制到评估板文件系统,在Ubuntu中执行命令使用OpenSSH登陆评估板文件系统,并在可执行程序所在目录执行命令运行TCP和UDP服务端和客户端程序。程序执行后,客户端将会连接服务端或服务端和客户端程序均在评估板上运行时,可进行本地回环测试。关键代码以TCP通信程序为例,包括注意源码中的数据结构和系统调用的使用。

       Python开发案例包括tl_led_flash和tl_key_test两个简单案例。操作说明包括将案例目录下的脚本文件拷贝到评估板文件系统,并在脚本文件所在目录执行命令查看程序参数信息,执行命令运行脚本程序,即可看到评估底板上的LED闪烁或检测按键事件。关键代码包括查找所有LED设备和控制LED亮灭,以及打开按键设备和监听按键事件。

       以上内容为Linux应用案例开发手册——基于Xilinx Zynq-/工业开发板中的详细开发案例和操作说明。更多关于嵌入式开发的内容分享,欢迎关注Tronlong创龙科技~

如何利用Zynq-的PL和PS进行交互

       åœ¨Zynq-上编程PL大致有3种方法:

       1. 用FSBL,将bitstream集成到boot.bin中

       2. 用U-BOOT命令

       3. 在Linux下用xdevcfg驱动。

       æ­¥éª¤ï¼š

       1. 去掉bitstream的文件头

       ç”¨FSBL烧写PL Images没有什么好说的,用Xilinx SDK的Create Boot Image工具即可完成,不再赘述。用后两种方法需要把bitstream文件的文件头用bootgen工具去掉。

       ä¸€ä¸ªå…¸åž‹çš„bif文件如下所示:

       the_ROM_image:

       {

       [bootloader]<fsbl_name>.elf

       <pl_bitstream_name>.bit

       <u-boot_name>.elf

       }

       bif文件可以用文本编辑器写,也可以用Xilinx SDK的Create Boot Image工具生成。然后在命令行下用以下命令即可去掉bitstream文件的文件头。

       bootgen -image <bootimage>.bif -split bin -o i BOOT.BIN

       "-split”参数可以生成以下文件:

       <pl_bitstream_name>.bit.bin

       2. 在U-BOOT下烧写PL Image

       å‘½ä»¤â€fpga load”和”fpga loadb”都可以。区别是前一个命令接受去掉了文件头的bitstream文件,后一个命令接受含有文件头的bitstream文件。

       åœ¨OSL .2上,缺省编译就可以完整支持写入PL Image的功能。但是在Petalinux .下,尽管可以在U-BOOT下看到命令”fpga”,还需要在文件

       <PROJ>/subsystems/linux/configs/u-boot/platform-top.h 中增加以下内容后重新编译才可以支持具体的功能。

       /* Enable the PL to be downloaded */

       #define CONFIG_FPGA

       #define CONFIG_FPGA_XILINX

       #define CONFIG_FPGA_ZYNQPL

       #define CONFIG_CMD_FPGA

       #define CONFIG_FPGA_LOADFS

       åœ¨OSL .2 U-BOOT中,具体的功能是在zynqpl.c的zynq_load()中实现的。

       3. 在Linux下烧写PL Image

       OSL Linux .2.中已经含有xdevcfg驱动了(之前就有,不过本文是在这个版本上验证的),直接用以下命令就可以完成PL Image写入。

       cat <path_to_storage_media>/<pl_bitstream_name>.bit.bin > /dev/xdevcfg

       Linux驱动的源代码在xilinx_devcfg.c中。因为驱动的编号是通过alloc_chrdev_region()动态分配的,所以不需要手工用mknod命令手动建立设备节点。

       åœ¨Linux驱动中,每次往DevCfg中写入字节,直到全部写完。

       4. 在用户程序中烧写PL Image

       ç›®å‰æ²¡æœ‰çŽ°æˆçš„源码来完成这个功能,不过可以用mmap()把DevCfg的寄存器映射到用户程序的虚地址中,然后参考一些现成的软件代码来完成这个功能:

        * FSBL中的pcap.c

        * U-BOOT中的zynqpl.c

        * Linux中的xilinx_devcfg.c

        * Xilinx SDK中的例子。例子位于以下位置,随SDK的版本会有变化。

        C:\Xilinx\SDK\.1\data\embeddedsw\XilinxProcessorIPLib\drivers\devcfg_v3_0\examples\index.html

       å°ç»“:

       DevCfg外设内部有自己的DMA,只需要简单的配置PL Image的基地址和长度到DevCfg寄存器,就可以完成Zynq- PL Image的加载。Xilinx已经提供了灵活的解决方案,如果开发者要把这个功能集成在自己的应用程序中,也有很多的代码可以参考,并不是很困难的任务。

sdr开发篇 6. zynq+ad的linux工程搭建

       SDR开发过程中,我们首先从hdl源码开始,从github下载_r1分支的zip包,解压后放置在工作区~/work/zynq_dev/ados。然后,创建Vivado工程,配置环境并编译,需要注意的是,这个工程需要针对xmzed进行修改。接着,对DDR和EMIO接口进行适配,并导出HDF文件。

       接着,我们进入Petalinux 2.1工程阶段,拷贝适配后的HDF文件,并从github获取ADI的Linux内核和meta-adi。内核和meta-adi需下载、解压并配置,硬件信息目录中需要设置唯一的HDF文件。初次配置后,后续只需在修改后重新编译,配置启动方式、接口、SD卡,并解决source bitbake失败的问题。

       内核配置中,USB和IIO功能默认开启。设备树部分,需在dash环境下修改,并在device-tree.bbappend中添加自定义设置。root文件系统配置时,由于meta-adi的影响,需要调整petalinux-user-image.bbappend以恢复默认设置。

       编译工程时,注意分配足够的CPU资源,可能需要解决网络问题并设置全局代理。遇到错误时,如jesd-status-dev-r0的fetch问题,需替换相关文件。最后,打包boot.bin并制作SD卡文件系统,包括EXT和FAT分区,并进行启动测试。

       测试阶段,通过拨码开关启动设备,使用默认root/root登录,进行IIO连接测试和Gnuradio发送信号测试。整个过程参考了相关教程和文档,如AD的开发指南和Linux驱动等。

使用Petalinux准备U-Boot并从网络启动

       å¦‚果想在FSBL里面加载bitstream的话,必须关闭FPGA Manager!

        GPIO操作,MIO从0-,EMIO从开始

        petalinux-build -c fsbl

        petalinux-build -c u-boot

        petalinux-package --boot --u-boot --format BIN

        然后把BOOT.BIN写入到SD卡中即可启动U-Boot

        这里就使用网线直连的方式来启动,也可以使用dhcp命令来自动获取ip

        记得saveenv,然后ping一下之前的NFS服务器ip,就可以使用了

        bdinfo查看到DRAM bank

        petalinux-build -c device-tree

        petalinux-build -c kernel

        nfs ...:/home/imcort/Documents/nfs/zImage

        nfs 0 ...:/home/imcort/Documents/nfs/system.dtb

        bootz - 0

        u-boot只需要保留最基本的设备驱动即可

        setenv bootcmd 'dhcp; nfs ...:/home/imcort/Documents/nfs/zImage; nfs 0 ...:/home/imcort/Documents/nfs/system.dtb; bootz - 0'

        saveenv

如何在Zynq-上烧写PL Image

       åœ¨Zynq-上编程PL大致有3种方法:

       1. 用FSBL,将bitstream集成到boot.bin中

       2. 用U-BOOT命令

       3. 在Linux下用xdevcfg驱动。

       æ­¥éª¤ï¼š

       1. 去掉bitstream的文件头

       ç”¨FSBL烧写PL Images没有什么好说的,用Xilinx SDK的Create Boot Image工具即可完成,不再赘述。用后两种方法需要把bitstream文件的文件头用bootgen工具去掉。

       ä¸€ä¸ªå…¸åž‹çš„bif文件如下所示:

       the_ROM_image:

       {

       [bootloader]<fsbl_name>.elf

       <pl_bitstream_name>.bit

       <u-boot_name>.elf

       }

       bif文件可以用文本编辑器写,也可以用Xilinx SDK的Create Boot Image工具生成。然后在命令行下用以下命令即可去掉bitstream文件的文件头。

       bootgen -image <bootimage>.bif -split bin -o i BOOT.BIN

       "-split”参数可以生成以下文件:

       <pl_bitstream_name>.bit.bin

       2. 在U-BOOT下烧写PL Image

       å‘½ä»¤â€fpga load”和”fpga loadb”都可以。区别是前一个命令接受去掉了文件头的bitstream文件,后一个命令接受含有文件头的bitstream文件。

       åœ¨OSL .2上,缺省编译就可以完整支持写入PL Image的功能。但是在Petalinux .下,尽管可以在U-BOOT下看到命令”fpga”,还需要在文件

       <PROJ>/subsystems/linux/configs/u-boot/platform-top.h 中增加以下内容后重新编译才可以支持具体的功能。

       /* Enable the PL to be downloaded */

       #define CONFIG_FPGA

       #define CONFIG_FPGA_XILINX

       #define CONFIG_FPGA_ZYNQPL

       #define CONFIG_CMD_FPGA

       #define CONFIG_FPGA_LOADFS

       åœ¨OSL .2 U-BOOT中,具体的功能是在zynqpl.c的zynq_load()中实现的。

       3. 在Linux下烧写PL Image

       OSL Linux .2.中已经含有xdevcfg驱动了(之前就有,不过本文是在这个版本上验证的),直接用以下命令就可以完成PL Image写入。

       cat <path_to_storage_media>/<pl_bitstream_name>.bit.bin > /dev/xdevcfg

       Linux驱动的源代码在xilinx_devcfg.c中。因为驱动的编号是通过alloc_chrdev_region()动态分配的,所以不需要手工用mknod命令手动建立设备节点。

       åœ¨Linux驱动中,每次往DevCfg中写入字节,直到全部写完。

       4. 在用户程序中烧写PL Image

       ç›®å‰æ²¡æœ‰çŽ°æˆçš„源码来完成这个功能,不过可以用mmap()把DevCfg的寄存器映射到用户程序的虚地址中,然后参考一些现成的软件代码来完成这个功能:

        * FSBL中的pcap.c

        * U-BOOT中的zynqpl.c

        * Linux中的xilinx_devcfg.c

        * Xilinx SDK中的例子。例子位于以下位置,随SDK的版本会有变化。

        C:\Xilinx\SDK\.1\data\embeddedsw\XilinxProcessorIPLib\drivers\devcfg_v3_0\examples\index.html

       å°ç»“:

       DevCfg外设内部有自己的DMA,只需要简单的配置PL Image的基地址和长度到DevCfg寄存器,就可以完成Zynq- PL Image的加载。Xilinx已经提供了灵活的解决方案,如果开发者要把这个功能集成在自己的应用程序中,也有很多的代码可以参考,并不是很困难的任务。

推荐资讯
鄭文燦1200萬二度交保 檢方抗告卷證今晚送高院!

鄭文燦1200萬二度交保 檢方抗告卷證今晚送高院!

ios 直播源码_2020最新直播源码

ios 直播源码_2020最新直播源码

spring 源码地址

spring 源码地址

discuz网站源码_discuz 源码

discuz网站源码_discuz 源码

广东:“四个聚焦”维护市场秩序 营造公平竞争环境

广东:“四个聚焦”维护市场秩序 营造公平竞争环境

笑话分享源码_笑话分享源码下载

笑话分享源码_笑话分享源码下载

copyright © 2016 powered by 皮皮网   sitemap