注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络网络与数据通信网络服务Xilinx Zynq-7000嵌入式系统设计与实现:基于Arm Cortex-A9双核处理器和

Xilinx Zynq-7000嵌入式系统设计与实现:基于Arm Cortex-A9双核处理器和

Xilinx Zynq-7000嵌入式系统设计与实现:基于Arm Cortex-A9双核处理器和

定 价:¥179.00

作 者: 何宾
出版社: 电子工业出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787121374715 出版时间: 2019-11-01 包装:
开本: 16开 页数: 760 字数:  

内容简介

  本书是作者在已经出版的 《Xilinx Zynq-7000嵌入式系统设计与实现:基于ARM Cortex-A9双核处理器和Vivado的设计方法》 一书的基础上进行修订而成的。 本书新修订后内容增加到30章。修订后,本书的一大特色就是加入了Arm架构及分类、使用PetaLinux工具在Zynq-7000 SoC上搭建Ubuntu操作系统,以及在Ubuntu操作系统环境下搭建Python语言开发环境,并使用Python语言开发应用程序的内容。本书修订后。进一步降低了读者学习Arm Cortex-A9嵌入式系统的门槛,并引入了在Zynq-7000 SoC上搭建Ubuntu操作系统的新方法。此外,将流行的Python语言引入到Arm嵌入式系统中,进一步拓宽了在Arm嵌入式系统上开发应用程序的方法。

作者简介

  著名的嵌入式技术和EDA技术专家,长期从事电子设计自动化方面的教学和科研工作,与全球多家知名的半导体厂商和EDA工具厂商大学计划保持紧密合作。目前已经出版嵌入式和EDA方面的著作近60部,内容涵盖电路仿真、电路设计、可编程逻辑器件、数字信号处理、单片机、嵌入式系统、片上可编程系统等。典型的代表作有《Xilinx FPGA设计**指南》、《Altium Designer13.0电路设计、仿真与验证**指南》、《Xilinx FPGA数字设计:从门级到行为级的双重描述》、《Xilinx FPGA数字信号处理**指南:从HDL、模型到C的描述》、《STC单片机原理及应用》、《Altium Designer15.0电路仿真、设计、验证与工艺实现**指南》、《STC单片机C语言程序设计》、《Cypress WICED物联网开发指南:从传感器、无线接入到云端的设计与实现》,以及《模拟电子系统设计指南(基础篇):从半导体、分立元件到ADI集成电路的分析与实现》。

图书目录

