嵌入式系统软硬件协同设计实战指南:基于Xilinx ZYNQ(第2版)pdf下载

嵌入式系统软硬件协同设计实战指南:基于Xilinx ZYNQ(第2版)百度网盘pdf下载

作者:
简介:嵌入式系统软硬件协同设计实战指南:基于Xilinx ZYNQ(第2版)
出版社:机械工业出版社
出版时间:2014-07-01
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

编辑推荐
在《嵌入式系统软硬件协同设计实战指南(基于XilinxZYNQ第2版)》中,作者陆佳华、潘祖龙、彭竞宇等对Zynq-7000系列芯片和ZedBoard产品进行了出色的概述,还详细介绍了器件的结构。作者通过在Zynq-7000SoC芯片上搭建设计来引导读者,并深入描述了搭建该系统需要的工具以及相应的开发流程。Zynq-7000芯片是一个混合器件——软件和硬件都可以编程,本书覆盖了硬件设计工具以及高层软件设计工具和流程。*重要的是作者通过完整的开发流程引导读者理解启动和配置器件,以及启动更高层执行(如操作系统)的过程。本书还提供了几个在ZedBorad上运行的参考设计,这些参考设计覆盖了工业电机控制到智能图像处理,所有这些信息使读者可以快速理解并在Zynq-7000SoC芯片上搭建设计。 
内容简介
本书分为基础篇和进阶篇两大部分,基础篇主要介绍ZynqSOC架构,ARMCortex-A9处理器,开发工具链等,器件Boot过程,并配备了大量基础实验,包括板卡的启动,编译嵌入式Linux系统,完成ARM和FPGA的简单片内通讯等;在进阶篇中详解了处理器和FPGA间接口种类和工作方式,分析了如何完成两者间高速的数据交互,通过实例介绍了如何在FPGA中定义用户自己的IP核并完成驱动编写供处理器上运行的Linux使用等,例如如何完成HDMI接口,如何将摄像头数据传递给处理器,并通过运行的OpenCV。本书还将结合Xilinx最新的Vivado和AutoESL开发工具介绍整体软硬件协同设计开发流程并通过案例分析。本书可作为Zynq初学者、软硬件协同设计开发人员的参考用书,亦可作为大专院校嵌入式系统设计、片上系统设计、可编程逻辑器件等相关专业的教师和学生的参考用书。
作者简介
  陆佳华,开源硬件社区Operhw.org资深版主,Xilinx高级应用工程师,现任职于Xilinx全球大学计划部,主要负责Xilinx全球大学相关的参考设计开发,技术推广、支持。2006年毕业于西安交通大学并获得硕士学位。同年加入Xilinx公司就任产品应用工程师,主要负责FPGA上的嵌入式系统设计、以太网设计、内存控制器设计等方向技术支持。著有《零存整取NetFPGA开发指南》一书。
目录
嵌入式系统软硬件协同设计实战指南:基于Xilinx ZYNQ(第2版)

