当前位置:首页 > 工业技术
嵌入式系统软硬件协同设计实战指南
嵌入式系统软硬件协同设计实战指南

嵌入式系统软硬件协同设计实战指南PDF电子书下载

工业技术

  • 电子书积分:12 积分如何计算积分?
  • 作 者:陆佳华,潘祖龙,彭竞宇等编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2014
  • ISBN:9787111472070
  • 页数:321 页
图书介绍:本书分为基础篇和进阶篇两大部分,基础篇主要介绍Zynq SOC架构,ARM Cortex-A9处理器,开发工具链等,器件Boot过程,并配备了大量基础实验,包括板卡的启动,编译嵌入式Linux系统,完成ARM和FPGA的简单片内通讯等;在进阶篇中详解了处理器和FPGA间接口种类和工作方式,分析了如何完成两者间高速的数据交互,通过实例介绍了如何在FPGA中定义用户自己的IP核并完成驱动编写供处理器上运行的Linux使用等,例如如何完成HDMI接口,如何将摄像头数据传递给处理器,并通过运行的OpenCV。本书还将结合Xilinx 最新的Vivado和AutoESL开发工具介绍整体软硬件协同设计开发流程并通过案例分析。本书可作为Zynq初学者、软硬件协同设计开发人员的参考用书,亦可作为大专院校嵌入式系统设计、片上系统设计、可编程逻辑器件等相关专业的教师和学生的参考用书。
《嵌入式系统软硬件协同设计实战指南》目录

第一部分 基础篇 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

第二部分 进阶篇 130

第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

相关图书
作者其它书籍
返回顶部