致谢 | 第5-6页 |
摘要 | 第6-7页 |
ABSTRACT | 第7-8页 |
1 绪论 | 第11-17页 |
1.1 研究背景 | 第11-12页 |
1.2 国内外研究现状 | 第12-14页 |
1.3 研究内容与技术路线 | 第14-15页 |
1.4 论文组织结构 | 第15-17页 |
2 论文研究基础 | 第17-27页 |
2.1 Linux设备驱动程序 | 第17-18页 |
2.2 GCC与GCC插件 | 第18-20页 |
2.2.1 GCC概述 | 第18-19页 |
2.2.2 GCC插件 | 第19-20页 |
2.3 抽象语法树 | 第20-23页 |
2.3.1 抽象语法树概述 | 第21-22页 |
2.3.2 抽象语法树组成 | 第22-23页 |
2.4 Exuberant-Ctags工具 | 第23-25页 |
2.5 本章小结 | 第25-27页 |
3 设备驱动依赖接口演化与自动更新方法研究 | 第27-41页 |
3.1 设备驱动依赖接口演化 | 第27-30页 |
3.1.1 内核函数变化 | 第27-28页 |
3.1.2 内核宏变化 | 第28-29页 |
3.1.3 内核数据类型变化 | 第29页 |
3.1.4 内核接口类型变化 | 第29-30页 |
3.2 设备驱动自动更新方法 | 第30-40页 |
3.2.1 整体构想 | 第30-31页 |
3.2.2 设备驱动更新模型 | 第31-32页 |
3.2.3 设备驱动依赖接口分析 | 第32-36页 |
3.2.4 设备驱动依赖接口差异分析 | 第36-37页 |
3.2.5 设备驱动更新辅助信息生成 | 第37-39页 |
3.2.6 设备驱动更新操作 | 第39-40页 |
3.3 本章小结 | 第40-41页 |
4 设备驱动自动更新工具原型设计与实现 | 第41-61页 |
4.1 开发平台及编程环境 | 第41页 |
4.2 原型总体设计 | 第41-42页 |
4.3 内核源码抽象语法树的生成与导出 | 第42-47页 |
4.3.1 GCC插件之初始化模块设计 | 第43-45页 |
4.3.2 GCC插件之抽象语法树提取模块设计 | 第45-46页 |
4.3.3 GCC插件的编译与加载 | 第46-47页 |
4.4 设备驱动依赖接口初步提取 | 第47-51页 |
4.4.1 抽象语法树宏观分析与处理 | 第47-48页 |
4.4.2 设备驱动函数声明树的分析 | 第48-51页 |
4.5 设备驱动相关头文件分析及依赖接口信息提取 | 第51-55页 |
4.5.1 设备驱动相关头文件分析 | 第51页 |
4.5.2 设备驱动依赖接口信息提取 | 第51-55页 |
4.6 设备驱动依赖接口差异分析和辅助更新信息生成 | 第55-59页 |
4.6.1 设备驱动依赖接口差异分析 | 第55-56页 |
4.6.2 设备驱动更新辅助信息生成 | 第56-59页 |
4.7 本章小结 | 第59-61页 |
5 原型测试与结果分析 | 第61-71页 |
5.1 测试环境与测试方案 | 第61页 |
5.2 网卡驱动辅助更新测试验证 | 第61-67页 |
5.3 多设备驱动更新测试及结果分析 | 第67-70页 |
5.4 相关研究工作比较讨论 | 第70页 |
5.5 本章小结 | 第70-71页 |
6 总结与展望 | 第71-73页 |
6.1 工作总结 | 第71-72页 |
6.2 研究展望 | 第72-73页 |
参考文献 | 第73-77页 |
作者简历及攻读硕士学位期间取得的研究成果 | 第77-81页 |
学位论文数据集 | 第81页 |