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 依赖:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)