书籍 Xilinx Zynq-7000嵌入式系统设计与实现的封面

Xilinx Zynq-7000嵌入式系统设计与实现PDF电子书下载

何宾

购买点数

20

出版社

北京:电子工业出版社

出版时间

2019

ISBN

标注页数

731 页

PDF页数

756 页

图书目录

第1章 Zynq - 7000 SoC设计导论 1

1.1全可编程片上系统基础知识 1

1.1.1全可编程片上系统的演进 1

1.1.2 SoC与MCU和CPU的比较 3

1.1.3全可编程SoC诞生的背景 4

1.1.4可编程SoC系统技术特点 5

1.1.5全可编程片上系统中的处理器类型 5

1.2 Arm架构及分类 6

1.2.1 M-Profile 7

1.2.2 R-Profile 9

1.2.3 A-Profile 10

1.3 Zynq-7000 SoC功能和结构 11

1.3.1 Zynq-7000 SoC产品分类及资源 12

1.3.2 Zynq-7000 SoC的功能 12

1.3.3 Zynq-7000 SoC处理系统的构成 14

1.3.4 Zynq-7000 SoC可编程逻辑的构成 19

1.3.5 Zynq-7000 SoC内的互联结构 20

1.3.6 Zynq-7000 SoC的供电引脚 22

1.3.7 Zynq-7000 SoC内MIO到EMIO的连接 23

1.3.8 Zynq-7000 SoC内为PL分配的信号 28

1.4 Zynq-7000 SoC在嵌入式系统中的优势 30

1.4.1使用PL实现软件算法 30

1.4.2降低功耗 32

1.4.3实时减负 33

1.4.4可重配置计算 34

第2章 AMBA规范 35

2.1 AMBA规范及发展 35

2.1.1 AMBA1 36

2.1.2 AMBA 2 36

2.1.3 AMBA 3 36

2.1.4 AMBA 4 37

2.1.5 AMBA 5 38

2.2 AMBA APB规范 40

2.2.1 AMBA APB写传输 40

2.2.2 AMBA APB读传输 42

2.2.3 AMBAAPB错误响应 43

2.2.4操作状态 44

2.2.5 AMBA 3 APB信号 44

2.3 AMBA AHB规范 45

2.3.1 AMBA AHB结构 45

2.3.2 AMBA AHB操作 46

2.3.3 AMBA AHB传输类型 48

2.3.4 AMBA AHB猝发操作 50

2.3.5 AMBA AHB传输控制信号 53

2.3.6 AMBA AHB地址译码 54

2.3.7 AMBA AHB从设备传输响应 55

2.3.8 AMBA AHB数据总线 58

2.3.9 AMBA AHB传输仲裁 59

2.3.10 AMBAAHB分割传输 64

2.3.11 AMBAAHB复位 67

2.3.12关于AHB数据总线的位宽 67

2.3.13 AMBA AHB接口设备 68

2.4 AMBA AXI4规范 69

2.4.1 AMBA AXI4概述 69

2.4.2 AMBA AXI4功能 70

2.4.3 AMBA AXI4互联结构 78

2.4.4 AXI4-Lite功能 79

2.4.5 AXI4-Stream功能 80

第3章 Zynq-7000系统公共资源及特性 83

3.1时钟子系统 83

3.1.1时钟子系统架构 83

3.1.2 CPU时钟域 84

3.1.3时钟编程实例 86

3.1.4时钟子系统内的生成电路结构 87

3.2复位子系统 91

3.2.1复位子系统结构和层次 92

3.2.2复位流程 93

3.2.3复位的结果 94

第4章 Zynq调试和测试子系统 95

4.1 JTAG和DAP子系统 95

4.1.1 JTAG和DAP子系统功能 97

4.1.2 JTAG和DAP子系统I/O信号 99

4.1.3编程模型 99

4.1.4 Arm DAP控制器 101

4.1.5跟踪端口接口单元(TPIU) 102

4.1.6 Xilinx TAP控制器 102

4.2 CoreSight系统结构及功能 103

4.2.1 CoreSight结构概述 103

