0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在Zynq-7000的方法

Xilinx赛灵思官微 来源:djl 作者:FAE 2019-07-24 15:26 次阅读

在Zynq-7000上编程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].elf
.bit
.elf
}

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

bootgen -image .bif -split bin -o i BOOT.BIN

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

.bit.bin

在Zynq-7000的方法

2. 在U-BOOT下烧写PL Image

命令”fpga load”和”fpga loadb”都可以。区别是前一个命令接受去掉了文件头的bitstream文件,后一个命令接受含有文件头的bitstream文件。

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

/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 2014.2 U-BOOT中,具体的功能是在zynqpl.c的zynq_load()中实现的。

3. 在Linux下烧写PL Image

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

cat /.bit.bin > /dev/xdevcfg

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

在Linux驱动中,每次往DevCfg中写入4096字节,直到全部写完。

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

目前没有现成的源码来完成这个功能,不过可以用mmap()把DevCfg的寄存器映射到用户程序的虚地址中,然后参考一些现成的软件代码来完成这个功能:

* FSBL中的pcap.c

* U-BOOT中的zynqpl.c

* Linux中的xilinx_devcfg.c

* Xilinx SDK中的例子。

小结:

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程
    +关注

    关注

    88

    文章

    3574

    浏览量

    93545
  • Zynq-7000
    +关注

    关注

    3

    文章

    144

    浏览量

    36782
收藏 人收藏

    评论

    相关推荐

    Zynq-7000 SoC提供 FPGA 资源

    ArduZynq 和 TE0726-03M ZynqBerry SBC 中的 Zynq Z-7010 SoC 的 FPGA 容量存在显著差异。虽然所有 Zynq-7000 SoC 都采用双核 Arm
    发表于 08-31 14:43

    Zynq-7000设置数字是什么意思?

    我正在使用Zynq-7000,选择欲望频率,我知道我应该使用-g ConfigRate,但这些设置数字是什么意思?例如,默认数字是3,这意味着频率是300KHz?谢谢
    发表于 08-05 13:14

    Zynq-7000是什么?Zynq-7000能干什么?

    Zynq-7000是什么?Zynq-7000能干什么?有何作用?
    发表于 06-30 06:22

    如何实现Xilinx Zynq-7000嵌入式系统设计?

    如何实现Xilinx Zynq-7000嵌入式系统设计?
    发表于 12-23 08:53

    Xilinx Zynq-7000特性参数

    CPUCPU为Xilinx Zynq-7000SOC,兼容XC7Z035/XC7Z045/XC7Z100,平台升级能力强,以下为Xilinx Zynq-7000特性参数:电源接口和开关采用12V3A
    发表于 12-30 07:55

    Zynq-7000系列特征概述

    Cortex A9的ARM核为核心,还包括片上存储器、片外存储器接口(DDR)和一系列的外设接口。Zynq-7000系列将ARM CPU和外设集成一个芯片内,使得Zynq-7000系列皆具处理器和FPGA双重特性,特别适用于软
    发表于 11-18 05:11 1.9w次阅读
    <b class='flag-5'>Zynq-7000</b>系列特征概述

    Xilinx Zynq-7000 EPP Showcased at Embedded World

    Xilinx Zynq-7000 EPP Showcased at Embedded World
    的头像 发表于 06-04 13:46 3171次阅读

    Zynq-7000 Extensible Processing Platform in Action

    Zynq-7000 Extensible Processing Platform in Action
    的头像 发表于 05-24 16:47 3282次阅读

    如何使用Zynq-7000 VI进行IP仿真验证和调试

    本视频将向您讲解如何使用Zynq-7000 VIP(验证IP)来高效地验证基于Zynq-7000处理系统的设计。另外,视频还介绍了如何配置,以及如何使用范例项目进行仿真的实施步骤。
    的头像 发表于 11-22 06:48 4410次阅读

    zynq-7000 SoC产品选型指南

    zynq-7000 SoC产品选型指南
    发表于 12-09 16:15 12次下载

    ZYNQ-7000系列MIO、EMIO、AXI_GPIO接口

    ZYNQ-7000系列MIO/EMIO/AXI_GPIO接口
    发表于 07-25 17:41 2616次阅读
    <b class='flag-5'>ZYNQ-7000</b>系列MIO、EMIO、AXI_GPIO接口

    ZYNQ-7000系列MIO/EMIO/AXI_GPIO接口

    ZYNQ-7000系列MIO/EMIO/AXI_GPIO接口
    发表于 01-31 06:50 12次下载
    <b class='flag-5'>ZYNQ-7000</b>系列MIO/EMIO/AXI_GPIO接口

    Zynq-7000 SoC数据手册下载

    Zynq-7000 SoC数据手册下载
    发表于 05-21 15:22 29次下载

    Zynq-7000 SoC的安全启动应用说明

    电子发烧友网站提供《Zynq-7000 SoC的安全启动应用说明.pdf》资料免费下载
    发表于 09-13 11:46 1次下载
    <b class='flag-5'>Zynq-7000</b> SoC的安全启动应用说明

    Zynq-7000 SoC:嵌入式设计教程

    电子发烧友网站提供《Zynq-7000 SoC:嵌入式设计教程.pdf》资料免费下载
    发表于 09-13 09:20 4次下载
    <b class='flag-5'>Zynq-7000</b> SoC:嵌入式设计教程