嵌入式系统软硬件协同设计实战指南

嵌入式系统软硬件协同设计实战指南

陆佳华, 等编著

出版社:机械工业出版社

年代:2014

定价:69.0

书籍简介:

本书分为基础篇和进阶篇两大部分,基础篇主要介绍Zynq SOC架构,ARM Cortex-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板卡用起来/2

1.1 GPIO LED动手玩/2

1.1.1 安装SD卡/2

1.1.2 跳线与外设连接/2

1.1.3 演示操作/2

1.2 Linaro Ubuntu动手玩/3

1.2.1 SD卡分区/3

1.2.2 文件复制/6

1.2.3 外设连接/6

1.2.4 可演示的效果/7

第2章 Zynq平台介绍/9

2.1 7系列FPGA简介/9

2.2 Zynq-7000 AP SoC体系简介/12

第3章 ZedBoard开发环境/15

3.1 ZedBoard的板载外设/15

3.1.1 LED/15

3.1.2 按键/16

3.1.3 开关/16

3.1.4 OLED/17

3.1.5 USB接口/18

3.1.6 音频接口/20

3.1.7 VGA接口/21

3.1.8 HDMI接口/22

3.1.9 10/100/1000兆网口/23

3.2 ZedBoard的扩展外设/25

3.2.1 PMod/25

3.2.2 外扩FMC插槽/27

3.2.3 外扩AMS插座/28

第4章 Zynq开发工具链/29

4.1 Vivado设计套件/29

4.1.1 Vivado IDE/29

4.1.2 Vivado IP Integrator/32

4.1.3 Vivado调试介绍/35

4.2 软件开发工具链/37

4.2.1 SDK/37

4.2.2 交叉编译工具链/38

4.2.3 GDB与GDB Server/39

第5章 Zynq体系结构/41

5.1 应用处理器单元/41

5.1.1 Cortex-A9处理器/41

5.1.2 侦听控制单元/44

5.1.3 L2高速缓存/45

5.1.4 APU接口/45

5.2 通用外设/47

5.2.1 通用I/O/47

5.2.2 SPI接口/50

5.2.3 UART接口/52

5.2.4 计时器/55

5.2.5 USB控制器/57

5.2.6 DDR控制器/58

5.3 数字逻辑设计/60

5.3.1 可编程逻辑“外设”/60

5.3.2 XADC/62

5.3.3 PCIe/63

5.4 MIO/EMIO/64

第6章 系统级信号/67

6.1 电源管理/67

6.1.1 PS运行模式下的动态功耗削减/68

6.1.2 睡眠模式/68

6.2 时钟信号/68

6.2.1 CPU时钟域/69

6.2.2 DDR时钟域/70

6.2.3 基本的时钟分支结构/70

6.2.4 I/O外设(IOP)时钟/71

6.2.5 PL时钟/73

6.2.6 其他时钟/73

6.3 复位系统/74

6.4 JTAG/76

6.5 中断处理/77

第7章 Zynq的启动与配置/79

7.1 Zynq的启动过程简介/79

7.2 外部启动条件/80

7.2.1 电源要求/80

7.2.2 时钟要求/80

7.2.3 复位要求/80

7.2.4 启动引脚设置/81

7.3 BootROM/81

7.3.1 BootROM的作用/81

7.3.2 BootROM的特点/82

7.3.3 执行BootROM后的状态/83

7.4 FSBL/83

7.5 SSBL/86

7.6 Linux启动过程/86

7.7 Secure Boot/87

第8章 面向软件工程师的逻辑设计/89

8.1 FPGA硬件加速原理/89

8.1.1 以空间换时间/89

8.1.2 以存储器换门电路/91

8.1.3 以IP集成换生产力/92

8.2 部分动态可重配置于Zynq/95

第9章 ZedBoard入门/97

9.1 跑马灯/97

9.1.1 Vivado工程创建/97

9.1.2 在Vivado中创建Zynq嵌入式系统/100

9.1.3 SDK应用程序的编写/109

9.2 Zynq嵌入式系统调试方法/114

9.2.1 Vivado硬件调试/114

9.2.2 使用SDK对Zynq进行调试/119

9.3 启动Linux/123

9.3.1 创建FSBL.elf/123

9.3.2 从SD卡启动Linux/124

9.3.3 从QSPI启动Linux/126