4.2.2 CoreSight系统功能 104

第5章 Cortex - A9处理器及指令集 107

5.1应用处理单元概述 107

5.1.1基本功能 107

5.1.2系统级视图 108

5.2 Cortex-A9处理器结构 110

5.2.1处理器模式 111

5.2.2寄存器 113

5.2.3流水线 118

5.2.4分支预测 118

5.2.5指令和数据对齐 119

5.2.6跟踪和调试 121

5.3 Cortex-A9处理器指令集 122

5.3.1指令集基础 122

5.3.2数据处理操作 125

5.3.3存储器指令 130

5.3.4分支 131

5.3.5饱和算术 133

5.3.6杂项指令 134

第6章 Cortex - A9片上存储器系统结构和功能 138

6.1 L1高速缓存 138

6.1.1高速缓存背景 138

6.1.2高速缓存的优势和问题 139

6.1.3存储器层次 140

6.1.4高速缓存结构 140

6.1.5缓存策略 145

6.1.6写和取缓冲区 147

6.1.7缓存性能和命中速度 147

6.1.8无效和清除缓存 147

6.1.9一致性点和统一性点 149

6.1.10 Zynq-7000中Cortex-A9 L1高速缓存的特性 151

6.2存储器顺序 153

6.2.1普通、设备和强顺序存储器模型 154

6.2.2存储器属性 155

6.2.3存储器屏障 155

6.3存储器管理单元 159

6.3.1 MMU功能描述 160

6.3.2虚拟存储器 161

6.3.3转换表 162

6.3.4页表入口域的描述 165

6.3.5 TLB构成 167

6.3.6存储器访问顺序 169

6.4侦听控制单元 170

6.4.1地址过滤 171

6.4.2 SCU主设备端口 171

6.5 L2高速缓存 171

6.5.1互斥L2-L1高速缓存配置 173

6.5.2高速缓存替换策略 174

6.5.3高速缓存锁定 174

6.5.4使能/禁止L2高速缓存控制器 176

6.5.5 RAM访问延迟控制 176

6.5.6保存缓冲区操作 176

6.5.7在Cortex-A9和L2控制器之间的优化 177

6.5.8预取操作 178

6.5.9编程模型 179

6.6片上存储器 180

6.6.1片上存储器概述 180

6.6.2片上存储器功能 181

6.7系统地址分配 186

6.7.1地址映射 186

6.7.2系统总线主设备 188

6.7.3 I/O外设 188

6.7.4 SMC存储器 188

6.7.5 SLCR寄存器 188

6.7.6杂项PS寄存器 189

6.7.7 CPU私有寄存器 189

第7章 Zynq - 7000 SoC的Vivado基本设计流程 190

7.1创建新的工程 190

7.2使用IP集成器创建处理器系统 192

7.3生成顶层HDL并导出设计到SDK 197

7.4创建应用测试程序 199

7.5设计验证 202

7.5.1验证前的硬件平台准备 202

7.5.2设计验证的具体实现 203

7.6 SDK调试工具的使用 205

7.6.1打开前面的设计工程 205

7.6.2导入工程到SDK 205

7.6.3建立新的存储器测试工程 205

7.6.4运行存储器测试工程 206

7.6.5调试存储器测试工程 207

7.7 SDK性能分析工具 209

第8章 Arm GPIO的原理和控制实现 213

8.1 GPIO模块原理 213

8.1.1 GPIO接口及功能 214

8.1.2 GPIO编程流程 217

8.1.3 I/O接口 218

8.1.4部分寄存器说明 218

8.1.5底层读/写函数说明 220

8.1.6 GPIO的API函数说明 220

8.2 Vivado环境下MIO读/写控制的实现 221

8.2.1调用底层读/写函数编写GPIO应用程序 221

8.2.2调用API函数编写控制GPIO应用程序 224

8.3 Vivado环境下EMIO读/写控制的实现 226

8.3.1调用底层读/写函数编写GPIO应用程序 227

8.3.2调用API函数编写控制GPIO应用程序 232