序言
第2版前言
第一部分 基础篇
第1章 将你的ZED板卡用起来
1.1 GPIO LED动手玩
1.2 Linaro Ubuntu动手玩
第2章 Zynq平台介绍
2.1 7系列FPGA简介
2.2 Zynq-7000AP SoC体系简介
第3章 ZedBoard开发环境
3.1 ZedBoard的板载外设
3.2 ZedBoard的扩展外设
第4章 Zynq开发工具链
4.1 Vivado设计套件
4.2 软件开发工具链
第5章 Zynq体系结构
5.1 应用处理器单元
5.2 通用外设
5.3 数字逻辑设计
5.4 MIO/EMIO
第6章 系统级信号
6.1 电源管理
6.2 时钟信号
6.3 复位系统
6.4 JTAG
6.5 中断处理
第7章 Zynq的启动与配置
7.1 Zynq的启动过程简介
7.2 外部启动条件
7.3 BootROM
7.4 FSBL
7.5 SSBL
7.6 Linux启动过程
7.7 Secure Boot
第8章 面向软件工程师的逻辑设计
8.1 FPGA硬件加速原理
8.2 部分动态可重配置于Zynq
第9章 ZedBoard入门
9.1 跑马灯
9.2 Zynq嵌入式系统调试方法
9.3 启动Linux
第二部分 进阶篇
第10章 基于虚拟平台的Zynq开发
10.1 QEMU介绍
10.2 编译QEMU源码
10.3 启动QEMU
10.4 QEMU中的嵌入式Linux
10.5 商业版虚拟平台
第11章 PL和PS的接口技术详解
11.1 PL和PS的接口
11.2 Zynq的内部连接
11.3 PL和存储器系统性能概述
第12章 基于Zynq的软硬件协同设计
12.1 多核处理器架构简介
12.2 软硬件协同设计方法论
12.3 高层次综合
12.4 基于Xilinx Zynq的软硬件协同设计简例
第13章 Zynq高级开发
13.1 用户IP核设计
13.2 构建嵌入式Linux系统
13.3 嵌入式Linux应用程序与驱动
13.4 HDMI设计
13.5 OpenCV移植
13.6 基于OpenCV的树叶识别系统
13.7 基于OpenCV的人脸检测系统
13.8 嵌入式Web服务器搭建
13.9 在ZedBoard上搭建网络摄像机
13.10 FreeRTOS
13.11 基于FreeRTOS的Xilmfs
13.12 Lwip
13.13 在Zynq上搭建Andriod
13.14 Zynq双核通信
第14章 系统级设计案例
14.1 多轴运动控制系统
14.2 Sobel滤波
14.3 SDN/OpenFlow交换机
14.4 智能小车系统开发
第15章 如何获取资料和帮助
15.1 如何获取Xilinx的技术文档
15.2 如何找到Zynq开发资料
15.3 Xilinx网站资源导读
参考文献
前言
  序言
  随着开发定制芯片成本的飞速增长,越来越少的人拥有在最新的工艺节点上开发专用芯片或片上系统(ASIC/SoC)的资源。因此人们迫切需要一个能提供低功耗、高性能及高容量等优势的ASIC和FPGA硬件可编程器件。有了这样的器件就可以被用户编程为自己设计的专用SoC。该类的器件尤其对教师和学生有用,它们可使每个人都可以搭建自己的专用全可编程SoC,而不需要真实的搭建一片硅片。
  Xilinx Zynq-7000全可编程SoC系列器件正是这类产品。在这个芯片的硬件部分实现了一个高性能、双核ARM Cortex-A9处理器子系统(PS)和一个丰富的内存、配置和互联接口。在FPGA逻辑部分保留了灵活性以及其他传统FPGA具备的所有优势,FPGA则通过多口高性能接口连接到PS端,实现了PS与FPGA间的高带宽通信。
  ZedBoard(Zynq-7000开发板)通过提供一个专门为这类独特并且功能强大的器件推广到广大应用和用户,并重点关注大学生的定制平台,将定制化SoC的概念带到了下一步。
  在本书中,作者对Zynq-7000系列芯片和ZedBoard产品进行了出色的概述,还详细介绍了器件的结构。作者通过在Zynq-7000SoC芯片上搭建设计来引导读者,并深入描述了搭建该系统需要的工具以及相应的开发流程。Zynq-7000芯片是一个混合器件——软件和硬件都可以编程,本书覆盖了硬件设计工具以及高层软件设计工具和流程。最重要的是作者通过完整的开发流程引导读者理解启动和配置器件,以及启动更高层执行(如操作系统)的过程。本书还提供了几个在ZedBorad上运行的参考设计,这些参考设计覆盖了工业电机控制到智能图像处理,所有这些信息使读者可以快速理解并在Zynq-7000SoC芯片上搭建设计。
  这本书提供了优秀并且简明的所有应该要开始使用的Zynq-7000SoC系列的信息。作为全球领先的电子产品开发者,中国的经济依靠着富有天赋并且受过良好训练的工程师们为强大的经济发展提供燃料。本书作为一本介绍Zynq-7000SoC产品相关的书籍,对于中国用户是非常适用的。
  Vidya Rajagopalan
  赛灵思处理、系统、解决方案以及应用部副总裁