目 录
第 章 Zynq - 7000 SoC设计导论\t1
1.1 全可编程片上系统基础知识\t1
1.1.1 全可编程片上系统的演进\t1
1.1.2 SoC与MCU和CPU的比较\t3
1.1.3 全可编程SoC诞生的背景\t4
1.1.4 可编程SoC系统技术特点\t5
1.1.5 全可编程片上系统中的处理器类型\t5
1.2 Arm架构及分类\t6
1.2.1 M - Profile\t7
1.2.2 R - Profile\t9
1.2.3 A - Profile\t10
1.3 Zynq - 7000 SoC功能和结构\t11
1.3.1 Zynq - 7000 SoC产品分类及资源\t12
1.3.2 Zynq - 7000 SoC的功能\t12
1.3.3 Zynq - 7000 SoC处理系统PS的构成\t14
1.3.4 Zynq - 7000 SoC可编程逻辑PL的构成\t19
1.3.5 Zynq - 7000 SoC内的互联结构\t20
1.3.6 Zynq - 7000 SoC的供电引脚\t22
1.3.7 Zynq - 7000 SoC内MIO到EMIO的连接\t23
1.3.8 Zynq - 7000 SoC内为PL分配的信号\t28
1.4 Zynq - 7000 SoC在嵌入式系统中的优势\t30
1.4.1 使用PL实现软件算法\t30
1.4.2 降低功耗\t32
1.4.3 实时减负\t33
1.4.4 可重配置计算\t34
第 章 AMBA规范\t35
2.1 AMBA规范及发展\t35
2.1.1 AMBA 1\t36
2.1.2 AMBA 2\t36
2.1.3 AMBA 3\t36
2.1.4 AMBA 4\t37
2.1.5 AMBA 5\t38
2.2 AMBA APB规范\t40
2.2.1 AMBA APB写传输\t40
2.2.2 AMBA APB读传输\t42
2.2.3 AMBA APB错误响应\t43
2.2.4 操作状态\t44
2.2.5 AMBA 3 APB信号\t44
2.3 AMBA AHB规范\t45
2.3.1 AMBA AHB结构\t45
2.3.2 AMBA AHB操作\t46
2.3.3 AMBA AHB传输类型\t48
2.3.4 AMBA AHB猝发操作\t50
2.3.5 AMBA AHB传输控制信号\t53
2.3.6 AMBA AHB地址译码\t54
2.3.7 AMBA AHB从设备传输响应\t55
2.3.8 AMBA AHB数据总线\t58
2.3.9 AMBA AHB传输仲裁\t59
2.3.10 AMBA AHB分割传输\t64
2.3.11 AMBA AHB复位\t67
2.3.12 关于AHB数据总线的位宽\t67
2.3.13 AMBA AHB接口设备\t68
2.4 AMBA AXI4规范\t69
2.4.1 AMBA AXI4概述\t69
2.4.2 AMBA AXI4功能\t70
2.4.3 AMBA AXI4互联结构\t78
2.4.4 AXI4 - Lite功能\t79
2.4.5 AXI4 - Stream功能\t80
第 章 Zynq - 7000系统公共资源及特性\t83
3.1 时钟子系统\t83
3.1.1 时钟子系统架构\t83
3.1.2 CPU时钟域\t84
3.1.3 时钟编程实例\t86
3.1.4 时钟子系统内的生成电路结构\t87
3.2 复位子系统\t91
3.2.1 复位子系统结构和层次\t92
3.2.2 复位流程\t93
3.2.3 复位的结果\t94
第 章 Zynq调试和测试子系统\t95
4.1 JTAG和DAP子系统\t95
4.1.1 JTAG和DAP子系统功能\t97
4.1.2 JTAG和DAP子系统I/O信号\t99
4.1.3 编程模型\t99
4.1.4 Arm DAP控制器\t101
4.1.5 跟踪端口接口单元(TPIU)\t102
4.1.6 Xilinx TAP控制器\t102
4.2 CoreSight系统结构及功能\t103
4.2.1 CoreSight结构概述\t103
4.2.2 CoreSight系统功能\t104
第 章 Cortex - A9处理器及指令集\t107
5.1 应用处理单元概述\t107
5.1.1 基本功能\t107
5.1.2 系统级视图\t108
5.2 Cortex - A9处理器结构\t110
5.2.1 处理器模式\t111
5.2.2 寄存器\t113
5.2.3 流水线\t118
5.2.4 分支预测\t118
5.2.5 指令和数据对齐\t119
5.2.6 跟踪和调试\t121
5.3 Cortex - A9处理器指令集\t122
5.3.1 指令集基础\t122
5.3.2 数据处理操作\t125
5.3.3 存储器指令\t130
5.3.4 分支\t131
5.3.5 饱和算术\t133
5.3.6 杂项指令\t134
第 章 Cortex - A9片上存储器系统结构和功能\t138
6.1 L1高速缓存\t138
6.1.1 高速缓存背景\t138
6.1.2 高速缓存的优势和问题\t139
6.1.3 存储器层次\t140
6.1.4 高速缓存结构\t140
6.1.5 缓存策略\t145
6.1.6 写和取缓冲区\t147
6.1.7 缓存性能和命中速度\t147
6.1.8 无效和清除缓存\t147
6.1.9 一致性点和统一性点\t149
6.1.10 Zynq - 7000中Cortex - A9 L1高速缓存的特性\t151
6.2 存储器顺序\t153
6.2.1 普通、设备和强顺序存储器模型\t154
6.2.2 存储器属性\t155
6.2.3 存储器屏障\t155
6.3 存储器管理单元\t159
6.3.1 MMU功能描述\t160
6.3.2 虚拟存储器\t161
6.3.3 转换表\t162
6.3.4 页表入口域的描述\t165
6.3.5 TLB构成\t167
6.3.6 存储器访问顺序\t169
6.4 侦听控制单元\t170
6.4.1 地址过滤\t171
6.4.2 SCU主设备端口\t171
6.5 L2高速缓存\t171
6.5.1 互斥L2 - L1高速缓存配置\t173
6.5.2 高速缓存替换策略\t174
6.5.3 高速缓存锁定\t174
6.5.4 使能/禁止L2高速缓存控制器\t176
6.5.5 RAM访问延迟控制\t176
6.5.6 保存缓冲区操作\t176
6.5.7 在Cortex - A9和L2控制器之间的优化\t177
6.5.8 预取操作\t178
6.5.9 编程模型\t179
6.6 片上存储器\t180
6.6.1 片上存储器概述\t180
6.6.2 片上存储器功能\t181
6.7 系统地址分配\t186
6.7.1 地址映射\t186
6.7.2 系统总线主设备\t188
6.7.3 I/O外设\t188
6.7.4 SMC存储器\t188
6.7.5 SLCR寄存器\t188
6.7.6 杂项PS寄存器\t189
6.7.7 CPU私有寄存器\t189
第 章 Zynq - 7000 SoC的Vivado基本设计流程\t190
7.1 创建新的工程\t190
7.2 使用IP集成器创建处理器系统\t192
7.3 生成顶层HDL并导出设计到SDK\t197
7.4 创建应用测试程序\t199
7.5 设计验证\t202
7.5.1 验证前的硬件平台准备\t202
7.5.2 设计验证的具体实现\t203
7.6 SDK调试工具的使用\t205
7.6.1 打开前面的设计工程\t205
7.6.2 导入工程到SDK\t205
7.6.3 建立新的存储器测试工程\t205
7.6.4 运行存储器测试工程\t206
7.6.5 调试存储器测试工程\t207
7.7 SDK性能分析工具\t209
第 章 Arm GPIO的原理和控制实现\t213
8.1 GPIO模块原理\t213
8.1.1 GPIO接口及功能\t214
8.1.2 GPIO编程流程\t217
8.1.3 I/O接口\t218
8.1.4 部分寄存器说明\t218
8.1.5 底层读/写函数说明\t220
8.1.6 GPIO的API函数说明\t220
8.2 Vivado环境下MIO读/写控制的实现\t221
8.2.1 调用底层读/写函数编写GPIO应用程序\t221
8.2.2 调用API函数编写控制GPIO应用程序\t224
8.3 Vivado环境下EMIO读/写控制的实现\t226
8.3.1 调用底层读/写函数编写GPIO应用程序\t227
8.3.2 调用API函数编写控制GPIO应用程序\t232
第 章 Cortex - A9异常与中断原理及实现\t236
9.1 异常原理\t236
9.1.1 异常类型\t237
9.1.2 异常处理\t241
9.1.3 其他异常句柄\t242
9.1.4 Linux异常程序流\t243
9.2 中断原理\t244
9.2.1 外部中断请求\t244
9.2.2 Zynq - 7000 SoC内的中断环境\t247
9.2.3 中断控制器的功能\t248
9.3 Vivado环境下中断系统的实现\t252
9.3.1 Cortex - A9处理器中断及异常初始化流程\t252
9.3.2 Cortex - A9 GPIO控制器初始化流程\t252
9.3.3 导出硬件设计到SDK\t253
9.3.4 创建新的应用工程\t253
9.3.5 运行应用工程\t256
第 章 Cortex - A9定时器原理及实现\t257
10.1 定时器系统架构\t257
10.1.1 CPU私有定时器和看门狗定时器\t257
10.1.2 全局定时器/计数器\t258
10.1.3 系统级看门狗定时器\t259
10.1.4 3重定时器/计数器\t261
10.1.5 I/O信号\t264
10.2 Vivado环境下定时器的控制实现\t264
10.2.1 打开前面的设计工程\t265
10.2.2 创建SDK软件工程\t265
10.2.3 运行软件应用工程\t267
第 章 Cortex - A9 DMA控制器原理及实现\t268
11.1 DMA控制器架构\t268
11.2 DMA控制器功能\t271
11.2.1 考虑AXI交易的因素\t272
11.2.2 DMA管理器\t273
11.2.3 多通道数据FIFO(MFIFO)\t274
11.2.4 存储器―存储器交易\t274
11.2.5 PL外设AXI交易\t274
11.2.6 PL外设请求接口\t275
11.2.7 PL外设长度管理\t276
11.2.8 DMAC长度管理\t277
11.2.9 事件和中断\t278
11.2.10 异常终止\t278
11.2.11 安全性\t280
11.2.12 IP配置选项\t282
11.3 DMA控制器编程指南\t282
11.3.1 启动控制器\t282
11.3.2 执行DMA传输\t282
11.3.3 中断服务例程\t282
11.3.4 寄存器描述\t283
11.4 DMA引擎编程指南\t284
11.4.1 写微代码编程用于AXI交易的CCRx\t284
11.4.2 存储器到存储器传输\t284
11.4.3 PL外设DMA传输长度管理\t287
11.4.4 使用一个事件重新启动DMA通道\t289
11.4.5 中断一个处理器\t289
11.4.6 指令集参考\t290
11.5 编程限制\t291
11.6 系统功能之控制器复位配置\t292
11.7 I/O接口\t293
11.7.1 AXI主接口\t293
11.7.2 外设请求接口\t293
11.8 Vivado环境下DMA传输的实现\t294
11.8.1 DMA控制器初始化流程\t295
11.8.2 中断控制器初始化流程\t295
11.8.3 中断服务句柄处理流程\t296
11.8.4 导出硬件设计到SDK\t296
11.8.5 创建新的应用工程\t297
11.8.6 运行软件应用工程\t303
第 章 Cortex - A9安全性扩展\t305
12.1 TrustZone硬件架构\t305
12.1.1 多核系统的安全性扩展\t307
12.1.2 普通世界和安全世界的交互\t307
12.2 Zynq - 7000 APU内的TrustZone\t308
12.2.1 CPU安全过渡\t309
12.2.2 CP15寄存器访问控制\t310
12.2.3 MMU安全性\t310
12.2.4 L1缓存安全性\t311
12.2.5 安全异常控制\t311
12.2.6 CPU调试TrustZone访问控制\t311
12.2.7 SCU寄存器访问控制\t312
12.2.8 L2缓存中的TrustZone支持\t312
第 章 Cortex - A9 NEON原理及实现\t313
13.1 SIMD\t313
13.2 NEON架构\t315
13.2.1 与VFP的共性\t315
13.2.2 数据类型\t316
13.2.3 NEON寄存器\t316
13.2.4 NEON指令集\t318
13.3 NEON C编译器和汇编器\t319
13.3.1 向量化\t319
13.3.2 检测NEON\t319
13.4 NEON优化库\t320
13.5 SDK工具提供的优化选项\t321
13.6 使用NEON内联函数\t324
13.6.1 NEON数据类型\t325
13.6.2 NEON内联函数\t325
13.7 优化NEON汇编器代码\t327
13.8 提高存储器访问效率\t328
13.9 自动向量化实现\t329
13.9.1 导出硬件设计到SDK\t329
13.9.2 创建新的应用工程\t330
13.9.3 运行软件应用工程\t331
13.10 NEON汇编代码实现\t331
13.10.1 导出硬件设计到SDK\t331
13.10.2 创建新的应用工程\t332
13.10.3 运行软件应用工程\t333
第 章 Cortex - A9外设模块结构及功能\t334
14.1 DDR存储器控制器\t334
14.1.1 DDR存储器控制器接口及功能\t335
14.1.2 AXI存储器接口\t337
14.1.3 DDR核和交易调度器\t338
14.1.4 DDRC仲裁\t338
14.1.5 DDR存储器控制器PHY\t340
14.1.6 DDR初始化和标定\t340
14.1.7 纠错码\t341
14.2 静态存储器控制器\t342
14.2.1 静态存储器控制器接口及功能\t343
14.2.2 静态存储器控制器和存储器的信号连接\t344
14.3 四 - SPI Flash控制器\t345
14.3.1 四 - SPI Flash控制器功能\t347
14.3.2 四 - SPI Flash控制器反馈时钟\t349
14.3.3 四 - SPI Flash控制器接口\t349
14.4 SD/SDIO外设控制器\t351
14.4.1 SD/SDIO控制器功能\t352
14.4.2 SD/SDIO控制器传输协议\t353
14.4.3 SD/SDIO控制器端口信号连接\t356
14.5 USB主机、设备和OTG控制器\t356
14.5.1 USB控制器接口及功能\t358
14.5.2 USB主机操作模式\t361
14.5.3 USB设备操作模式\t363
14.5.4 USB OTG操作模式\t365
14.6 吉比特以太网控制器\t365
14.6.1 吉比特以太网控制器接口及功能\t367
14.6.2 吉比特以太网控制器接口编程向导\t368
14.6.3 吉比特以太网控制器接口信号连接\t372
14.7 SPI控制器\t373
14.7.1 SPI控制器的接口及功能\t374
14.7.2 SPI控制器时钟设置规则\t376
14.8 CAN控制器\t376
14.8.1 CAN控制器接口及功能\t377
14.8.2 CAN控制器操作模式\t379
14.8.3 CAN控制器消息保存\t380
14.8.4 CAN控制器接收过滤器\t381
14.8.5 CAN控制器编程模型\t382
14.9 UART控制器\t383
14.10 I2C控制器\t387
14.10.1 I2C速度控制逻辑\t388
14.10.2 I2C控制器的功能和工作模式\t388
14.11 XADC转换器接口\t390
14.11.1 XADC转换器接口及功能\t391
14.11.2 XADC命令格式\t392
14.11.3 供电传感器报警\t392
14.12 PCI - E接口\t393
第 章 Zynq - 7000内的可编程逻辑资源\t395
15.1 可编程逻辑资源概述\t395
15.2 可编程逻辑资源功能\t396
15.2.1 CLB、Slice和LUT\t396
15.2.2 时钟管理\t396
15.2.3 块RAM\t398
15.2.4 数字信号处理 - DSP Slice\t398
15.2.5 输入/输出\t399
15.2.6 低功耗串行收发器\t400
15.2.7 PCI - E模块\t401
15.2.8 XADC(模拟 - 数字转换器)\t402
15.2.9 配置\t402
第 章 Zynq - 7000内的互联结构\t404
16.1 系统互联架构\t404
16.1.1 互联模块及功能\t404
16.1.2 数据路径\t406
16.1.3 时钟域\t407
16.1.4 连接性\t408
16.1.5 AXI ID\t409
16.1.6 寄存器概述\t409
16.2 服务质量\t410
16.2.1 基本仲裁\t410
16.2.2 高级QoS\t410
16.2.3 DDR端口仲裁\t411
16.3 AXI_HP接口\t411
16.3.1 AXI_HP接口结构及特点\t411
16.3.2 接口数据宽度\t415
16.3.3 交易类型\t416
16.3.4 命令交替和重新排序\t416
16.3.5 性能优化总结\t416
16.4 AXI_ACP接口\t417
16.5 AXI_GP接口\t418
16.6 AXI信号总结\t418
16.7 PL接口选择\t422
16.7.1 使用通用主设备端口的Cortex - A9\t423
16.7.2 通过通用主设备的PS DMA控制器(DMAC)\t423
16.7.3 通过高性能接口的PL DMA\t426
16.7.4 通过AXI ACP的PL DMA\t426
16.7.5 通过通用AXI从(GP)的PL DMA\t426
第 章 Zynq - 7000 SoC内定制简单AXI - Lite IP\t429
17.1 设计原理\t429
17.2 定制AXI - Lite IP\t429
17.2.1 创建定制IP模板\t429
17.2.2 修改定制IP设计模板\t432
17.2.3 使用IP封装器封装外设\t436
17.3 打开并添加IP到设计中\t440
17.3.1 打开工程和修改设置\t440
17.3.2 添加定制IP到设计\t442
17.3.3 添加XDC约束文件\t445
17.4 导出硬件到SDK\t446
17.5 建立和验证软件应用工程\t446
17.5.1 建立应用工程\t447
17.5.2 下载硬件比特流文件到FPGA\t449
17.5.3 运行应用工程\t450
第 章 Zynq - 7000 SoC内定制复杂AXI Lite IP\t451
18.1 设计原理\t451
18.1.1 VGA IP核的设计原理\t451
18.1.2 移位寄存器IP核的设计原理\t453
18.2 定制VGA IP核\t454
18.2.1 创建定制VGA IP模板\t454
18.2.2 修改定制VGA IP模板\t455
18.2.3 使用IP封装器封装VGA IP\t459
18.3 定制移位寄存器IP核\t460
18.3.1 创建定制SHIFTER IP模板\t460
18.3.2 修改定制SHIFTER IP模板\t462
18.3.3 使用IP封装器封装SHIFTER IP\t463
18.4 打开并添加IP到设计中\t464
18.4.1 打开工程和修改设置\t464
18.4.2 添加定制IP到设计\t466
18.4.3 添加XDC约束文件\t470
18.5 导出硬件到SDK\t471
18.6 建立和验证软件工程\t472
18.6.1 建立应用工程\t472
18.6.2 下载硬件比特流文件到FPGA\t476
18.6.3 运行应用工程\t477
第 章 Zynq - 7000 AXI HP数据传输原理及实现\t478
19.1 设计原理\t478
19.2 构建硬件系统\t479
19.2.1 打开工程和修改设置\t479
19.2.2 添加并连接AXI DMA IP核\t480
19.2.3 添加并连接FIFO IP核\t482
19.2.4 连接DMA中断到PS\t485
19.2.5 验证和建立设计\t487
19.3 建立和验证软件工程\t487
19.3.1 导出硬件到SDK\t488
19.3.2 创建软件应用工程\t488
19.3.3 下载硬件比特流文件到FPGA\t497
19.3.4 运行应用工程\t497
第 章 Zynq - 7000 ACP数据传输原理及实现\t499
20.1 设计原理\t499
20.2 打开前面的设计工程\t499
20.3 配置PS端口\t499
20.4 添加并连接IP到设计\t500
20.4.1 添加IP到设计\t501
20.4.2 系统连接\t501
20.4.3 分配地址空间\t502
20.5 使用SDK设计和实现应用工程\t504
20.5.1 创建新的软件应用工程\t504
20.5.2 导入应用程序\t504
20.5.3 下载硬件比特流文件到FPGA\t507
20.5.4 运行应用工程\t508
第 章 Zynq - 7000软件和硬件协同调试原理及实现\t509
21.1 设计目标\t509
21.2 ILA核原理\t510
21.2.1 ILA触发器输入逻辑\t510
21.2.2 多触发器端口的使用\t510
21.2.3 使用触发器和存储限制条件\t510
21.2.4 ILA触发器输出逻辑\t512
21.2.5 ILA数据捕获逻辑\t512
21.2.6 ILA控制与状态逻辑\t513
21.3 VIO核原理\t513
21.4 构建协同调试硬件系统\t514
21.4.1 打开前面的设计工程\t514
21.4.2 添加定制IP\t514
21.4.3 添加ILA和VIO核\t515
21.4.4 标记和分配调试网络\t516
21.5 生成软件工程\t518
21.6 S/H协同调试\t520
第 章 Zynq - 7000 SoC启动和配置原理及实现\t527
22.1 Zynq - 7000 SoC启动过程\t527
22.2 Zynq - 7000 SoC启动要求\t527
22.2.1 供电要求\t528
22.2.2 时钟要求\t528
22.2.3 复位要求\t528
22.2.4 模式引脚\t528
22.3 Zynq - 7000 SoC内的BootROM\t530
22.3.1 BootROM特性\t530
22.3.2 BootROM头部\t531
22.3.3 启动设备\t535
22.3.4 BootROM多启动和启动分区查找\t538
22.3.5 调试状态\t539
22.3.6 BootROM后状态\t540
22.4 Zynq - 7000 SoC器件配置接口\t543
22.4.1 描述功能\t544
22.4.2 器件配置流程\t545
22.4.3 配置PL\t549
22.4.4 寄存器概述\t550
22.5 生成SD卡镜像文件并启动\t551
22.5.1 SD卡与XC7Z020接口设计\t551
22.5.2 打开前面的设计工程\t552
22.5.3 创建第一级启动引导\t553
22.5.4 创建SD卡启动镜像\t553
22.5.5 从SD卡启动引导系统\t555
22.6 生成QSPI Flash镜像并启动\t556
22.6.1 QSPI Flash接口\t556
22.6.2 创建QSPI Flash镜像\t557
22.6.3 从QSPI Flash启动引导系统\t558
22.7 Cortex - A9双核系统的配置和运行\t558
22.7.1 构建双核硬件系统工程\t558
22.7.2 添加并互联IP核\t559
22.7.3 导出硬件设计到SDK中\t561
22.7.4 设置板级包支持路径\t561
22.7.5 建立FSBL应用工程\t562
22.7.6 建立CPU0应用工程\t562
22.7.7 建立CPU1板级支持包\t566
22.7.8 建立CPU1应用工程\t566
22.7.9 创建SD卡镜像文件\t570
22.7.10 双核系统运行和测试\t571
22.7.11 双核系统的调试\t571
第 章 Zynq - 7000 SoC内XADC原理及实现\t574
23.1 ADC转换器接口结构\t574
23.2 ADC转换器功能\t575
23.2.1 XADC的命令格式\t576
23.2.3 供电传感器报警\t576
23.3 XADC IP核结构及信号\t577
23.4 开发平台上的XADC接口\t578
23.5 在Zynq - 7000 SoC内构建数模混合系统\t579
23.5.1 打开前面的设计工程\t579
23.5.2 配置PS端口\t579
23.5.3 添加并连接XADC IP到设计\t580
23.5.4 查看地址空间\t582
23.5.5 添加用户约束文件\t583
23.5.6 设计处理\t583
23.6 使用SDK设计和实现应用工程\t584
23.6.1 生成新的应用工程\t584
23.6.2 导入应用程序\t585
23.6.3 下载硬件比特流文件到FPGA\t591
23.6.4 运行应用工程\t591
第 章 Linux开发环境的构建\t592
24.1 构建虚拟机环境\t592
24.2 安装和启动Ubuntu 14.04客户机操作系统\t595
24.2.1 新添加两个磁盘\t595
24.2.2 设置CD/DVD(SATA)\t596
24.2.3 安装Ubuntu 14.04\t597
24.2.4 更改Ubuntu 14.04操作系统启动设备\t600
24.2.5 启动Ubuntu 14.04操作系统\t600
24.2.6 添加搜索链接资源\t600
24.3 安装FTP工具\t601
24.3.1 Windows操作系统下LeapFTP安装\t601
24.3.2 Ubuntu操作系统环境下FTP安装\t602
24.4 安装和启动SSH和GIT组件\t603
24.4.1 安装和启动SSH组件\t603
24.4.2 安装和启动GIT组件\t604
24.5 安装交叉编译器环境\t604
24.5.1 安装32位支持工具包\t604
24.5.2 安装和设置SDK 2015.4工具\t605
24.6 安装和配置Qt集成开发工具\t606
24.6.1 Qt集成开发工具功能\t606
24.6.2 构建PC平台Qt环境\t607
24.6.3 构建Arm平台Qt环境\t613
第 章 构建Zynq - 7000 SoC内Ubuntu硬件运行环境\t622
25.1 建立新的设计工程\t622
25.2 添加IP核路径\t623
25.3 构建硬件系统\t623
25.3.1 添加和配置ZYNQ7 IP\t624
25.3.2 添加和配置VDMA IP核\t625
25.3.3 添加和配置AXI Display Controller IP核\t626
25.3.4 添加和配置HDMI Transmitter IP核\t627
25.3.5 添加和配置VGA IP核\t627
25.3.6 连接用户自定义IP核\t627
25.3.7 添加和配置Processor System Reset IP核\t630
25.3.8 连接系统剩余部分\t630
25.4 添加设计约束文件\t632
25.5 导出硬件文件\t633
第 章 构建Zynq - 7000 SoC内Ubuntu软件运行环境\t635
26.1 u - boot原理及实现\t635
26.1.1 下载u - boot源码\t635
26.1.2 u - boot文件结构\t636
26.1.3 u - boot工作模式\t637
26.1.4 u - boot启动过程\t637
26.1.5 编译u - boot\t650
26.1.6 链接脚本文件结构\t652
26.2 内核结构及编译\t654
26.2.1 内核结构\t654
26.2.2 下载Linux内核源码\t655
26.2.3 内核版本\t655
26.2.4 内核系统配置\t655
26.2.5 Bootloader 启动过程\t658
26.2.6 Linux内核启动过程\t660
26.2.7 编译内核\t662
26.3 设备树原理及实现\t662
26.3.1 设备树概述\t662
26.3.2 设备树数据格式\t663
26.3.3 设备树的编译\t664
26.4 文件系统原理及下载\t664
26.5 生成Ubuntu启动镜像\t665
26.5.1 生成FSBL文件\t666
26.5.2 生成BOOT.bin启动文件\t666
26.5.3 制作SD卡\t668
26.5.4 复制BOOT. bin文件\t670
26.5.5 复制编译后的内核文件\t670
26.5.6 复制编译后的设备树文件\t671
26.5.7 复制文件系统\t671
26.6 启动Ubuntu操作系统\t672
第 章 Linux环境下简单字符设备驱动程序的开发\t674
27.1 驱动程序的必要性\t674
27.2 Linux操作系统下的设备文件类型\t675
27.3 Linux驱动的开发流程\t676
27.4 驱动程序的结构框架\t676
27.4.1 加载和卸载函数模块\t676
27.4.2 字符设备中重要的数据结构和函数\t677
27.5 编写makefile文件\t683
27.6 编译驱动程序\t684
27.7 编写测试程序\t685
27.8 运行测试程序\t686
第 章 Linux环境下包含中断机制驱动程序的开发\t688
28.1 设计原理\t688
28.2 编写包含中断处理的驱动代码\t688
28.2.1 驱动程序头文件\t688
28.2.2 驱动的加载和卸载函数\t689
28.2.3 file_operations初始化\t691
28.3 编写makefile文件\t691
28.4 编译驱动程序\t692
28.5 测试驱动程序\t693
第 章 Linux环境下图像处理系统的构建\t694
29.1 系统整体架构和功能\t694
29.2 OV5640摄像头性能\t695
29.2.1 摄像头捕获模块的硬件\t696
29.2.2 SCCB接口规范\t696
29.2.3 写摄像头模组寄存器操作\t697
29.2.4 读摄像头模组寄存器操作\t698
29.2.5 摄像头初始化流程\t700
29.3 Vivado HLS实现拉普拉斯算子滤波算法的设计\t701
29.3.1 Vivado HLS工具的性能和优势\t701
29.3.2 拉普拉斯算法与HDL之间的映射\t703
29.4 图像处理系统的整体构建\t706
29.5 图像处理系统软件的设计\t708
29.5.1 Ubuntu桌面系统的构建\t708
29.5.2 Qt图像处理程序的开发\t708
29.6 嵌入式图像处理系统测试\t710
第 章 Zynq-7000 SoC上构建和实现Python应用\t712
30.1 设计所需的硬件环境\t712
30.2 构建PetaLinux开发环境\t712
30.2.1 PetaLinx开发环境概述\t712
30.2.2 安装32位库\t714
30.2.3 安装并测试tftp服务器\t714
30.2.4 下载并安装PetaLinux\t715
30.3 构建嵌入式系统硬件\t717
30.3.1 下载并安装Vivado 2018.2集成开发环境\t717
30.3.2 添加板级支持包文件\t717
30.3.3 建立新的Vivado工程\t717
30.3.4 构建硬件系统\t718
30.4 构建嵌入式Python开发环境\t721
30.5 构建PC端Python开发环境\t723
30.6 服务器和客户端Python的开发\t724
30.6.1 服务器端Python的开发\t725
30.6.2 客户端Python的开发\t726
30.7 设计验证\t728
30.7.1 启动服务器程序\t728
30.7.2 启动客户端程序\t729

本目录推荐