第9章 Cortex - A9异常与中断原理及实现 236

9.1异常原理 236

9.1.1异常类型 237

9.1.2异常处理 241

9.1.3其他异常句柄 242

9.1.4 Linux异常程序流 243

9.2中断原理 244

9.2.1外部中断请求 244

9.2.2 Zynq - 7000 SoC内的中断环境 247

9.2.3中断控制器的功能 248

9.3 Vivado环境下中断系统的实现 252

9.3.1 Cortex-A9处理器中断及异常初始化流程 252

9.3.2 Cortex-A9 GPIO控制器初始化流程 252

9.3.3导出硬件设计到SDK 253

9.3.4创建新的应用工程 253

9.3.5运行应用工程 256

第10章 Cortex-A9定时器原理及实现 257

10.1定时器系统架构 257

10.1.1 CPU私有定时器和看门狗定时器 257

10.1.2全局定时器/计数器 258

10.1.3系统级看门狗定时器 259

10.1.4 3重定时器/计数器 261

10.1.5 I/O信号 264

10.2 Vivado环境下定时器的控制实现 264

10.2.1打开前面的设计工程 265

10.2.2创建SDK软件工程 265

10.2.3运行软件应用工程 267

第11章 Cortex - A9 DMA控制器原理及实现 268

11.1 DMA控制器架构 268

11.2 DMA控制器功能 271

11.2.1考虑AXI交易的因素 272

11.2.2 DMA管理器 273

11.2.3多通道数据FIFO (MFIFO) 274

11.2.4存储器—存储器交易 274

11.2.5 PL外设AXI交易 274

11.2.6 PL外设请求接口 275

11.2.7 PL外设长度管理 276

11.2.8 DMAC长度管理 277

11.2.9事件和中断 278

11.2.10异常终止 278

11.2.11安全性 280

11.2.12 IP配置选项 282

11.3 DMA控制器编程指南 282

11.3.1启动控制器 282

11.3.2执行DMA传输 282

11.3.3中断服务例程 282

11.3.4寄存器描述 283

11.4 DMA引擎编程指南 284

11.4.1写微代码编程用于AXI交易的CCRx 284

11.4.2存储器到存储器传输 284

11.4.3 PL外设DMA传输长度管理 287

11.4.4使用一个事件重新启动DMA通道 289

11.4.5中断一个处理器 289

11.4.6指令集参考 290

11.5编程限制 291

11.6系统功能之控制器复位配置 292

11.7 I/O接口 293

11.7.1 AXI主接口 293

11.7.2外设请求接口 293

11.8 Vivado环境下DMA传输的实现 294

11.8.1 DMA控制器初始化流程 295

11.8.2中断控制器初始化流程 295

11.8.3中断服务句柄处理流程 296

11.8.4导出硬件设计到SDK 296

11.8.5创建新的应用工程 297

11.8.6运行软件应用工程 303

第12章 Cortex - A9安全性扩展 305

12.1 TrustZone硬件架构 305

12.1.1多核系统的安全性扩展 307

12.1.2普通世界和安全世界的交互 307

12.2 Zynq-7000 APU内的TrustZone 308

12.2.1 CPU安全过渡 309

12.2.2 CP15寄存器访问控制 310

12.2.3 MMU安全性 310

12.2.4 L1缓存安全性 311

12.2.5安全异常控制 311

12.2.6 CPU调试TrustZone访问控制 311

12.2.7 SCU寄存器访问控制 312

12.2.8 L2缓存中的TrustZone支持 312

第13章 Cortex - A9 NEON原理及实现 313

13.1 SIMD 313

13.2 NEON架构 315

13.2.1与VFP的共性 315

13.2.2数据类型 316

13.2.3 NEON寄存器 316

13.2.4 NEON指令集 318

13.3 NEON C编译器和汇编器 319

13.3.1向量化 319

13.3.2检测NEON 319

13.4 NEON优化库 320

13.5 SDK工具提供的优化选项 321

13.6使用NEON内联函数 324

13.6.1 NEON数据类型 325

13.6.2 NEON内联函数 325

