小苏子
小苏子PDF在线图书

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

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

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

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

本书结合ARM架构和Linux工具,关注以性能为导向的嵌入式编程,深入讲解如何通过对数据、算法和存储等层面的优化,终实现性能的显著提升。本书先讲解ARM架构和嵌入式系统的基础知识,然后结合图像变换、分形生成和计算机视觉等应用案例,详细说明不同的优化方法。读者可在RaspberryPi等平台上动手运行并比较不同算法,掌握实践技巧。本书适合作为本科或研究生嵌入式系统课程的教材,也适合从事相关开发工作的程序员参考。出版者的话译者序前言致谢第1章Linux/ARM嵌入式平台11.1以性能为导向的编程21.2ARM技术31.3ARM简史41.4ARM编程41.5ARM体系集架构51.5.1ARM通用寄存器51.5.2状态寄存器61.5.3内存寻址模式71.5.4GNUARM汇编81.6汇编优化1:排序81.6.1参考实现81.6.2汇编实现91.6.3结果验证111.6.4分析编译器生成的代码131.7汇编优化2:位操作151.8代码优化目标161.8.1减少执行指令数161.8.2降低平均CPI161.9使用性能计数器的运行时分析181.9.1ARM性能监控单元181.9.2LinuxPerf_Event181.9.3性能计数器的基础架构191.10检测存储器带宽221.11性能测试结果251.12性能界限251.13基本指令集261.13.1整型算术指令261.13.2按位逻辑指令261.13.3移位指令271.13.4移动指令271.13.5加载和存储指令281.13.6比较指令281.13.7分支指令291.13.8浮点指令291.14小结30习题31第2章多核和数据层优化:OpenMP和SIMD332.1本书所涉及的优化技术332.2阿姆达尔定律342.3测试内核:多项式评估352.4使用多核:OpenMP372.4.1OpenMP指令372.4.2范围392.4.3其他OpenMP指令422.4.4OpenMP同步422.4.5调试OpenMP代码442.4.6OpenMP并行循环编译指令462.4.7OpenMP与性能计数器482.4.8OpenMP支持霍纳内核482.5性能界限482.6性能分析492.7GCC中的内联汇编语言502.8优化1:降低每f?lop的指令数512.9优化2:降低CPI542.9.1软件流水线542.9.2软件流水线的霍纳方法572.10优化3:使用SIMD时的每指令多f?lop632.10.1ARM11的VFP短向量指令652.10.2ARMCortex的NEON指令672.10.3NEON内联函数692.11小结70习题71第3章算法优化和Linux帧缓冲723.1Linux帧缓冲723.2仿射图像变换743.3双线性插值743.4浮点图像变换753.4.1加载图像763.4.2渲染帧783.5浮点性能分析823.6定点运算823.6.1定点与浮点:准确度833.6.2定点与浮点:范围833.6.3定点与浮点:精度833.6.4使用定点843.6.5高效定点加法843.6.6高效定点乘法873.6.7确定小数点的位置893.6.8图像变换的范围和准确度要求903.6.9将浮点值转换为定点值的运算903.7定点性能923.8实时分形生成923.8.1像素着色943.8.2放大943.8.3范围和准确度要求953.9小结96习题96第4章存储优化和视频处理994.1模板循环994.2模板案例:均值滤波器1004.3可分离滤波器1004.3.1高斯模糊1014.3.2Sobel滤波器1034.3.3Harris角点检测器1044.3.4Lucas-Kanade光流1064.4二维滤波器的存储访问行为1084.4.1二维数据展示1084.4.2按行滤波1084.4.3按列滤波1094.5循环分块1104.6分块和模板晕区1124.7二维滤波实现案例1124.8视频帧的捕获和转换1164.8.1YUV和色度抽样1164.8.2将分块导出到帧缓冲区1184.9Video4Linux驱动和API1194.10使用二维分块滤波器1224.11应用可分离的二维分块滤波器1234.12顶层循环1244.13性能结果1244.14小结124习题125第5章利用OpenCL进行嵌入式异构编程1275.1GPU微体系结构1285.2OpenCL1285.3OpenCL编程模型、语法及摘要1295.3.1主机/设备编程模型1295.3.2错误检查1305.3.3平台层:初始化平台1315.3.4平台层:初始化设备1335.3.5平台层:初始化上下文1355.3.6平台层:内核控制1365.3.7平台层:内核编译1375.3.8平台层:设备存储分配1405.4内核工作负荷分配1415.4.1设备存储区1425.4.2内核参数1435.4.3内核向量化1455.4.4霍纳内核的参数空间1465.4.5内核属性1475.4.6内核调度1475.5霍纳方法的OpenCL实现:设备码1525.6性能结果1565.6.1参数探索1565.6.2工作组数1565.6.3工作组大小1575.6.4向量大小1575.7小结158习题158附录A为RaspberryPi1的Raspbian系统添加PMU支持160附录BNEON内联函数指令163附录COpenCL参考175可以传输大量多媒体、具有高速无线宽带连通性和高分辨遥感和信号处理的移动设备和可穿戴设备对我们的文化的影响日益深远。.这些设备的出现归功于两项关键技术。第一项技术是在无形巾影响着所有设备的ARM处理器技术。ARM处理器在20世纪80年代的消费性电子产品中开始使用,之后逐渐成为实际的嵌入式处理器技术。与台式机和服务器处理器不同,ARM处理器不是独立芯片产品,而是具有多样性和异质性嵌人式片上系统(SOC)的集成部件,是可以针对各种特定产品实现定制化的部件。嵌入式片上系统是一组在单片上相互连接的硬件模块.典型的片上系统包括一个或者多个ARM处理器内核。这些处理器充当整个片上系统的“主人”或者中央控制器,它们对用户交互、外围设备的持续控制以及专用协处理器负责。

赞(0)
未经允许不得转载:小苏子图书 » ARM嵌入式系统编程与优化 内容简介