zedboard约束条件怎么加

zedboard约束条件怎么加,第1张

为了实现rst下降沿复位,第38句使用了一次取反

assign rst = ~BTNU

小灯的移位采用“左移1位+右移N-1”模式,第29行可雀桐以看出来

LD_reg <=(LD_reg>>1)|(LD_reg<<7)

设定引脚约束,ucf内容如余禅下。LOC表示引脚锁定,IOSTANDARD表明引脚电平。完整的ucf文件可以从Diligent官方顷毁坦网站上下载

使用PlanAhead I/O pin planing(post synthesis)可以看到引脚约束的结果

在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已经提供了灵活的解决方案,如果开发者要把这个功能集成在自己的应用程序中,也有很多的代码可以参考,并不是很困难的任务。

如何在苹果的ipad上执行android的应用程式

从现在技术来说,在苹果的ipad上无法通过任何方法执行android的应用程式apk档案

apk是安卓系统安装程式档案的一种格式,ipa是苹果安装档案的格式,apk和ipa只是用在不同的系统上。

如何在Zedboard上执行linux下的应用程式

可芦氏以参考如下方法以实现Linux执行windows软体: 1、安装linux版的vmware,然后通过vmware建立windows虚拟机器,通过vnc实现linux物理机和windows虚拟机器的共享,从而执行windows软体裤旅。 2、在Linux上安装Wine,

linux上的可执行程式是没有后缀名之分的。只要有可以执行许可权就可以执行。

执行也是非常简单的,只需要在终端敲出路径+使用者名称就OK

例如,需要执行的档名叫test

如果你就在可执行档案所在的路径下就可以使用这个

root~#./test

如果不在test坐在的路径可以使用绝对路径,加入你的test所在的路径是/home 下面就这样了

root~#/home/test

这样就可以执行了

1 从命令列执行:

从命令列或者 shell 提示符执行应用程式的一个常用方法是使用 ./ 命令。如果您在 Linux 中使用句号 (。) 和正斜杠 (/),就意味着告诉环境您想要以可执行档案执行该档案。例如,执行一个名为 myapp 的陪纯散可执行档案,您可以使用 ./myapp 命令。

2从桌面执行应用程式

在 Linux 中从桌面执行图形使用者介面 (GUI) 应用程式与在 Windows 中没多大区别。通常,您需要了解特定的桌面环境下应用程式在选单中是如何分组的。Linux 有足够的桌面应用程式,可用于各种任务。有一些应用程式是 Linux 本机固有的,还有另外一些应用程式可能是在一个常用执行时环境中使用 C# 开发的跨平台应用程式,比如,。NET Framework 应用程式。您会发现,使用一个 Wine 这样的虚拟环境,您甚至可以在 Linux 上执行您最喜爱的 Windows 应用程式。

参考文件::elecfans./pld/PLDkaifaban/306232.

ZedBoard开发板上的Zynq是一个ARM PS(processing system, 双核A9 + 储存管理 + 外设)+ PL(programable Logic) 结构,如果不使用PL,zynq的开发和普通的ARM 开发一样。不同的是ARM PS是可配置,因而硬体资讯是不固定的。这也是zynq灵活性的一个表现。电子发烧友网编辑现为读者整合《玩转赛灵思Zedboard开发板》系列文章, 其中包括在ZedBoard开发板上的一些应用例项。其内容包括:

玩转赛灵思Zedboard开发板(1):ZedBoard详解

玩转赛灵思Zedboard开发板(2):ZedBoard最简单的测试工程

玩转赛灵思Zedboard开发板(3):基于Zynq PL的流水灯

玩转赛灵思Zedboard开发板(4):如何使用自带外设IP让ARM PS访问FPGA?

玩转赛灵思Zedboard开发板(5):基于AXI Lite 汇流排的从装置IP设计

从本小节开始,讲着重介绍Zedboard上的嵌入式linux应用,包括使用SDK设计最简单的linux应用程式、linux交叉编译环境搭建、装置驱动编写等内容。本小节使用的linux系统是Digilent官方提供的OOB设计,它是Digilent官网给出的一个完整的、Zedboard可执行的linux 系统,包含了Zedboard上的几个重要的装置驱动如串列埠、USB、乙太网、OLED、HDMI等。当linux在Zedboard上执行起来后,Zedboard就是一个小型的嵌入式系统,使用SDK及Xilinx ARM Linux工具链编译生成的可执行档案可以在这个系统执行。

硬体平台:Digilent ZedBoard;开发环境:Windows XP 32 bit;软体: SDK 14.2。

一、获取Zedboard可执行的linux