13.7优化NEON汇编器代码 327

13.8提高存储器访问效率 328

13.9自动向量化实现 329

13.9.1导出硬件设计到SDK 329

13.9.2创建新的应用工程 330

13.9.3运行软件应用工程 331

13.10 NEON汇编代码实现 331

13.10.1导出硬件设计到SDK 331

13.10.2创建新的应用工程 332

13.10.3运行软件应用工程 333

第14章 Cortex - A9外设模块结构及功能 334

14.1 DDR存储器控制器 334

14.1.1 DDR存储器控制器接口及功能 335

14.1.2 AXI存储器接口 337

14.1.3 DDR核和交易调度器 338

14.1.4 DDRC仲裁 338

14.1.5 DDR存储器控制器PHY 340

14.1.6 DDR初始化和标定 340

14.1.7纠错码 341

14.2静态存储器控制器 342

14.2.1静态存储器控制器接口及功能 343

14.2.2静态存储器控制器和存储器的信号连接 344

14.3四-SPI Flash控制器 345

14.3.1四-SPI Flash控制器功能 347

14.3.2四-SPI Flash控制器反馈时钟 349

14.3.3四-SPI Flash控制器接口 349

14.4 SD/SDIO外设控制器 351

14.4.1 SD/SDIO控制器功能 352

14.4.2 SD/SDIO控制器传输协议 353

14.4.3 SD/SDIO控制器端口信号连接 356

14.5 USB主机、设备和OTG控制器 356

14.5.1 USB控制器接口及功能 358

14.5.2 USB主机操作模式 361

14.5.3 USB设备操作模式 363

14.5.4 USB OTG操作模式 365

14.6吉比特以太网控制器 365

14.6.1吉比特以太网控制器接口及功能 367

14.6.2吉比特以太网控制器接口编程向导 368

14.6.3吉比特以太网控制器接口信号连接 372

14.7 SPI控制器 373

14.7.1 SPI控制器的接口及功能 374

14.7.2 SPI控制器时钟设置规则 376

14.8 CAN控制器 376

14.8.1 CAN控制器接口及功能 377

14.8.2 CAN控制器操作模式 379

14.8.3 CAN控制器消息保存 380

14.8.4 CAN控制器接收过滤器 381

14.8.5 CAN控制器编程模型 382

14.9 UART控制器 383

14.10 I2C控制器 387

14.10.1 I2C速度控制逻辑 388

14.10.2 I2C控制器的功能和工作模式 388

14.11 XADC转换器接口 390

14.11.1 XADC转换器接口及功能 391

14.11.2 XADC命令格式 392

14.11.3供电传感器报警 392

14.12 PCI-E接口 393

第15章 Zynq - 7000内的可编程逻辑资源 395

15.1可编程逻辑资源概述 395

15.2可编程逻辑资源功能 396

15.2.1 CLB、Slice和LUT 396

15.2.2时钟管理 396

15.2.3块RAM 398

15.2.4数字信号处理 398

15.2.5输入/输出 399

15.2.6低功耗串行收发器 400

15.2.7 PCI - E模块 401

15.2.8 XADC(模拟-数字转换器) 402

15.2.9配置 402

第16章 Zynq-7000内的互联结构 404

16.1系统互联架构 404

16.1.1互联模块及功能 404

16.1.2数据路径 406

16.1.3时钟域 407

16.1.4连接性 408

16.1.5 AXI ID 409

16.1.6寄存器概述 409

16.2服务质量 410

16.2.1基本仲裁 410

16.2.2高级QoS 410

16.2.3 DDR端口仲裁 411

16.3 AXI HP接口 411

16.3.1 AXI HP接口结构及特点 411

16.3.2接口数据宽度 415

16.3.3交易类型 416

16.3.4命令交替和重新排序 416

16.3.5性能优化总结 416

16.4 AXI ACP接口 417

16.5 AXI GP接口 418

16.6 AXI信号总结 418

16.7 PL接口选择 422

16.7.1使用通用主设备端口的Cortex -A9 423

