摘要 | 第5-6页 |
ABSTRACT | 第6-7页 |
第一章 绪论 | 第11-15页 |
1.1 研究背景和意义 | 第11-12页 |
1.2 国内外研究现状 | 第12-13页 |
1.3 论文的主要研究内容 | 第13-14页 |
1.4 文章组织结构 | 第14-15页 |
第二章 嵌入式及其他相关技术介绍 | 第15-33页 |
2.1 嵌入式软件特点 | 第15-16页 |
2.2 嵌入式多核a Coral系统概述 | 第16-20页 |
2.2.1 扩展层 | 第17-18页 |
2.2.2 内核层 | 第18-20页 |
2.2.3 HAL层 | 第20页 |
2.3 嵌入式系统的交叉开发平台 | 第20-21页 |
2.4 程序分析与插桩 | 第21-23页 |
2.4.1 静态分析和动态分析 | 第21页 |
2.4.2 源代码和二进制代码 | 第21-22页 |
2.4.3 四种程序分析 | 第22页 |
2.4.4 静态二进制插桩和动态二进制插桩 | 第22-23页 |
2.5 ELF文件格式 | 第23-27页 |
2.5.1 可重定位目标文件 | 第24-25页 |
2.5.2 可执行目标文件 | 第25-26页 |
2.5.3 共享目标文件 | 第26-27页 |
2.6 函数调用过程 | 第27-32页 |
2.6.1 X86平台函数调用过程 | 第27-28页 |
2.6.2 ARM平台函数调用过程 | 第28-32页 |
2.7 本章小结 | 第32-33页 |
第三章 基于ACORAL操作系统多核代码分析器设计 | 第33-47页 |
3.1 a Coral多核分析器系统总体架构 | 第33-34页 |
3.2 二进制插桩模块 | 第34-40页 |
3.2.1 插桩工作流程与跳转方式 | 第34-37页 |
3.2.3 插桩过程设计 | 第37-40页 |
3.3 多核性能分析内核支持模块 | 第40-43页 |
3.3.1 内核支持模块功能介绍 | 第40-41页 |
3.3.2 内核支持模块设计 | 第41-43页 |
3.4 通信模块 | 第43-44页 |
3.5 性能数据处理模块 | 第44-46页 |
3.5.1 静态图处理部分 | 第44页 |
3.5.2 时间相关处理部分 | 第44-45页 |
3.5.3 周期执行次数相关处理部分 | 第45-46页 |
3.6 本章小结 | 第46-47页 |
第四章 基于ACORAL操作系统多核代码分析器实现 | 第47-67页 |
4.1 二进制插桩模块实现 | 第47-56页 |
4.1.1 定位目标函数被调用地址实现 | 第47-51页 |
4.1.2 黏合汇编函数模版及自动生成实现 | 第51-53页 |
4.1.3 桩代码实现 | 第53-55页 |
4.1.4 黏合过程 | 第55-56页 |
4.2 多核性能分析内核支持模块 | 第56-58页 |
4.2.1 上下文切换数据收集 | 第56-57页 |
4.2.2 运行线程周期采样 | 第57-58页 |
4.3 通信模块实现 | 第58-59页 |
4.3.1 关键数据结构设计 | 第58页 |
4.3.2 关键流程设计 | 第58-59页 |
4.4 性能数据处理模块 | 第59-66页 |
4.4.1 函数静态调用图处理部分 | 第59-60页 |
4.4.2 时间相关处理部分 | 第60-64页 |
4.4.3 周期执行次数相关处理部分 | 第64-66页 |
4.5 本章小结 | 第66-67页 |
第五章 实验分析与系统测试 | 第67-75页 |
5.1 函数运行时间误差分析及测试对比分析 | 第67-70页 |
5.1.1 目标函数运行时间计算误差分析 | 第67-68页 |
5.1.2 测试对比 | 第68-70页 |
5.2 获取函数运行时间方法在X86平台上测试 | 第70-72页 |
5.2.1 X86平台上实现与ARM平台实现区别 | 第70-71页 |
5.2.2 与Ltrace工具运行测试对比 | 第71-72页 |
5.3 系统测试 | 第72-74页 |
5.3.1 测试环境 | 第72页 |
5.3.2 功能测试 | 第72-74页 |
5.4 本章小结 | 第74-75页 |
第六章 总结与展望 | 第75-77页 |
6.1 工作总结 | 第75页 |
6.2 未来展望 | 第75-77页 |
致谢 | 第77-78页 |
参考文献 | 第78-81页 |
攻硕期间取得的研究成果 | 第81-82页 |