Digilent官网给出Zedboard的可执行linux设计ZedBoard_OOB_Design包,可从:digilentinc./Data/Documents/Other/ZedBoard_OOB_Design.zip获取,下载后解压,可以看到包的结构和内容:

boot_image目录:

-- system.bit – 配置FPGA的bit档案

-- u-boot.elf – 引导linux需要的Second-Stage boot loader

-- zynq_f *** l.elf – 配置ARM PS系统的First-Stage boot loader(FSBL)

doc目录:

-- README.txt – 说明档案

hw目录:

-- EDK 14.1版本的XPS工程,用来生成硬体档案和bit档案

linux目录:

-- devicetree_ramdisk.dts – 装置树原始码

-- .config – Linux核心配置档案,用来生成zImage

sd_image目录:

-- BOOT.BIN – 使用boot_images中的三个档案生成的Zynq配置档案

-- devicetree_ramdisk.dtb – 编译后的装置树档案

-- ramdisk8M.image.gz – 编译后的档案系统

-- README – 介绍如何执行OOB设计的说明文件

-- zImage – 编译后的核心

sw目录:

--硬体配置

--FSBL原始码

其中sd_image目录中包含了ZedBoard上能够执行linux的所有档案。将SD卡格式化为Fat32,把sd_image目录档案拷贝到SD 卡根目录下;然后将JP7~JP11设定为SD卡启动模式,将JP2短路,JP3断开,这样可以下一步我们可以把U盘作为USB 从装置挂载到Zedboard上。

图 Zedboard的连线和短路块设定

上电后,等待ARM PS的配置、FPGA的配置(蓝色LED DONE 亮起),之后开始引导Linux系统了。可以从超级终端上看到一系列的引导资讯:

1 U-Boot 2012.04.01-00297-gc319bf9-dirty (Sep 13 2012 - 09:30:49)

2

3 DRAM: 512 MiB

4 WARNING: Caches not enabled

5 MMC: SDHCI: 0

6 Using default environment

直接在命令列输入该档名字;在档案之前加上路径即可; 比如当下目录下的test 执行./test ps:点斜杠表示当前目录

如何在CDH 5上执行Spark应用程式

几个基本概念:

(1)job:包含多个task组成的平行计算,往往由action催生。

(2)stage:job的排程单位。

(3)task:被送到某个executor上的工作单元。

(4)taskSet:一组关联的,相互之间没有shuffle依赖关系的任务组成的任务集。

一个应用程式由一个driver program和多个job构成。一个job由多个stage组成。一个stage由多个没有shuffle关系的task组成。

spark应用程式的执行架构:

(1)简单的说:

由driver向丛集申请资源,丛集分配资源,启动executor。driver将spark应用程式的程式码和档案传送给executor。executor上执行task,执行完之后将结果返回给driver或者写入外界。

(2)复杂点说:

提交应用程式,构建sparkContext,构建DAG图,提交给scheduler进行解析,解析成一个个stage,提交给丛集,由丛集工作管理员进行排程,丛集启动spark executor。driver把程式码和档案传给executor。executor进行各种运算完成task任务。driver上的block tracker记录executor在各个节点上产生的资料块。task执行完之后,将资料写入HDFS上或者其他型别资料库里。

(3)全面点说:

spark应用程式进行各种transformation的计算,最后通过action触发job。提交之后首先通过sparkContext根据RDD的依赖关系构建DAG图,DAG图提交给DAGScheduler进行解析,解析时是以shuffle为边界,反向解析,构建stage,stage之间也有依赖关系。这个过程就是对DAG图进行解析划分stage,并且计算出各个stage之间的依赖关系。然后将一个个TaskSet提交给底层排程器,在spark中是提交给taskScheduler处理,生成TaskSet manager,最后提交给executor进行计算,executor多执行绪计算,计算完反馈给TaskSetmanager,再反馈给taskScheduler,然后再反馈回DAGScheduler。全部执行完之后写入资料。

本文主要记录在 CDH5 丛集环境上如何建立一个 Scala 的 maven 工程并且编写、编译和执行一个简单的 Spark 程式

:tuicool./articles/Ajuyqan

:iteblog./archives/1073

上面有教程、程式码演示,请参考了。

建立 maven 工程

使用下面命令建立一个普通的 maven 工程:

bash

$ mvn archetype:generate -DgroupId=.cloudera.sparkwordcount -DartifactId=sparkwordcount -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

将 sparkwordcount 目录重新命名为simplesparkapp,然后,在 simplesparkapp 目录下新增 scala 原始档目录:

bash

$ mkdir -p sparkwordcount/src/main/scalacloudera/sparkwordcount

修改 pom.xml 新增 scala 和 spark 依赖:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12209755.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存