16.7.2通过通用主设备的PS DMA控制器(DMAC) 423

16.7.3通过高性能接口的PL DMA 426

16.7.4通过AXI ACP的PL DMA 426

16.7.5通过通用AXI从(GP)的PL DMA 426

第17章 Zynq - 7000 SoC内定制简单AXI - Lite IP 429

17.1设计原理 429

17.2定制AXI - Lite IP 429

17.2.1创建定制IP模板 429

17.2.2修改定制IP设计模板 432

17.2.3使用IP封装器封装外设 436

17.3打开并添加IP到设计中 440

17.3.1打开工程和修改设置 440

17.3.2添加定制IP到设计 442

17.3.3添加XDC约束文件 445

17.4导出硬件到SDK 446

17.5建立和验证软件应用工程 446

17.5.1建立应用工程 447

17.5.2下载硬件比特流文件到FPGA 449

17.5.3运行应用工程 450

第18章 Zynq - 7000 SoC内定制复杂AXI - Lite IP 451

18.1设计原理 451

18.1.1 VGA IP核的设计原理 451

18.1.2移位寄存器IP核的设计原理 453

18.2定制VGA IP核 454

18.2.1创建定制VGA IP模板 454

18.2.2修改定制VGA IP模板 455

18.2.3使用IP封装器封装VGA IP 459

18.3定制移位寄存器IP核 460

18.3.1创建定制SHIFTER IP模板 460

18.3.2修改定制SHIFTER IP模板 462

18.3.3使用IP封装器封装SHIFTER IP 463

18.4打开并添加IP到设计中 464

18.4.1打开工程和修改设置 464

18.4.2添加定制IP到设计 466

18.4.3添加XDC约束文件 470

18.5导出硬件到SDK 471

18.6建立和验证软件应用工程 472

18.6.1建立应用工程 472

18.6.2下载硬件比特流文件到FPGA 476

18.6.3运行应用工程 477

第19章 Zynq - 7000 AXI HP数据传输原理及实现 478

19.1设计原理 478

19.2构建硬件系统 479

19.2.1打开工程和修改设置 479

19.2.2添加并连接AXI DMA IP核 480

19.2.3添加并连接FIFO IP核 482

19.2.4连接DMA中断到PS 485

19.2.5验证和建立设计 487

19.3建立和验证软件工程 487

19.3.1导出硬件到SDK 488

19.3.2创建软件应用工程 488

19.3.3下载硬件比特流文件到FPGA 497

19.3.4运行应用工程 497

第20章 Zynq - 7000 ACP数据传输原理及实现 499

20.1设计原理 499

20.2打开前面的设计工程 499

20.3配置PS端口 499

20.4添加并连接IP到设计 500

20.4.1添加IP到设计 501

20.4.2系统连接 501

20.4.3分配地址空间 502

20.5使用SDK设计和实现应用工程 504

20.5.1创建新的软件应用工程 504

20.5.2导入应用程序 504

20.5.3下载硬件比特流文件到FPGA 507

20.5.4运行应用工程 508

第21章 Zynq-7000软件和硬件协同调试原理及实现 509

21.1设计目标 509

21.2 ILA核原理 510

21.2.1 ILA触发器输入逻辑 510

21.2.2多触发器端口的使用 510

21.2.3使用触发器和存储限制条件 510

21.2.4 ILA触发器输出逻辑 512

21.2.5 ILA数据捕获逻辑 512

21.2.6 ILA控制与状态逻辑 513

21.3 VIO核原理 513

21.4构建协同调试硬件系统 514

21.4.1打开前面的设计工程 514

21.4.2添加定制IP 514

21.4.3添加ILA和VIO核 515

21.4.4标记和分配调试网络 516

21.5生成软件工程 518

21.6 S/H协同调试 520

第22章 Zynq - 7000 SoC启动和配置原理及实现 527

22.1 Zynq-7000 SoC启动过程 527

22.2 Zynq-7000 SoC启动要求 527

22.2.1供电要求 528

22.2.2时钟要求 528

22.2.3复位要求 528

22.2.4模式引脚 528

