ARM嵌入式系统编程与优化pdf

图书网 2018年8月24日14:02:1543.8K

ARM嵌入式系统编程与优化 内容简介

本书结合ARM架构和Linux工具,关注以性能为导向的嵌入式编程,深入讲解如何通过对数据、算法和存储等层面的优化,终实现性能的显著提升。本书先讲解ARM架构和嵌入式系统的基础知识,然后结合图像变换、分形生成和计算机视觉等应用案例,详细说明不同的优化方法。读者可在RaspberryPi等平台上动手运行并比较不同算法,掌握实践技巧。本书适合作为本科或研究生嵌入式系统课程的教材,也适合从事相关开发工作的程序员参考。

ARM嵌入式系统编程与优化 目录

出版者的话

译者序

前言

致谢

第1章Linux/ARM嵌入式平台1

1.1以性能为导向的编程2

1.2ARM技术3

1.3ARM简史4

1.4ARM编程4

1.5ARM体系集架构5

1.5.1ARM通用寄存器5

1.5.2状态寄存器6

1.5.3内存寻址模式7

1.5.4GNUARM汇编8

1.6汇编优化1:排序8

1.6.1参考实现8

1.6.2汇编实现9

1.6.3结果验证11

1.6.4分析编译器生成的代码13

1.7汇编优化2:位操作15

1.8代码优化目标16

1.8.1减少执行指令数16

1.8.2降低平均CPI16

1.9使用性能计数器的运行时分析18

1.9.1ARM性能监控单元18

1.9.2LinuxPerf_Event18

1.9.3性能计数器的基础架构19

1.10检测存储器带宽22

1.11性能测试结果25

1.12性能界限25

1.13基本指令集26

1.13.1整型算术指令26

1.13.2按位逻辑指令26

1.13.3移位指令27

1.13.4移动指令27

1.13.5加载和存储指令28

1.13.6比较指令28

1.13.7分支指令29

1.13.8浮点指令29

1.14小结30

习题31

第2章多核和数据层优化:OpenMP和SIMD33

2.1本书所涉及的优化技术33

2.2阿姆达尔定律34

2.3测试内核:多项式评估35

2.4使用多核:OpenMP37

2.4.1OpenMP指令37

2.4.2范围39

2.4.3其他OpenMP指令42

2.4.4OpenMP同步42

2.4.5调试OpenMP代码44

2.4.6OpenMP并行循环编译指令46

2.4.7OpenMP与性能计数器48

2.4.8OpenMP支持霍纳内核48

2.5性能界限48

2.6性能分析49

2.7GCC中的内联汇编语言50

2.8优化1:降低每f?lop的指令数51

2.9优化2:降低CPI54

2.9.1软件流水线54

2.9.2软件流水线的霍纳方法57

2.10优化3:使用SIMD时的每指令多f?lop63

2.10.1ARM11的VFP短向量指令65

2.10.2ARMCortex的NEON指令67

2.10.3NEON内联函数69

2.11小结70

习题71

第3章算法优化和Linux帧缓冲72

3.1Linux帧缓冲72

3.2仿射图像变换74

3.3双线性插值74

3.4浮点图像变换75

3.4.1加载图像76

3.4.2渲染帧78

3.5浮点性能分析82

3.6定点运算82

3.6.1定点与浮点:准确度83

3.6.2定点与浮点:范围83

3.6.3定点与浮点:精度83

3.6.4使用定点84

3.6.5高效定点加法84

3.6.6高效定点乘法87

3.6.7确定小数点的位置89

3.6.8图像变换的范围和准确度要求90

3.6.9将浮点值转换为定点值的运算90

3.7定点性能92

3.8实时分形生成92

3.8.1像素着色94

3.8.2放大94

3.8.3范围和准确度要求95

3.9小结96

习题96

第4章存储优化和视频处理99

4.1模板循环99

4.2模板案例:均值滤波器100

4.3可分离滤波器100

4.3.1高斯模糊101

4.3.2Sobel滤波器103

4.3.3Harris角点检测器104

4.3.4Lucas-Kanade光流106

4.4二维滤波器的存储访问行为108

4.4.1二维数据展示108

4.4.2按行滤波108

4.4.3按列滤波109

4.5循环分块110

4.6分块和模板晕区112

4.7二维滤波实现案例112

4.8视频帧的捕获和转换116

4.8.1YUV和色度抽样116

4.8.2将分块导出到帧缓冲区118

4.9Video4Linux驱动和API119

4.10使用二维分块滤波器122

4.11应用可分离的二维分块滤波器123

4.12顶层循环124

4.13性能结果124

4.14小结124

习题125

第5章利用OpenCL进行嵌入式异构编程127

5.1GPU微体系结构128

5.2OpenCL128

5.3OpenCL编程模型、语法及摘要129

5.3.1主机/设备编程模型129

5.3.2错误检查130

5.3.3平台层:初始化平台131

5.3.4平台层:初始化设备133

5.3.5平台层:初始化上下文135

5.3.6平台层:内核控制136

5.3.7平台层:内核编译137

5.3.8平台层:设备存储分配140

5.4内核工作负荷分配141

5.4.1设备存储区142

5.4.2内核参数143

5.4.3内核向量化145

5.4.4霍纳内核的参数空间146

5.4.5内核属性147

5.4.6内核调度147

5.5霍纳方法的OpenCL实现:设备码152

5.6性能结果156

5.6.1参数探索156

5.6.2工作组数156

5.6.3工作组大小157

5.6.4向量大小157

5.7小结158

习题158

附录A为RaspberryPi1的Raspbian系统添加PMU支持160

附录BNEON内联函数指令163

附录COpenCL参考175

ARM嵌入式系统编程与优化 精彩文摘

可以传输大量多媒体、具有高速无线宽带连通性和高分辨遥感和信号处理的移动设备和可穿戴设备对我们的文化的影响日益深远。.这些设备的出现归功于两项关键技术。

第一项技术是在无形巾影响着所有设备的ARM处理器技术。ARM处理器在20世纪80年代的消费性电子产品中开始使用,之后逐渐成为实际的嵌入式处理器技术。

与台式机和服务器处理器不同,ARM处理器不是独立芯片产品,而是具有多样性和异质性嵌人式片上系统(SOC)的集成部件,是可以针对各种特定产品实现定制化的部件。

嵌入式片上系统是一组在单片上相互连接的硬件模块.典型的片上系统包括一个或者多个ARM处理器内核。这些处理器充当整个片上系统的“主人”或者中央控制器,它们对用户交互、外围设备的持续控制以及专用协处理器负责。

图书网:ARM嵌入式系统编程与优化pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

程序设计

重构 改善既有代码的设计(中文版)pdf

《重构:改善既有代码的设计》(中文版)所提的这些重构准则将帮助你一次一小步地修改你的代码,这就减少了过程中的风险。很快你就会把这些重构准则和其名称加入自己的开发词典中,并且朗朗上口...
程序设计

数据结构 C语言版 第2版pdf

适读人群 :普通高校电子信息大类本科生学习、考研,同时也适合零售和培训。 采用“案例驱动”的编写模式。书中结合实际应用,将各章按照“案例引入——数据结构及其操作——案例分析与实现”...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:4   其中:访客  4   博主  0
    • aa
      aa 0

      好好好好

      • 12345
        12345 9

        不错

        • 千玺姐姐
          千玺姐姐 9

          求嵌入式书的pdf

          • Fire
            Fire 9

            很好!希望看看质量怎么样。