如何在Zynq-7000上烧写PL Image

在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]<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 2014.2上,缺省编译就可以完整支持写入PL Image的功能。但是在Petalinux 2013.10下,尽管可以在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 2014.2 U-BOOT中,具体的功能是在zynqpl.c的zynq_load()中实现的。

 

3. 在Linux下烧写PL Image

OSL Linux 2014.2.01中已经含有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中写入4096字节,直到全部写完。

 

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

 

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

    * FSBL中的pcap.c

    * U-BOOT中的zynqpl.c

    * Linux中的xilinx_devcfg.c

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

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

 

小结:

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/243018.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单端口RAM

单端口RAM 题目描述 设计一个单端口RAM,它有: 写接口,读接口,地址接口,时钟接口和复位;存储宽度是4位,深度128。注意rst为低电平复位 信号示意图: 单口RAM的实现原理 建立一个reg的数组,将数据存储进来,进行的是读、写互不干扰的读写机制,即要么读要么写。这个时…

什么叫黑名单?黑名单还能贷款吗?

黑户&#xff0c;也就是大家经常听说的黑名单。有过贷款经历的朋友估计都会谈“黑”色变&#xff0c;因为一旦你“涉黑”&#xff0c;你的贷款基本就没戏了。那什么是黑名单&#xff1f;是不是个人征信上写一个大大的“黑”字呢&#xff1f;其实所谓的黑名单只是一种通俗的说法…

内部爆料:信用卡被盗刷,如何把风险降到最低?

信用卡在身上&#xff0c;可是手机却收到了异地的交易信息。相信很多人的第一反应是卡被盗刷了&#xff0c;赶紧打电话挂失&#xff0c;其实这并不是最好的选择。根据银行人提供的内部消息&#xff0c;如果信用卡被盗刷&#xff0c;这样做会把风险降到最低&#xff1a;步骤一&a…

RAM的简单实现

RAM的简单实现 题目描述 实现一个深度为8,位宽为4bit的双端口RAM,数据全部初始化为0000。具有两组端口,分别用于读数据和写数据,读写操作可以同时进行。当读数据指示信号read_en有效时,通过读地址信号read_addr读取相应位置的数据read_data,并输出;当写数据指示信号wri…

Cadence元器件库

Cadence ORCAD CAPTURE 元件库介绍 Ieee 文件夹 ieee_ 百度百科 美国电气和电子工程师协会 (IEEE) 是一个国际性的电子技术与信息科学工程师的协会&#xff0c;是世界上最大的专业技术组织之一&#xff08;成员人数&#xff09;&#xff0c;拥有来自 175 个国 ... IEEE …

没有工作怎么申请贷款?

大家都知道&#xff0c;贷款是需要考核借款人的职业&#xff0c;要么你是上班族&#xff0c;有稳定的工作&#xff0c; 要么你是企业主&#xff0c;有自己的生意。那对于那些既没有工作&#xff0c;也没有生意的人来说&#xff0c;想贷款怎么办呢&#xff1f;1、实物抵押贷款如…

买房为什么要少出首付,多贷款?

买房到底是全款买房好呢&#xff0c;还是贷款买房好呢&#xff1f;最近有一个朋友买了套房子&#xff0c;到处在借钱。我问他&#xff0c;你首付不够吗&#xff1f;这朋友说&#xff0c;如果按三成首付算的话&#xff0c;早就够&#xff0c;但是不想贷款&#xff0c;白白给银行…

Johnson Counter

Johnson Counter 题目描述 请用Verilog实现4位约翰逊计数器&#xff08;扭环形计数器&#xff09;&#xff0c;计数器的循环状态如下。 电路的接口如下图所示。 timescale 1ns/1nsmodule JC_counter(input clk ,input rst_n,output reg [3:0…

ORCAD CAPTURE 元件库详解

1 AMPLIFIER.OLB 共182个零件&#xff0c;存放模拟放大器IC&#xff0c;如CA3280&#xff0c;TL027C&#xff0c;EL4093等。 2 ARITHMETIC.OLB 共182个零件&#xff0c;存放逻辑运算IC&#xff0c;如TC4032B&#xff0c;74LS85等。 3 ATOD.OLB 共618个零件&#xff0c;存放A/D转…

Using Artica Squid Open Source Project to Build Powerful and Safe but Simple to Use Proxy