22.3 Zynq-7000 SoC内的BootROM 530

22.3.1 BootROM特性 530

22.3.2 BootROM头部 531

22.3.3启动设备 535

22.3.4 BootROM多启动和启动分区查找 538

22.3.5调试状态 539

22.3.6 BootROM后状态 540

22.4 Zynq-7000 SoC器件配置接口 543

22.4.1描述功能 544

22.4.2器件配置流程 545

22.4.3配置PL 549

22.4.4寄存器概述 550

22.5生成SD卡镜像文件并启动 551

22.5.1 SD卡与xc7z020接口设计 551

22.5.2打开前面的设计工程 552

22.5.3创建第一级启动引导 553

22.5.4创建SD卡启动镜像 553

22.5.5从SD卡启动引导系统 555

22.6生成QSPI Flash镜像并启动 556

22.6.1 QSPI Flash接口 556

22.6.2创建QSPI Flash镜像 557

22.6.3从QSPI Flash启动引导系统 558

22.7 Cortex-A9双核系统的配置和运行 558

22.7.1构建双核硬件系统工程 558

22.7.2添加并互联IP核 559

22.7.3导出硬件设计到SDK中 561

22.7.4设置板级包支持路径 561

22.7.5建立 FSBL应用工程 562

22.7.6建立CPU0应用工程 562

22.7.7建立CPU1板级支持包 566

22.7.8建立CPU1应用工程 566

22.7.9创建SD卡镜像文件 570

22.7.10双核系统运行和测试 571

22.7.11双核系统的调试 571

第23章 Zynq-7000 SoC内XADC原理及实现 574

23.1 ADC转换器接口结构 574

23.2 ADC转换器功能 575

23.2.1 XADC的命令格式 576

23.2.2供电传感器报警 576

23.3 XADC IP核结构及信号 577

23.4开发平台上的XADC接口 578

23.5在Zynq-7000 SoC内构建数模混合系统 579

23.5.1打开前面的设计工程 579

23.5.2配置PS端口 579

23.5.3添加并连接XADC IP到设计 580

23.5.4查看地址空间 582

23.5.5添加用户约束文件 583

23.5.6设计处理 583

23.6使用SDK设计和实现应用工程 584

23.6.1生成新的应用工程 584

23.6.2导入应用程序 585

23.6.3下载硬件比特流文件到FPGA 591

23.6.4运行应用工程 591

第24章 Linux开发环境的构建 592

24.1构建虚拟机环境 592

24.2安装和启动Ubuntu 14.04客户机操作系统 595

24.2.1新添加两个磁盘 595

24.2.2设置CD/DVD (SATA) 596

24.2.3安装Ubuntu 14.04 597

24.2.4更改Ubuntu 14.04操作系统启动设备 600

24.2.5启动Ubuntu 14.04操作系统 600

24.2.6添加搜索链接资源 600

24.3安装FTP工具 601

24.3.1 Windows操作系统下LeapFTP安装 601

24.3.2 Ubuntu操作系统环境下FTP安装 602

24.4安装和启动SSH和GIT组件 603

24.4.1安装和启动SSH组件 603

24.4.2安装和启动GIT组件 604

24.5安装交叉编译器环境 604

24.5.1安装32位支持工具包 604

24.5.2安装和设置SDK 2015.4工具 605

24.6安装和配置Qt集成开发工具 606

24.6.1 Qt集成开发工具功能 606

24.6.2构建PC平台Qt环境 607

24.6.3构建Arm平台Qt环境 613

第25章 构建Zynq - 7000 SoC内Ubuntu硬件运行环境 622

25.1建立新的设计工程 622

25.2添加IP核路径 623

25.3构建硬件系统 623

25.3.1添加和配置ZYNQ7 IP 624

25.3.2添加和配置VDMA IP核 625

25.3.3添加和配置AXI Display Controller IP核 626

25.3.4添加和配置HDMI Transmitter IP核 627

25.3.5添加和配置VGA IP核 627

25.3.6连接用户自定义IP核 627

25.3.7添加和配置Processor System Reset IP核 630

