新書推薦:
《
从康德到黑格尔的发展:兼论宗教哲学(英国观念论名著译丛)
》
售價:HK$
60.5
《
突破不可能:用特工思维提升领导力
》
售價:HK$
77.3
《
王阳明大传:知行合一的心学智慧(精装典藏版)
》
售價:HK$
221.8
《
失衡与重塑——百年变局下的中国与世界经济
》
售價:HK$
132.2
《
南方谈话:邓小平在1992
》
售價:HK$
80.6
《
纷纭万端 : 近代中国的思想与社会
》
售價:HK$
109.8
《
中国古代文体形态研究(第四版)(中华当代学术著作辑要)
》
售價:HK$
168.0
《
朋党之争与北宋政治·大学问
》
售價:HK$
99.7
|
編輯推薦: |
在《嵌入式系统软硬件协同设计实战指南(基于XilinxZYNQ第2版)》中,作者陆佳华、潘祖龙、彭竞宇等对Zynq-7000系列芯片和ZedBoard产品进行了出色的概述,还详细介绍了器件的结构。作者通过在Zynq-7000SoC芯片上搭建设计来引导读者,并深入描述了搭建该系统需要的工具以及相应的开发流程。Zynq-7000芯片是一个混合器件——软件和硬件都可以编程,本书覆盖了硬件设计工具以及高层软件设计工具和流程。最重要的是作者通过完整的开发流程引导读者理解启动和配置器件,以及启动更高层执行(如操作系统)的过程。本书还提供了几个在ZedBorad上运行的参考设计,这些参考设计覆盖了工业电机控制到智能图像处理,所有这些信息使读者可以快速理解并在Zynq-7000SoC芯片上搭建设计。
|
內容簡介: |
陆佳华、潘祖龙、彭竞宇等编著的《嵌入式系统软硬件协同设计实战指南(基于XilinxZYNQ第2版)》分为基础篇和进阶篇两大部分,基础篇主要介绍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开发指南》一书。
|
目錄:
|
序言
第2版前言
第一部分 基础篇
第1章 将你的ZED板卡用起来
1.1 GPIO LED动手玩
1.1.1 安装SD卡
1.1.2 跳线与外设连接
1.1.3 演示操作
1.2 Linaro Ubuntu动手玩
1.2.1 SD卡分区
1.2.2 文件复制
1.2.3 外设连接
1.2.4 可演示的效果
第2章 Zynq平台介绍
2.1 7系列FPGA简介
2.2 Zynq-7000 AP SoC体系简介
第3章 ZedBoard开发环境
3.1 ZedBoard的板载外设
3.1.1 LED
3.1.2 按键
3.1.3 开关
3.1.4 OLED
3.1.5 USB接口
3.1.6 音频接口
3.1.7 VGA接口
3.1.8 HDMI接口
3.1.9 101001000兆网口
3.2 ZedBoard的扩展外设
3.2.1 PMod
3.2.2 外扩FMC插槽
3.2.3 外扩AMS插座
第4章 Zynq开发工具链
4.1 Vivado设计套件
4.1.1 Vivado IDE
4.1.2 Vivado IP Integrator
4.1.3 Vivado调试介绍
4.2 软件开发工具链
4.2.1 SDK
4.2.2 交叉编译工具链
4.2.3 GDB与GDB Server
第5章 Zynq体系结构
5.1 应用处理器单元
5.1.1 Cortex-A9处理器
5.1.2 侦听控制单元
5.1.3 L2高速缓存
5.1.4 APU接口
5.2 通用外设
5.2.1 通用IO
5.2.2 SPI接口
5.2.3 UART接口
5.2.4 计时器
5.2.5 USB控制器
5.2.6 DDR控制器
5.3 数字逻辑设计
5.3.1 可编程逻辑“外设”
5.3.2 XADC
5.3.3 PCIe
5.4 MIOEMIO
第6章 系统级信号
6.1 电源管理
6.1.1 PS运行模式下的动态功耗削减
6.1.2 睡眠模式
6.2 时钟信号
6.2.1 CPU时钟域
6.2.2 DDR时钟域
6.2.3 基本的时钟分支结构
6.2.4 IO外设(IOP)时钟
6.2.5 PL时钟
6.2.6 其他时钟
6.3 复位系统
6.4 JTAG
6.5 中断处理
第7章 Zynq的启动与配置
7.1 Zynq的启动过程简介
7.2 外部启动条件
7.2.1 电源要求
7.2.2 时钟要求
7.2.3 复位要求
7.2.4 启动引脚设置
7.3 BootROM
7.3.1 BootROM的作用
7.3.2 BootROM的特点
7.3.3 执行BootROM后的状态
7.4 FSBL
7.5 SSBL
7.6 Linux启动过程
7.7 Secure Boot
第8章 面向软件工程师的逻辑设计
8.1 FPGA硬件加速原理
8.1.1 以空间换时间
8.1.2 以存储器换门电路
8.1.3 以IP集成换生产力
8.2 部分动态可重配置于Zynq
第9章 ZedBoard入门
9.1 跑马灯
9.1.1 Vivado工程创建
9.1.2 在Vivado中创建Zynq嵌入式系统
9.1.3 SDK应用程序的编写
9.2 Zynq嵌入式系统调试方法
9.2.1 Vivado硬件调试
9.2.2 使用SDK对Zynq进行调试
9.3 启动Linux
9.3.1 创建FSBL.elf
9.3.2 从SD卡启动Linux
9.3.3 从QSPI启动Linux
第二部分 进阶篇
第10章 基于虚拟平台的Zynq开发
10.1 QEMU介绍
10.2 编译QEMU源码
10.2.1 下载QEMU源码
10.2.2 配置QEMU
10.2.3 QEMU所依赖的库文件
10.2.4 编译QEMU
10.3 启动QEMU
10.4 QEMU中的嵌入式Linux
10.4.1 QEMU启动简介
10.4.2 使用Ubuntu包管理器快速搭建用户定制系统
10.4.3 使用SSH服务进行访问
10.4.4 使用Telnet服务进行访问
10.4.5 使用FTP服务向QEMU传送文件
10.4.6 USB设备支持
10.4.7 SMP对称多核处理器的支持
10.4.8 硬件模块GPIO支持
10.5 商业版虚拟平台
第11章 PL和PS的接口技术详解
11.1 PL和PS的接口
11.1.1 AXI接口简介
11.1.2 AXI Interconnect
11.2 Zynq的内部连接
11.2.1 AXI_HP
11.2.2 AXI_GP
11.2.3 AXI_ACP
11.3 PL和存储器系统性能概述
11.3.1 接口理论带宽
11.3.2 DDR控制器的吞吐率及效率
11.3.3 内部互连吞吐量瓶颈
11.3.4 如何选择PL的接口
第12章 基于Zynq的软硬件协同设计
12.1 多核处理器架构简介
12.1.1 什么是多核处理器
12.1.2 多核处理器发展的动机和优势
12.1.3 同构、异构多核架构的优点和挑战
12.2 软硬件协同设计方法论
12.2.1 什么是软硬件协同设计
12.2.2 软硬件协同设计发展的动机和优势
12.2.3 软硬件协同设计的基本流程
12.2.4 基于Xilinx工具的软硬件协同设计简介
12.3 高层次综合
12.3.1 高层次综合综述
12.3.2 高层次综合发展的动机与优势
12.3.3 Xilinx Vivado HLS工具简介
12.4 基于Xilinx Zynq的软硬件协同设计简例
12.4.1 功能简介
12.4.2 设计流程简介
第13章 Zynq高级开发
13.1 用户IP核设计
13.1.1 AXI PWM设计
13.1.2 添加用户IP,完成系统设计
13.2 构建嵌入式Linux系统
13.2.1 构建交叉编译环境
13.2.2 编译U-Boot
13.2.3 编译uImage
13.2.4 生成uramdisk.image.gz
13.2.5 创建devicetree.dtb
13.3 嵌入式Linux应用程序与驱动
13.3.1 Linux设备驱动与软硬件之间的关系
13.3.2 字符型设备驱动
13.3.3 PWM模块驱动程序
13.3.4 应用程序编写
13.4 HDMI设计
13.4.1 HDMI传输原理
13.4.2 ADV7511芯片的相关控制信号
13.4.3 HDMI系统Vivado实现
13.5 OpenCV移植
13.5.1 开发环境准备
13.5.2 配置cmake
13.5.3 OpenCV编译与安装
13.5.4 OpenCV移植与ZedBoard测试
13.6 基于OpenCV的树叶识别系统
13.6.1 项目总览
13.6.2 图像采集
13.6.3 预处理
13.6.4 特征提取
13.6.5 分类决策
13.6.6 过程总述
13.7 基于OpenCV的人脸检测系统
13.7.1 原理简介
13.7.2 系统设计与实现
13.8 嵌入式Web服务器搭建
13.8.1 Boa服务器移植与配置
13.8.2 Boa服务器的部署与测试
13.8.3 CGI程序简介
13.9 在ZedBoard上搭建网络摄像机
13.9.1 嵌入式网络摄像机
13.9.2 Mjpeg-Streamer移植
13.9.3 部署Mjpeg-Streamer
13.10 FreeRTOS
13.10.1 FreeRTOS介绍
13.10.2 FreeRTOS与ucOS-II的比较
13.10.3 FreeRTOS在Zynq上的应用实例与分析
13.11 基于FreeRTOS的Xilmfs
13.11.1 嵌入式文件系统概述
13.11.2 Xilmfs文件系统介绍
13.11.3 Xilmfs文件系统使用实例
13.11.4 利用mfsgen工具创建只读型文件系统镜像
13.12 Lwip
13.12.1 基于standalone的Lwip应用
13.12.2 基于FreeRTOS的Lwip应用
13.13 在Zynq上搭建Andriod
13.14 Zynq双核通信
第14章 系统级设计案例
14.1 多轴运动控制系统
14.1.1 整体结构
14.1.2 硬件系统设计
14.1.3 硬件系统与ZedBoard接口
14.1.4 控制系统设计流程
14.1.5 多轴控制系统结构设计
14.1.6 利用Vivado HLS实现电流环控制硬件
14.1.7 算法移植
14.1.8 算法综合
14.1.9 软件系统设计
14.1.10 双核交互实现
14.1.11 Android APP监控程序实现
14.1.12 系统测试
14.2 Sobel滤波
14.2.1 软件架构设计
14.2.2 Linux内核与设备驱动
14.3 SDNOpenFlow交换机
14.3.1 SDNOpenFlow简介
14.3.2 数据通路设计
14.3.3 平台架构搭建
14.3.4 系统及驱动
14.3.5 OpenFlow交换机移植
14.3.6 启动OpenFlow交换机
14.3.7 数据通路优化及加速
14.4 智能小车系统开发
14.4.1 智能小车系统结构
14.4.2 运动控制设计
14.4.3 Linux系统应用程序设计
14.4.4 智能小车平台的后续拓展
14.4.5 在智能小车平台上移植ROS
第15章 如何获取资料和帮助
15.1 如何获取Xilinx的技术文档
15.1.1 DocNav介绍
15.1.2 DocNav使用案例
15.2 如何找到Zynq开发资料
15.2.1 如何获取本书的最新例程
15.2.2 如何获取Zynq开发资料
15.2.3 如何获取ZedBoard文档与例程
15.3 Xilinx网站资源导读
15.3.1 序
15.3.2 Xilinx软件介绍
15.3.3 软件版本和软件更新
15.3.4 软件教程
15.3.5 硬件资料
15.3.6 参考资源
15.3.7 问题解决
参考文献
|
|