Looking for a pre-installed GUI based Proxy for a while and found Artica recently. The feature is pretty attractive and GUI interface looks cool. What is Artica? “Artica Proxy is an appliance that claim to manage Squid-cache proxy with all features that …

贷款总是被拒,到底是什么原因?

贷款被拒&#xff0c;很多时候借款人并不知道是什么原因&#xff0c;很多朋友都觉得自己的条件挺好的&#xff0c;就算贷不到大额的贷款&#xff0c;贷个几万应该不成问题吧&#xff1f;可结果往往事与愿违&#xff0c;糊里糊涂的就被拒了&#xff0c;一毛钱都拿不到。其实信贷…

管理处理器的亲和性(affinity)

转自&#xff1a; http://www.ibm.com/developerworks/cn/linux/l-affinity.html 简单地说&#xff0c;CPU 亲和性&#xff08;affinity&#xff09; 就是进程要在某个给定的 CPU 上尽量长时间地运行而不被迁移到其他处理器的倾向性。Linux 内核进程调度器天生就具有被称为 软 …

流水线乘法器

流水线乘法器 题目描述 实现4bit无符号数流水线乘法器设计。 电路的接口如下图所示。 将乘法分解为若干个加法。 `timescale 1ns/1nsmodule multi_pipe#(parameter size = 4 )(input clk , input rst_n ,input [size-1:0] mul_a ,input [size-1:0] …

贷款审批时,会重点看征信报告哪些内容?

大家都知道申请贷款需要提供个人征信报告&#xff0c;但是大家知道贷款公司是怎么看征信报告的吗&#xff1f;哪些内容是信贷公司重点审核的对象呢&#xff1f;一、征信报告记录时间一般信贷公司会重点考察借款人最近两年内的征信情况。二、征信报告打印时间征信报告的打印时间…

什么叫白户,白户能贷款吗?

前几天有一个朋友跟贷款教授反映&#xff0c;他从来没有过信用逾期记录&#xff0c;但是申请贷款的时候被贷款机构告知&#xff0c;他是“征信白户”&#xff0c;所以做不了。相信有不少朋友都会遇到过类似的情况&#xff0c;那征信白户到底是什么意思&#xff0c;为什么征信白…

简易交通灯

简易交通灯 题目描述 要求实现一个交通红绿灯,具有红黄绿三个小指示灯和一个行人按钮,正常情况下,机动车道指示灯按照60时钟周期绿灯,5个时钟周期黄灯,10个时钟周期红灯循环。当行人按钮按下,如果剩余绿灯时间大于10个时钟,则缩短为10个时钟,小于10个时钟则保持不变。…

如何使用oprofile对软件做profiling

排行榜 收藏 打印 发给朋友 举报发布者&#xff1a;jackzhang热度112票 浏览1257次 【共0条评论】【我要评论】时间&#xff1a;2014年1月08日 11:04关于Xilinx Zynq-7000带来的新的系统设计思路&#xff0c;以及Profiling的对象libjpeg&#xff0c;前文已经描述过了&#xff…

5种常见信用卡还款方式对比

信用卡还款&#xff0c;你经常使用哪种方式呢&#xff1f;下面我们来对比下常用几种信用卡还款方式的优劣。1、自动还款&#xff1a;自动还款就是开通自动还款功能&#xff0c;绑定本行的储蓄卡账号&#xff0c;还款日到期了自动扣款。优势&#xff1a;可以及时还款&#xff0c…

网上贷款,靠谱吗?

随着互联网技术的发展&#xff0c;通过网上贷款的人越来越多&#xff0c;但也有很多网友对网上贷款表示质疑&#xff0c;认为网上贷款不靠谱&#xff0c;那到底网上贷款靠不靠谱呢&#xff1f;首先我想说的&#xff0c;网上贷款有真实的&#xff0c;也有虚假的&#xff0c;靠不…

Julia与R/Python/MATLAB比较及Julia中的Text Analysis模块

http://site.douban.com/146782/widget/notes/15468638/note/356127615/ 上午等着R跑数&#xff0c;R是出了名的慢&#xff0c;特别是处理文本时。无聊中&#xff0c;刷了一遍微博&#xff0c;惊现R界的扫地僧&#xff08;谢益辉语&#xff09;宫雨放出了RJulia。GitHub地址在此…