25.3.8连接系统剩余部分 630

25.4添加设计约束文件 632

25.5导出硬件文件 633

第26章 构建Zynq - 7000 SoC内Ubuntu软件运行环境 635

26.1 u-boot原理及实现 635

26.1.1下载u-boot源码 635

26.1.2 u-boot文件结构 636

26.1.3 u-boot工作模式 637

26.1.4 u-boot启动过程 637

26.1.5编译u-boot 650

26.1.6链接脚本文件结构 652

26.2内核结构及编译 654

26.2.1内核结构 654

26.2.2下载Linux内核源码 655

26.2.3内核版本 655

26.2.4内核系统配置 655

26.2.5 Bootloader启动过程 658

26.2.6 Linux内核启动过程 660

26.2.7编译内核 662

26.3设备树原理及实现 662

26.3.1设备树概述 662

26.3.2设备树数据格式 663

26.3.3设备树的编译 664

26.4文件系统原理及下载 664

26.5生成Ubuntu启动镜像 665

26.5.1生成FSBL文件 666

26.5.2生成BOOT.bin启动文件 666

26.5.3制作SD卡 668

26.5.4复制BOOT.bin文件 670

26.5.5复制编译后的内核文件 670

26.5.6复制编译后的设备树文件 671

26.5.7复制文件系统 671

26.6启动Ubuntu操作系统 672

第27章 Linux环境下简单字符设备驱动程序的开发 674

27.1驱动程序的必要性 674

27.2 Linux操作系统下的设备文件类型 675

27.3 Linux驱动的开发流程 676

27.4驱动程序的结构框架 676

27.4.1加载和卸载函数模块 676

27.4.2字符设备中重要的数据结构和函数 677

27.5编写makefile文件 683

27.6编译驱动程序 684

27.7编写测试程序 685

27.8运行测试程序 686

第28章 Linux环境下包含中断机制驱动程序的开发 688

28.1设计原理 688

28.2编写包含中断处理的驱动代码 688

28.2.1驱动程序头文件 688

28.2.2驱动的加载和卸载函数 689

28.2.3 file_operations初始化 691

28.3编写makefile文件 691

28.4编译驱动程序 692

28.5测试驱动程序 693

第29章 Linux环境下图像处理系统的构建 694

29.1系统整体架构和功能 694

29.2 OV5640摄像头性能 695

29.2.1摄像头捕获模块的硬件 696

29.2.2 SCCB接口规范 696

29.2.3写摄像头模组寄存器操作 697

29.2.4读摄像头模组寄存器操作 698

29.2.5摄像头初始化流程 700

29.3 Vivado HLS实现拉普拉斯算子滤波算法的设计 701

29.3.1 Vivado HLS工具的性能和优势 701

29.3.2拉普拉斯算法与HDL之间的映射 703

29.4图像处理系统的整体构建 706

29.5图像处理系统软件的设计 708

29.5.1 Ubuntu桌面系统的构建 708

29.5.2 Qt图像处理程序的开发 708

29.6嵌入式图像处理系统测试 710

第30章 Zynq-7000 SoC上构建和实现Python应用 712

30.1设计所需的硬件环境 712

30.2构建PetaLinux开发环境 712

30.2.1 PetaLinux开发环境概述 712

30.2.2安装32位库 714

30.2.3安装并测试tftp服务器 714

30.2.4下载并安装PetaLinux 715

30.3构建嵌入式系统硬件 717

30.3.1下载并安装Vivado 2018.2集成开发环境 717

30.3.2添加板级支持包文件 717

30.3.3建立新的Vivado工程 717

30.3.4构建硬件系统 718

30.4构建嵌入式Python开发环境 721

30.5构建PC端Python开发环境 723

30.6服务器和客户端Python的开发 724

30.6.1服务器端Python的开发 725

30.6.2客户端Python的开发 726

30.7设计验证 728

30.7.1启动服务器程序 728

30.7.2启动客户端程序 729

查看更多关于的内容

本类热门
在线购买PDF电子书
下载此书RAR压缩包