摘要 | 第5-6页 |
Abstract | 第6-7页 |
第一章 绪论 | 第12-16页 |
1.1 研究背景与意义 | 第12-13页 |
1.1.1 嵌入式操作系统的开发现状 | 第12页 |
1.1.2 基于MDA的新型软件开发方法 | 第12-13页 |
1.1.3 研究意义 | 第13页 |
1.2 国内外研究现状 | 第13-15页 |
1.2.1 基于MDA方法嵌入式领域代码生成现状 | 第14-15页 |
1.3 本文研究内容 | 第15页 |
1.4 本文组织结构 | 第15-16页 |
第二章 MDA相关理论及技术 | 第16-24页 |
2.1 MDA简介 | 第16页 |
2.2 MDA主要核心标准介绍 | 第16-19页 |
2.2.1 统一建模语言(UML) | 第16-17页 |
2.2.3 元对象设施(MOF) | 第17-19页 |
2.3 平台无关模型和平台相关模型 | 第19-20页 |
2.4 模型驱动开发流程 | 第20-21页 |
2.4.1 MDA开发过程介绍 | 第20-21页 |
2.5 模型映射 | 第21-23页 |
2.5.1 模型映射简介 | 第21-22页 |
2.5.2 模型映射过程分析 | 第22-23页 |
2.6 自动代码生成 | 第23页 |
2.7 本章小结 | 第23-24页 |
第三章 内核硬件无关层自动代码生成需求分析与设计 | 第24-35页 |
3.1 嵌入式操作系统的层次划分 | 第24页 |
3.2 自动代码生成相关技术 | 第24-26页 |
3.3 嵌入式领域代码生成的难点 | 第26-27页 |
3.4 基于MDA的嵌入式系统内核硬件无关层代码生成方案 | 第27-28页 |
3.5 实现技术及工具介绍 | 第28-32页 |
3.5.1 代码生成技术分析 | 第28页 |
3.5.2 静态代码生成工具介绍 | 第28-31页 |
3.5.2.1 Acceleo体系结构 | 第29-30页 |
3.5.2.2 Acceleo代码生成基本原理 | 第30-31页 |
3.5.3 动态代码生成工具介绍 | 第31-32页 |
3.6 自动代码生成设计方案 | 第32-34页 |
3.6.1 代码生成器模型 | 第32-33页 |
3.6.2 代码生成器工作原理 | 第33-34页 |
3.7 本章小结 | 第34-35页 |
第四章 内核硬件无关层自动代码生成实现 | 第35-59页 |
4.1 静态结构模型元素转换规则 | 第35-41页 |
4.1.1 包的转换规则及具体实现 | 第35-37页 |
4.1.1.1 包的转换规则 | 第35-36页 |
4.1.1.2 包的转换规则具体实现 | 第36-37页 |
4.1.2 类的转换规则及具体实现 | 第37-39页 |
4.1.2.1 类的转换规则 | 第37-38页 |
4.1.2.2 类的转换规则具体实现 | 第38-39页 |
4.1.3 关联关系的转换规则及具体实现 | 第39-41页 |
4.1.3.1 关联关系的转换规则 | 第39-40页 |
4.1.3.2 聚合、组合关系的转换规则 | 第40页 |
4.1.3.3 关联关系的转换规则具体实现 | 第40-41页 |
4.2 ASL语言的文法实现 | 第41-52页 |
4.2.1 Program模块的实现 | 第42-43页 |
4.2.2 Statement模块的实现 | 第43-48页 |
4.2.2.1 数组定义语句(Array_Define)的实现 | 第44页 |
4.2.2.2 赋值语句(Assignment_State)的实现 | 第44-45页 |
4.2.2.3 条件语句(If)的实现 | 第45页 |
4.2.2.4 循环语句(For)的实现 | 第45-46页 |
4.2.2.5 Loop语句的实现 | 第46页 |
4.2.2.6 Break语句的实现 | 第46页 |
4.2.2.7 对象创建语句的实现 | 第46-47页 |
4.2.2.8 关系创建语句的实现 | 第47页 |
4.2.2.9 Return语句的实现 | 第47-48页 |
4.2.3 Expression模块的实现 | 第48-50页 |
4.2.3.1 算术运算(Arithmetic)表达式的实现 | 第48-49页 |
4.2.3.2 逻辑运算(Logic)表达式的实现 | 第49-50页 |
4.2.4 Type模块 | 第50页 |
4.2.5 文法规则优化 | 第50-52页 |
4.2.5.1 语言的二义性问题 | 第50-52页 |
4.2.5.2 递归的产生式问题 | 第52页 |
4.3 ASL到C语言的映射规则实现 | 第52-57页 |
4.3.1 基本的逻辑控制结构映射规则 | 第52-53页 |
4.3.2 函数映射规则 | 第53页 |
4.3.3 对象操作相关语句映射规则及实现 | 第53-56页 |
4.3.3.1 对象操作相关语句映射规则 | 第53-54页 |
4.3.3.2 对象创建语句映射规则实现过程 | 第54-55页 |
4.3.3.3 对象关联语句映射规则实现过程 | 第55-56页 |
4.3.4 Expression的映射规则 | 第56-57页 |
4.4 模板文件的总体结构 | 第57-58页 |
4.5 本章小结 | 第58-59页 |
第五章 PORT和DIO外部设备驱动的设计与实现 | 第59-72页 |
5.1 PORT和DIO模块在I/O驱动中所处的位置 | 第59页 |
5.2 PORT模块的设计与实现 | 第59-67页 |
5.2.1 PORT模块概述 | 第59-61页 |
5.2.2 模块设计 | 第61-63页 |
5.2.2.1 数据类型与结构 | 第61-62页 |
5.2.2.2 运行时数据结构 | 第62-63页 |
5.2.2.3 模块内全局变量 | 第63页 |
5.2.3 PORT模块主要接.实现 | 第63-67页 |
5.2.3.1 Port_Init函数 | 第63-64页 |
5.2.3.2 Port_SetPinDirection函数 | 第64-65页 |
5.2.3.3 Port_SetPinMode函数 | 第65-66页 |
5.2.3.4 Port_RefreshPortDirection函数 | 第66-67页 |
5.3 DIO模块的设计与实现 | 第67-71页 |
5.3.1 DIO模块概述 | 第67-68页 |
5.3.1.1 模块功能 | 第68页 |
5.3.1.2 错误和异常值定义 | 第68页 |
5.3.2 模块主要数据结构设计 | 第68-69页 |
5.3.3 DIO模块主要接口实现 | 第69-71页 |
5.3.3.1 Dio_ReadPort函数 | 第69-70页 |
5.3.3.2 Dio_WritePort函数 | 第70-71页 |
5.4 本章小结 | 第71-72页 |
第六章 运行及测试 | 第72-84页 |
6.1 测试要点分析 | 第72-73页 |
6.1.1 静态代码生成规则测试要点 | 第72页 |
6.1.2 动态代码生成规则测试要点 | 第72-73页 |
6.1.3 PORT和DIO驱动程序测试要点 | 第73页 |
6.2 搭建软硬件测试平台 | 第73-74页 |
6.3 静态代码生成规则测试结果及分析 | 第74-77页 |
6.3.1 包的模型转换结果 | 第74-75页 |
6.3.2 类、关联关系模型的转换结果 | 第75-77页 |
6.4 动态代码生成规则测试结果及分析 | 第77-82页 |
6.4.1 ASL代码编辑环境生成情况 | 第77-79页 |
6.4.2 代码生成测试结果及分析 | 第79-82页 |
6.4.2.1 测试用例一结果及分析 | 第79-80页 |
6.4.2.2 测试用例二结果及分析 | 第80-81页 |
6.4.2.3 测试用例三结果及分析 | 第81-82页 |
6.5 PORT和DIO模块测试结果 | 第82-83页 |
6.6 本章小结 | 第83-84页 |
第七章 工作总结与展望 | 第84-86页 |
7.1 本文工作总结 | 第84页 |
7.2 本文存在的问题及后续展望 | 第84-86页 |
致谢 | 第86-87页 |
参考文献 | 第87-90页 |