当前位置:主页 > 计算机电子书 > 程序设计 > 系统编程下载
ARM嵌入式系统编程与优化

ARM嵌入式系统编程与优化 PDF 中文影印版

  • 更新:2019-11-11
  • 大小:72.3 MB
  • 类别:系统编程
  • 作者:詹森、D.巴克斯(Jason、D.、Ba
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

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

这书融合ARM架构和Linux专用工具,关心以性能为导向性的内嵌式编写程序,深层次讲解怎样根据对统计数据、算法和储存等方面的优化,终保持性能的明显提高。这书先讲解ARM架构和嵌入式系统的基本知识,随后融合图象转换、分形转化成和计算机视觉等运用实例,详细描述不一样的优化方式。用户可在RaspberryPi等服务平台上着手运作并较为不一样算法,把握实践活动方法。这书合适做为大学本科或硕士生嵌入式系统课程内容的教材内容,也合适从业有关开发设计工作中的程序猿参照。

目录

  • 出版者的话
  • 译者序
  • 前言
  • 致谢
  • 第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

资源下载

资源下载地址1:https://pan.baidu.com/s/1CQFq_gMMUkm4keq5G6ULrQ

相关资源

网友留言