第二部分 进阶篇

第10章 基于虚拟平台的Zynq开发/130

10.1 QEMU介绍/130

10.2 编译QEMU源码/130

10.2.1 下载QEMU源码/130

10.2.2 配置QEMU/131

10.2.3 QEMU所依赖的库文件/131

10.2.4 编译QEMU/131

10.3 启动QEMU/131

10.4 QEMU中的嵌入式Linux/132

10.4.1 QEMU启动简介/132

10.4.2 使用Ubuntu包管理器快速搭建用户定制系统/133

10.4.3 使用SSH服务进行访问/134

10.4.4 使用Telnet服务进行访问/135

10.4.5 使用FTP服务向QEMU传送文件/135

10.4.6 USB设备支持/135

10.4.7 SMP对称多核处理器的支持/135

10.4.8 硬件模块GPIO支持/135

10.5 商业版虚拟平台/136

第11章 PL和PS的接口技术详解/137

11.1 PL和PS的接口/137

11.1.1 AXI接口简介/138

11.1.2 AXI Interconnect/139

11.2 Zynq的内部连接/142

11.2.1 AXI_HP/144

11.2.2 AXI_GP/145

11.2.3 AXI_ACP/145

11.3 PL和存储器系统性能概述/147

11.3.1 接口理论带宽/147

11.3.2 DDR控制器的吞吐率及效率/148

11.3.3 内部互连吞吐量瓶颈/148

11.3.4 如何选择PL的接口/149

第12章 基于Zynq的软硬件协同设计/154

12.1 多核处理器架构简介/154

12.1.1 什么是多核处理器/154

12.1.2 多核处理器发展的动机和优势/155

12.1.3 同构、异构多核架构的优点和挑战/157

12.2 软硬件协同设计方法论/157

12.2.1 什么是软硬件协同设计/157

12.2.2 软硬件协同设计发展的动机和优势/157

12.2.3 软硬件协同设计的基本流程/158

12.2.4 基于Xilinx工具的软硬件协同设计简介/159

12.3 高层次综合/159

12.3.1 高层次综合综述/159

12.3.2 高层次综合发展的动机与优势/160

12.3.3 Xilinx Vivado HLS工具简介/161

12.4 基于Xilinx Zynq的软硬件协同设计简例/162

12.4.1 功能简介/162

12.4.2 设计流程简介/162

第13章 Zynq高级开发/170

13.1 用户IP核设计/170

13.1.1 AXI PWM设计/170

13.1.2 添加用户IP,完成系统设计/180

13.2 构建嵌入式Linux系统/185

13.2.1 构建交叉编译环境/185

13.2.2 编译U-Boot/186

13.2.3 编译uImage/186

13.2.4 生成uramdisk.image.gz/187

13.2.5 创建devicetree.dtb/188

13.3 嵌入式Linux应用程序与驱动/190

13.3.1 Linux设备驱动与软硬件之间的关系/190

13.3.2 字符型设备驱动/191

13.3.3 PWM模块驱动程序/192

13.3.4 应用程序编写/193

13.4 HDMI设计/194

13.4.1 HDMI传输原理/195

13.4.2 ADV7511芯片的相关控制信号/196

13.4.3 HDMI系统Vivado实现/198

13.5 OpenCV移植/200

13.5.1 开发环境准备/200

13.5.2 配置cmake/200

13.5.3 OpenCV编译与安装/202

13.5.4 OpenCV移植与ZedBoard测试/203

13.6 基于OpenCV的树叶识别系统/204

13.6.1 项目总览/205

13.6.2 图像采集/205

13.6.3 预处理/206

13.6.4 特征提取/208

13.6.5 分类决策/213

13.6.6 过程总述/216

13.7 基于OpenCV的人脸检测系统/217

13.7.1 原理简介/218

13.7.2 系统设计与实现/219

13.8 嵌入式Web服务器搭建/221

13.8.1 Boa服务器移植与配置/221

13.8.2 Boa服务器的部署与测试/223

13.8.3 CGI程序简介/224

13.9 在ZedBoard上搭建网络摄像机/225

13.9.1 嵌入式网络摄像机/225

13.9.2 Mjpeg-Streamer移植/226

13.9.3 部署Mjpeg-Streamer/226

13.10 FreeRTOS/228

13.10.1 FreeRTOS介绍/228

