Xilinx Zynq-7000嵌入式系统设计与实现 基于ARM Cortex-A9双核处理器和Vivado的设计方法PDF电子书下载
- 电子书积分:20 积分如何计算积分?
- 作 者:何宾,张艳辉编著
- 出 版 社:北京:电子工业出版社
- 出版年份:2016
- ISBN:9787121289958
- 页数:722 页
第1章 Zynq-7000SoC设计导论 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 Zynq-7000 SoC功能和结构 6
1.2.1 Zynq-7000 SoC产品分类及资源 6
1.2.2 Zynq-7000 SoC的功能 7
1.2.3 Zynq-7000 SoC处理系统PS的构成 8
1.2.4 Zynq-7000 SoC可编程逻辑PL的构成 13
1.2.5 Zynq -7000 SoC内的互联结构 14
1.2.6 Zynq-7000 SoC的供电引脚 16
1.2.7 Zynq-7000 SoC内MIO到EMIO的连接 17
1.2.8 Zynq - 7000 SoC内为PL分配的信号 22
1.3 Zynq-7000 SoC在嵌入式系统中的优势 24
1.3.1 使用PL实现软件算法 24
1.3.2 降低功耗 26
1.3.3 实时减负 27
1.3.4 可重配置计算 28
1.4 Zynq-7000 SoC的Vivado设计流程 28
1.4.1 Vivado的IP设计和系统级设计集成 29
1.4.2 使用RTL或网表的设计流程 29
1.4.3 IP子系统设计 30
1.4.4 嵌入式处理器硬件设计 30
1.4.5 使用模型和高级综合的DSP设计 31
1.4.6 脱离上下文的设计流程 31
1.4.7 I/O引脚规划和布局 31
1.4.8 设计分析和验证 32
1.4.9 器件编程和硬件验证 32
1.4.10 部分可重配置 32
第2章 AM BA协议规范 33
2.1 AMBA规范概述 33
2.2 AMBA APB规范 34
2.2.1 AMBA APB写传输 34
2.2.2 AMBA APB读传输 36
2.2.3 AMBA APB错误响应 37
2.2.4 操作状态 38
2.2.5 AMBA3 APB信号 38
2.3 AMBA AHB规范 39
2.3.1 AMBA AHB结构 39
2.3.2 AMBA AHB操作 40
2.3.3 AMBA AHB传输类型 42
2.3.4 AMBA AHB猝发操作 44
2.3.5 AMBA AHB传输控制信号 47
2.3.6 AMBA AHB地址译码 48
2.3.7 AMBA AHB从设备传输响应 49
2.3.8 AMBA AHB数据总线 52
2.3.9 AMBA AHB传输仲裁 53
2.3.10 AMBA AHB分割传输 58
2.3.11 AMBA AHB复位 61
2.3.12 关于AHB数据总线的位宽 61
2.3.13 AMBA AHB接口设备 62
2.4 AMBA AX14规范 64
2.4.1 AMBA AXI4概述 64
2.4.2 AMBA AXI4功能 64
2.4.3 AMBA AXI4互联结构 72
2.4.4 AXI4-Lite功能 74
2.4.5 AXI4-Stream功能 75
第3章 Zynq -7000系统公共资源及特性 78
3.1 时钟子系统 78
3.1.1 时钟系统架构 78
3.1.2 CPU时钟域 79
3.1.3 时钟编程实例 81
3.1.4 时钟系统内生成电路结构 82
3.2 复位子系统 86
3.2.1 复位系统结构和层次 87
3.2.2 复位流程 88
3.2.3 复位的结果 89
第4章 Zynq调试和测试子系统 90
4.1 JTAG和DAP子系统 90
4.1.1 JTAG和DAP系统功能 92
4.1.2 JTAG和DAP系统1/O信号 94
4.1.3 编程模型 94
4.1.4 ARM DAP控制器 96
4.1.5 跟踪端口接口单元TPIU 97
4.1.6 Xilinx TAP控制器 97
4.2 CoreSight系统结构及功能 98
4.2.1 CoreSight结构概述 98
4.2.2 CoreSight系统功能 99
第5章 Cortex-A9处理器及指令集 102
5.1 应用处理单元概述 102
5.1.1 基本功能 102
5.1.2 系统级视图 103
5.2 ARM处理器架构发展 105
5.3 Cortex-A9中央处理器结构 106
5.3.1 处理器模式 107
5.3.2 寄存器 109
5.3.3 流水线 115
5.3.4 分支预测 115
5.3.5 指令和数据对齐 116
5.3.6 跟踪和调试 118
5.4 Cortex-A9处理器指令集 119
5.4.1 指令集基础 119
5.4.2 数据处理操作 123
5.4.3 存储器指令 127
5.4.4 分支 129
5.4.5 饱和算术 130
5.4.6 杂项指令 132
第6章 Cortex-A9片上存储器系统结构和功能 137
6.1 L1高速缓存 137
6.1.1 高速缓存背景 137
6.1.2 高速缓存的优势和问题 138
6.1.3 存储器层次 139
6.1.4 高速缓存结构 139
6.1.5 缓存策略 144
6.1.6 写和取缓冲区 146
6.1.7 缓存性能和命中速度 146
6.1.8 无效和清除缓存 147
6.1.9 一致性和统一性点 149
6.1.10 Zynq-7000中Cortex-A9 L1高速缓存的特性 151
6.2 存储器顺序 152
6.2.1 普通、设备和强顺序存储器模型 153
6.2.2 存储器属性 154
6.2.3 存储器屏障 155
6.3 存储器管理单元 159
6.3.1 MMU功能描述 159
6.3.2 虚拟存储器 160
6.3.3 转换表 161
6.3.4 页表入口域的描述 164
6.3.5 TLB构成 166
6.3.6 存储器访问顺序 168
6.4 侦听控制单元 169
6.4.1 地址过滤 169
6.4.2 SCU主设备端口 170
6.5 L2高速缓存 170
6.5.1 互斥L2-L1高速缓存配置 172
6.5.2 高速缓存替换策略 173
6.5.3 高速缓存锁定 173
6.5.4 使能/禁止L2高速缓存控制器 175
6.5.5 RAM访问延迟控制 175
6.5.6 保存缓冲区操作 175
6.5.7 在Cortex-A9和L2控制器之间的优化 176
6.5.8 预取操作 177
6.5.9 编程模型 177
6.6 片上存储器 178
6.6.1 片上存储器概述 178
6.6.2 片上存储器功能 180
6.7 系统地址分配 185
6.7.1 地址映射 185
6.7.2 系统总线主设备 187
6.7.3 I/O外设 187
6.7.4 SMC存储器 187
6.7.5 SLCR寄存器 187
6.7.6 杂项PS寄存器 188
6.7.7 CPU私有总线寄存器 188
第7章 Zynq-7000SoC的Vivado基本设计流程 189
7.1 创建新的工程 189
7.2 使用IP集成器创建处理器系统 191
7.3 生成顶层HDL并导出设计到SDK 196
7.4 创建应用测试程序 199
7.5 设计验证 202
7.5.1 验证前的硬件平台准备 202
7.5.2 设计验证的具体实现 203
7.6 SDK调试工具的使用 204
7.6.1 打开前面的设计工程 204
7.6.2 导入工程到SDK 205
7.6.3 建立新的存储器测试工程 205
7.6.4 运行存储器测试工程 206
7.6.5 调试存储器测试工程 207
7.7 SDK性能分析工具 209
第8章 ARMGPIO的原理和控制实现 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读/写控制的实现 227
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 中断控制器的功能 249
9.3 Vivado环境下中断系统的实现 252
9.3.1 Cortex-A9处理器中断及异常初始化流程 253
9.3.2 Cortex-A9 GPIO控制器初始化流程 253
9.3.3 导出硬件设计到SDK 253
9.3.4 创建新的应用工程 254
9.3.5 运行应用工程 257
第10章 Cortex-A9定时器原理及实现 258
10.1 定时器系统架构 258
10.1.1 CPU私有定时器和看门狗定时器 259
10.1.2 全局定时器/计数器 259
10.1.3 系统看门狗定时器 260
10.1.4 三重定时器/计数器 262
10.1.5 I/O信号 265
10.2 Vivado环境下定时器的控制实现 265
10.2.1 打开前面的设计工程 266
10.2.2 创建SDK软件工程 266
10.2.3 运行软件应用工程 268
第11章 Cortex-A9 DMA控制器原理及实现 270
11.1 DMA控制器架构 270
11.2 DMA控制器功能 273
11.2.1 考虑AXI交易的因素 274
11.2.2 DMA管理器 275
11.2.3 多通道数据FIFO(MFIFO) 276
11.2.4 存储器—存储器交易 276
11.2.5 PL外设AXI交易 276
11.2.6 PL外设请求接口 277
11.2.7 PL外设长度管理 278
11.2.8 DMAC长度管理 279
11.2.9 事件和中断 280
11.2.10 异常终止 281
11.2.11 安全性 282
11.2.12 IP配置选项 284
11.3 DMA控制器编程指南 284
11.3.1 启动控制器 284
11.3.2 执行DMA传输 284
11.3.3 中断服务例程 285
11.3.4 寄存器描述 285
11.4 DMA引擎编程指南 286
11.4.1 写微码编程用于AXI交易的CCRx 286
11.4.2 存储器到存储器传输 286
11.4.3 PL外设DMA传输长度管理 289
11.4.4 使用一个事件重新启动DMA通道 291
11.4.5 中断一个处理器 292
11.4.6 指令集参考 292
11.5 编程限制 293
11.6 系统功能之控制器复位配置 295
11.7 I/O接口 295
11.7.1 AXI主接口 295
11.7.2 外设请求接口 296
11.8 Vivado环境下DMA传输的实现 296
11.8.1 DMA控制器初始化流程 297
11.8.2 中断控制器初始化流程 297
11.8.3 中断服务句柄处理流程 298
11.8.4 导出硬件设计到SDK 298
11.8.5 创建新的应用工程 299
11.8.6 运行软件应用工程 306
第12章 Cortex-A9安全性扩展 307
12.1 TrustZone硬件架构 307
12.1.1 多核系统的安全性扩展 309
12.1.2 普通世界和安全世界的交互 309
12.2 Zynq - 7000 APU内的TrustZone 310
12.2.1 CPU安全过渡 311
12.2.2 CP15寄存器访问控制 312
12.2.3 MMU安全性 313
12.2.4 L1缓存安全性 313
12.2.5 安全异常控制 313
12.2.6 CPU调试TrustZone访问控制 313
12.2.7 SCU寄存器访问控制 314
12.2.8 L2缓存中的TrustZone支持 314
第13章 Cortex-A9 NEON原理及实现 315
13.1 SIMD 315
13.2 NEON架构 317
13.2.1 与V FP的共性 317
13.2.2 数据类型 318
13.2.3 NEON寄存器 318
13.2.4 NEON指令集 320
13.3 NEON C编译器和汇编器 321
13.3.1 向量化 321
13.3.2 检测NEON 321
13.4 NEON优化库 322
13.5 SDK工具提供的优化选项 323
13.6 使用NEON内联函数 326
13.6.1 NEON数据类型 327
13.6.2 NEON内联函数 328
13.7 优化NEON汇编器代码 329
13.8 提高存储器访问效率 331
13.9 自动向量化实现 332
13.9.1 导出硬件设计到SDK 332
13.9.2 创建新的应用工程 332
13.9.3 运行软件应用工程 333
13.10 NEON汇编代码实现 334
13.10.1 导出硬件设计到SDK 334
13.10.2 创建新的应用工程 334
13.10.3 运行软件应用工程 335
第14章 Cortex-A9外设模块结构及功能 337
14.1 DDR存储器控制器 337
14.1.1 DDR存储器控制器接口及功能 338
14.1.2 AXI存储器端口接口 340
14.1.3 DDR核和交易调度器 341
14.1.4 DDRC仲裁 341
14.1.5 DDR控制器PHY 342
14.1.6 DDR初始化和标定 343
14.1.7 纠错码 344
14.2 静态存储器控制器 344
14.2.1 静态存储器控制器接口及功能 345
14.2.2 静态存储器控制器和存储器的信号连接 347
14.3 四-SPI Flash控制器 348
14.3.1 四-SPI Flash控制器功能 350
14.3.2 四-SPI Flash控制器反馈时钟 352
14.3.3 四-SPI Flash控制器接口 352
14.4 SD/SDIO外设控制器 354
14.4.1 SD/SDIO控制器功能 355
14.4.2 SD/SDIO控制器传输协议 356
14.4.3 SD/SDIO控制器接口信号连接 359
14.5 USB主机、设备和OTG控制器 359
14.5.1 USB控制器接口及功能 361
14.5.2 USB主机操作模式 364
14.5.3 USB设备操作模式 366
14.5.4 USB OTG操作模式 368
14.6 吉比特以太网控制器 368
14.6.1 吉比特以太网控制器接口及功能 370
14.6.2 吉比特以太网控制器接口编程向导 371
14.6.3 吉比特以太网控制器接口信号连接 375
14.7 SPI控制器 376
14.7.1 SPI控制器的接口及功能 377
14.7.2 SPI控制器时钟设置规则 379
14.8 CAN控制器 379
14.8.1 CAN控制器接口及功能 380
14.8.2 CAN控制器操作模式 382
14.8.3 CAN控制器消息保存 383
14.8.4 CAN控制器接收过滤器 384
14.8.5 CAN控制器编程模型 384
14.9 UART控制器 386
14.9.1 UART控制器接口及功能 387
14.10 I2C控制器 389
14.10.1 I2 C速度控制逻辑 390
14.10.2 I2 C控制器的功能和工作模式 391
14.11 ADC转换器接口 393
14.11.1 ADC转换器接口及功能 394
14.11.2 ADC命令格式 394
14.11.3 供电传感器报警 395
14.12 PCI-E接口 395
第15章 Zynq -7000内的可编程逻辑资源 397
15.1 可编程逻辑资源概述 397
15.2 可编程逻辑资源功能 398
15.2.1 C LB、Slice和LUT 398
15.2.2 时钟管理 398
15.2.3 块RAM 399
15.2.4 数字信号处理-DSP Slice 400
15.2.5 输入/输出 401
15.2.6 低功耗串行收发器 402
15.2.7 PC I-E模块 403
15.2.8 XADC(模拟-数字转换器) 403
15.2.9 配置 404
第16章 Zynq -7000内的互联结构 405
16.1 系统互联架构 405
16.1.1 互联模块及功能 405
16.1.2 数据路径 407
16.1.3 时钟域 408
16.1.4 连接性 409
16.1.5 AXI ID 410
16.1.6 寄存器概述 410
16.2 服务质量 411
16.2.1 基本仲裁 411
16.2.2 高级QoS 411
16.2.3 DDR端口仲裁 412
16.3 AXI_ HP接口 412
16.3.1 AXI_ HP接口结构及特点 412
16.3.2 接口数据宽度 416
16.3.3 交易类型 417
16.3.4 命令交替和重新排序 417
16.3.5 性能优化总结 417
16.4 AXI_ ACP接口 418
16.5 AXI_ GP接口 419
16.6 AXI信号总结 419
16.7 PL接口选择 423
16.7.1 使用通用主设备端口的Cortex-A9 424
16.7.2 通过通用主设备的PS DMA控制器(DMAC) 424
16.7.3 通过高性能接口的PL DMA 424
16.7.4 通过AXI ACP的PL DMA 424
16.7.5 通过通用AXI从(GP)的PL DMA 429
第17章 Zynq -7000SoC内定制简单AXI - LiteIP 430
17.1 设计原理 430
17.2 定制AXI-Lite IP 430
17.2.1 创建定制IP模板 430
17.2.2 修改定制IP设计模板 433
17.2.3 使用IP封装器封装外设 438
17.3 打开并添加IP到设计中 442
17.3.1 打开工程和修改设置 442
17.3.2 添加定制IP到设计 444
17.3.3 添加xdc约束文件 447
17.4 导出硬件到SDK 448
17.5 建立和验证软件应用工程 448
17.5.1 建立应用工程 449
17.5.2 下载硬件比特流文件到FPGA 451
17.5.3 运行应用工程 452
第18章 Zynq -7000SoC内定制复杂AXI LITEIP 453
18.1 设计原理 453
18.1.1 VGA IP核的设计原理 453
18.1.2 移位寄存器IP核的设计原理 454
18.2 定制VGA IP核 456
18.2.1 创建定制VGA IP模板 456
18.2.2 修改定制VGA IP模板 457
18.2.3 使用IP封装器封装VGA IP 461
18.3 定制移位寄存器IP核 463
18.3.1 创建SHIFTER IP模板 463
18.3.2 修改定制SHIFTER IP模板 464
18.3.3 使用IP封装器封装SHIFTER IP 466
18.4 打开并添加IP到设计中 467
18.4.1 打开工程和修改设置 467
18.4.2 添加定制IP到设计 469
18.4.3 添加xdc约束文件 472
18.5 导出硬件到SDK 474
18.6 建立和验证软件工程 475
18.6.1 建立应用工程 475
18.6.2 下载硬件比特流文件到FPGA 480
18.6.3 运行应用工程 480
第19章 Zynq- 7000 AXIHP数据传输原理及实现 482
19.1 设计原理 482
19.2 构建硬件系统 483
19.2.1 打开工程和修改设置 483
19.2.2 添加并连接AXI DMA IP核 484
19.2.3 添加并连接FIFO IP核 486
19.2.4 连接DMA中断到PS 489
19.2.5 验证和建立设计 491
19.3 建立和验证软件工程 491
19.3.1 导出硬件到SDK 492
19.3.2 创建软件应用工程 492
19.3.3 下载硬件比特流文件到FPGA 503
19.3.4 运行应用工程 503
第20章 Zynq-7000 ACP数据传输原理及实现 504
20.1 设计原理 504
20.2 打开前面的设计工程 504
20.3 配置PS端口 504
20.4 添加并连接IP到设计 505
20.4.1 添加IP到设计 506
20.4.2 系统连接 506
20.4.3 分配地址空间 507
20.5 使用SDK设计和实现应用工程 508
20.5.1 创建新的软件应用工程 509
20.5.2 导入应用程序 509
20.5.3 下载硬件比特流文件到FPGA 512
20.5.4 运行应用工程 513
第21章 Zynq-7000软件和硬件协同调试原理及实现 514
21.1 设计目标 514
21.2 ILA核原理 515
21.2.1 ILA触发器输入逻辑 515
21.2.2 多触发器端口的使用 515
21.2.3 使用触发器和存储限定条件 515
21.2.4 ILA触发器输出逻辑 517
21.2.5 ILA数据捕获逻辑 517
21.2.6 ILA控制与状态逻辑 518
21.3 VIO核原理 518
21.4 构建协同调试硬件系统 519
21.4.1 打开前面的设计工程 519
21.4.2 添加定制IP 519
21.4.3 添加 ILA和VIO核 520
21.4.4 标记和分配调试网络 521
21.5 生成软件工程 523
21.6 S/H协同调试 525
第22章 Zynq -7000SoC启动和配置原理及实现 532
22.1 Zynq - 7000 SoC启动过程 532
22.2 Zynq -7000 SoC启动要求 532
22.2.1 供电要求 533
22.2.2 时钟要求 533
22.2.3 复位要求 533
22.2.4 模式引脚 534
22.3 Zynq - 7000 SoC内的BootROM 535
22.3.1 BootROM特性 535
22.3.2 BootROM头部 536
22.3.3 启动设备 540
22.3.4 BootROM多启动和启动分区查找 543
22.3.5 调试状态 544
22.3.6 BootROM后状态 545
22.4 Zynq -7000 SoC器件配置接口 548
22.4.1 描述功能 549
22.4.2 器件配置流程 551
22.4.3 配置PL 554
22.4.4 寄存器概述 555
22.5 生成SD卡镜像文件并启动 556
22.5.1 SD卡与XC7Z020接口设计 556
22.5.2 打开前面的设计工程 557
22.5.3 创建第一级启动引导 558
22.5.4 创建SD卡启动镜像 558
22.5.5 从SD卡启动引导系统 561
22.6 生成QSPI Flash镜像并启动 561
22.6.1 QSPI Flash接口 561
22.6.2 创建QSPI Flash镜像 562
22.6.3 从QSPI Flash启动引导系统 563
22.7 Cortex-A9双核系统的配置和运行 564
22.7.1 构建双核硬件系统工程 564
22.7.2 添加并互联IP核 564
22.7.3 导出硬件设计到SDK中 566
22.7.4 设置板级包支持路径 567
22.7.5 建立FSBL应用工程 568
22.7.6 建立CPU0应用工程 568
22.7.7 建立CPU1板级支持包 572
22.7.8 建立CPU1应用工程 573
22.7.9 创建SD卡镜像文件 577
22.7.10 双核系统运行和测试 578
22.7.11 双核系统的调试 578
第23章 Zynq-7000SoC内XADC原理及实现 581
23.1 ADC转换器接口结构 581
23.2 ADC转换器功能 582
23.2.1 ADC命令格式 583
23.2.3 供电传感器报警 583
23.3 XADC IP核结构及信号 584
23.4 开发平台上XADC接口 585
23.5 在Zynq-7000 SoC内构建数模混合系统 586
23.5.1 打开前面的设计工程 586
23.5.2 配置PS端口 586
23.5.3 添加并连接XADC IP到设计 587
23.5.4 查看地址空间 589
23.5.5 添加设计约束文件 590
23.5.6 设计处理 590
23.6 使用SDK设计和实现应用工程 591
23.6.1 生成新的应用工程 591
23.6.2 导入应用程序 592
23.6.3 下载硬件比特流文件到FPGA 597
23.6.4 运行应用工程 598
第24章 Linux开发环境的构建 599
24.1 构建虚拟机环境 599
24.2 安装和启动Ubuntu14.04客户机操作系统 602
24.2.1 新添加两个磁盘 602
24.2.2 设置CD/DVD (SATA) 603
24.2.3 安装Ubuntu14.04 604
24.2.4 更改Ubuntu 14.04操作系统启动设备 607
24.2.5 启动Ubuntu 14.04操作系统 607
24.2.6 添加搜索链接资源 607
24.3 安装FTP工具 608
24.3.1 Windows操作系统下LeapFTP安装 608
24.3.2 Ubuntu操作系统环境下FTP安装 609
24.4 安装和启动SSH和git组件 610
24.4.1 安装和启动SSH组件 610
24.4.2 安装和git组件 611
24.5 安装交叉编译器环境 611
24.5.1 安装32位支持工具包 612
24.5.2 安装和设置SDK 2015.4 工具 612
24.6 安装和配置Qt集成开发工具 614
24.6.1 Qt集成开发工具功能 614
24.6.2 构建PC平台Qt环境 614
24.6.3 构建ARM平台Qt环境 621
第25章 构建Zynq -7000 SoC内Ubuntu硬件运行环境 630
25.1 建立新的设计工程 630
25.2 添加IP核路径 631
25.3 构建硬件系统 631
25.3.1 添加和配置ZYNQ7IP 631
25.3.2 添加和配置VDMA IP 632
25.3.3 添加和配置AXI Display Controller IP 634
25.3.4 添加和配置HDMI Transmitter IP核 635
25.3.5 添加和配置VGA IP核 635
25.3.6 连接用户自定义IP核 635
25.3.7 添加和配置Processor System Reset IP核 637
25.3.8 连接系统剩余部分 637
25.4 添加设计约束文件 639
25.5 导出硬件文件 640
第26章 构建Zynq -7000 SoC内Ubuntu软件运行环境 642
26.1 u-boot原理及实现 642
26.1.1 下载u-boot源码 642
26.1.2 u-boot版文件结构 643
26.1.3 u-boot工作模式 644
26.1.4 u-boot启动流程 644
26.1.5 编译u-boot 659
26.1.6 链接脚本文件结构 661
26.2 内核结构及编译 663
26 2.1 内核结构 663
26.2.2 下载Linux内核源码 664
26.2.3 内核版本 665
26.2.4 内核系统配置 665
26.2.5 Bootloader启动过程 668
26.2.6 Linux内核启动过程 670
26.2.7 编译内核 672
26.3 设备树原理及实现 672
26.3.1 设备树概述 672
26.3.2 设备树数据格式 672
26.3.3 设备树的编译 674
26.4 文件系统原理及下载 674
26.5 生成Ubuntu启动镜像 675
26.5.1 生成FSBL文件 676
26.5.2 生成BOOT.BIN启动文件 676
26.5.3 制作SD卡 678
26.5.4 复制BOOT.BIN文件 680
26.5.5 复制编译后的内核文件 680
26.5.6 复制编译后的设备树文件 681
26.5.7 复制文件系统 681
26.6 启动Ubuntu操作系统 682
第27章 Linux环境下简单字符设备驱动程序的开发 684
27.1 驱动程序的必要性 684
27.2 Linux操作系统下的设备文件类型 685
27.3 Linux驱动的开发流程 686
27.4 驱动程序的结构框架 686
27.4.1 加载和卸载驱动函数模块 686
27.4.2 字符设备中重要的数据结构和函数 687
27.5 编写Makefile文件 694
27.6 编译驱动程序 694
27.7 编写测试程序 695
27.8 运行测试程序 697
第28章 Linux环境下包含中断机制驱动程序的开发 698
28.1 设计原理 698
28.2 编写包含中断处理的驱动代码 698
28.2.1 驱动程序头文件 698
28.2.2 驱动的加载和卸载函数 699
28.2.3 file-operations初始化 702
28.3 编写Makefile文件 702
28.4 编译驱动程序 702
28.5 测试驱动程序 703
第29章 Linux环境下图像处理系统的构建 705
29.1 系统整体架构和功能 705
29.2 OV5640摄像头性能 706
29.2.1 摄像头捕获模块的硬件 707
29.2.2 SCCB接口规范 707
29.2.3 写摄像头模组寄存器操作 708
29.2.4 读摄像头模组寄存器操作 709
29.2.5 摄像头初始化流程 711
29.3 Vivado HLS实现拉普拉斯算子滤波算法的设计 712
29.3.1 Vivado HLS工具的性能和优势 713
29.3.2 拉普拉斯算法与HDL之间的映射 714
29.4 图像处理系统的整体构建 717
29.5 图像处理系统软件的设计 719
29.5.1 Ubuntu桌面系统的构建 719
29.5.2 Qt图像处理程序的开发 719
29.6 嵌入式图像处理系统测试 721
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《设计十六日 国内外美术院校报考攻略》沈海泯著 2018
- 《计算机辅助平面设计》吴轶博主编 2019
- 《高校转型发展系列教材 素描基础与设计》施猛责任编辑;(中国)魏伏一,徐红 2019
- 《景观艺术设计》林春水,马俊 2019
- 《大数据Hadoop 3.X分布式处理实战》吴章勇,杨强 2020
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《物联网与嵌入式技术及其在农业上的应用》马德新 2019
- 《Cinema 4D电商美工与视觉设计案例教程》樊斌 2019
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《电子测量与仪器》人力资源和社会保障部教材办公室组织编写 2009
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《通信电子电路原理及仿真设计》叶建芳 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《电子应用技术项目教程 第3版》王彰云 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017