精彩书摘
  欢迎大家来到Zynq的世界。对于这块业界首款ARM Cortex-A9双核与FPGA紧密融合的全可编程片上系统(All Programmable SoC),大家一定期待已久了。那么这款颠覆性构架的芯片到底能给我们带来怎样的惊喜呢?本章将通过两个简单的例子,使大家对Zynq的能力有一个大致的认识。还等什么,拿起你的ZedBoard跟我来吧。
  通常情况下,第一个实验的例子总是从如何点亮LED开始,ZedBoard也是如此,但是如果细心观察,将会发现特殊之处。在这个实验中,需要准备SD卡读卡器、USB-microUSB线。
  将Zedboard中的SD卡拔出,插入PC后格式化。在本书网盘或GitHub第1章路径中找到BOOT.BIN文件,将其复制到SD卡中。卸载SD卡,将其插入到ZedBoard上的SD卡插槽中。(注意:不要重命名BOOT.BIN文件,其后的章节会解释具体原因。)
  在ZedBoard板卡的右上方可以找到五个跳线帽,这是用于设置ZedBoard的启动模式的,将五个跳线帽按如图1-1所示进行设置,表示其将从SD卡启动。
  使用USB-microUSB线将ZedBoard与PC相连。注意,ZedBoard的连接口为板卡左上方的UART接口。打开串口监视软件(TeraTerm),设置参数如下:波特率115200,数据位8,停止位1,无奇偶校验位,无硬件控制流。
  打开串口终端及ZedBoard电源开关。Zynq将会根据启动模式设置其自动从SD卡中启动,并显示如图1-2所示的打印信息。
  利用超级终端输入“1”,进入正常GPIO输入模式。此时,在ZedBoard上按下BTNU按键,LD9将会熄灭若干秒后亮起。
  LED的实验到这里就结束了。如果仔细观察串口打印信息,你可能会感到疑惑:什么是普通的GPIO,难道还有不普通的GPIO么?EMIO又是什么东西呢?保持疑惑,在后面的章节中,我们将会一一解答。
  是不是觉得第一个实验太简单了,不能展现ZedBoard的魅力?那么下面这个实验将展现出ARM Cortex-A9双核的能力。在这个演示中,需要准备一台装有Linux系统的PC、HDMI线(或者HDMI-DVI线)、具有HDMI或DVI输入接口的显示器、USB Hub、网线、USB鼠标、USB键盘、USB摄像头(可选)。什么?你不会Linux,那可糟糕啦!众所周知ARM+Linux的嵌入式应用早已经铺天盖地地进入市场,就连炙手可热的Android也是基于Linux内核。来吧,打开你的电脑,装一个Linux跟我们一起玩吧!关于Linux系统版本的选择,本书推荐使用Ubuntu 12.04,这是一个LTS版本,对于日常开发使用而言足矣。如果不想安装双系统,那么可以先装一个虚拟机,比如VirtualBox,然后再安装Linux,一样可以和我们一起玩。
  在ZedBoard中自带SD卡的容量是4GB,当然更大容量的SD卡也同样可以。将SD卡格式化后,分为两个分区:FAT格式分区(500MB)和EXT4分区(至少3GB)。在Ubuntu 12.04环境下,可以使用Disk Unity工具实现。
  首先将一张新SD卡挂载到Linux系统中,打开Disk Unity软件,单击USB Mass Storage Device选项,将显示如图1-3所示界面。