13.10.2 FreeRTOS与ucOS-II的比较/229

13.10.3 FreeRTOS在Zynq上的应用实例与分析/229

13.11 基于FreeRTOS的Xilmfs/240

13.11.1 嵌入式文件系统概述/241

13.11.2 Xilmfs文件系统介绍/245

13.11.3 Xilmfs文件系统使用实例/248

13.11.4 利用mfsgen工具创建只读型文件系统镜像/250

13.12 Lwip/251

13.12.1 基于standalone的Lwip应用/252

13.12.2 基于FreeRTOS的Lwip应用/255

13.13 在Zynq上搭建Andriod/257

13.14 Zynq双核通信/259

第14章 系统级设计案例/265

14.1 多轴运动控制系统/265

14.1.1 整体结构/265

14.1.2 硬件系统设计/266

14.1.3 硬件系统与ZedBoard接口/267

14.1.4 控制系统设计流程/268

14.1.5 多轴控制系统结构设计/270

14.1.6 利用Vivado HLS实现电流环控制硬件/271

14.1.7 算法移植/272

14.1.8 算法综合/273

14.1.9 软件系统设计/274

14.1.10 双核交互实现/274

14.1.11 Android APP监控程序实现/275

14.1.12 系统测试/276

14.2 Sobel滤波/278

14.2.1 软件架构设计/278

14.2.2 Linux内核与设备驱动/279

14.3 SDN/OpenFlow交换机/287

14.3.1 SDN/OpenFlow简介/287

14.3.2 数据通路设计/288

14.3.3 平台架构搭建/290

14.3.4 系统及驱动/291

14.3.5 OpenFlow交换机移植/292

14.3.6 启动OpenFlow交换机/292

14.3.7 数据通路优化及加速/294

14.4 智能小车系统开发/294

14.4.1 智能小车系统结构/295

14.4.2 运动控制设计/298

14.4.3 Linux系统应用程序设计/301

14.4.4 智能小车平台的后续拓展/307

14.4.5 在智能小车平台上移植ROS/308

第15章 如何获取资料和帮助/309

15.1 如何获取Xilinx的技术文档/309

15.1.1 DocNav介绍/309

15.1.2 DocNav使用案例/309

15.2 如何找到Zynq开发资料/312

15.2.1 如何获取本书的最新例程/312

15.2.2 如何获取Zynq开发资料/312

15.2.3 如何获取ZedBoard文档与例程/313

15.3 Xilinx网站资源导读/313

15.3.1 序/313

15.3.2 Xilinx软件介绍/313

15.3.3 软件版本和软件更新/316

15.3.4 软件教程/317

15.3.5 硬件资料/318

15.3.6 参考资源/319

15.3.7 问题解决/320

参考文献/321

内容摘要:

本书分为基础篇和进阶篇两大部分,基础篇主要介绍ZynqSOC架构,ARMCortex-A9处理器,开发工具链等,器件Boot过程,并配备了大量基础实验,包括板卡的启动,编译嵌入式Linux系统,完成ARM和FPGA的简单片内通讯等;在进阶篇中详解了处理器和FPGA间接口种类和工作方式,分析了如何完成两者间高速的数据交互,通过实例介绍了如何在FPGA中定义用户自己的IP核并完成驱动编写供处理器上运行的Linux使用等,例如如何完成HDMI接口,如何将摄像头数据传递给处理器,并通过运行的OpenCV。本书还将结合Xilinx最新的Vivado和AutoESL开发工具介绍整体软硬件协同设计开发流程并通过案例分析。本书可作为Zynq初学者、软硬件协同设计开发人员的参考用书,亦可作为大专院校嵌入式系统设计、片上系统设计、可编程逻辑器件等相关专业的教师和学生的参考用书。

书籍规格:

书籍详细信息
书名嵌入式系统软硬件协同设计实战指南站内查询相似图书
丛书名电子与嵌入式系统设计丛书
9787111472070
如需购买下载《嵌入式系统软硬件协同设计实战指南》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位机械工业出版社
版次2版印次1
定价(元)69.0语种简体中文
尺寸19 × 24装帧平装
页数 368 印数 3500

书籍信息归属:

嵌入式系统软硬件协同设计实战指南是机械工业出版社于2014.7出版的中图分类号为 TP332.1 的主题关于 可编程序逻辑阵列-系统设计 的书籍。