模块化程序设计思想 |
1、 模块化程序设计的核心
讲解什么形式的代码才算是模块化的代码。
2、 代码分层的思想
(1)代码分层思路
(2)嵌入式软件推荐的分层架构
3、 代码解耦的一些基础方法
(1)封装模块文件夹
(2)程序文件的分割
(3)函数封装
(4)static函数限制函数使用范围
(5)static全局变量限制变量使用范围
(6)减少全局变量的使用 |
嵌入式分层设计 |
1、 嵌入式架构设计
(1)某产品的开发视图
(2)避免循环依赖
(3)逻辑视图
(4)4+1视图在嵌入式设计文档中取舍
(5)设计文档的度与量
2、 嵌入式分层设计的追求――可移植
(1)硬件封装的基本思想
(3)硬件模块的分离
3、 硬件接口设计
(1)提取硬件抽象
(2)接口文档的撰写 |
底层硬件API封装模板 |
1、 模板结构
(1)设备硬件结构体类型定义
(2)设备结构体配置
(3)设备个数宏定义
(4)设备实现需要的全局变量
(5)设备功能实现代码
2、 利用老模板实现新硬件封装
3、 中断处理的封装:回调函数
4、 硬件复用设备对上层的不可见封装
5、 硬件耦合设备对上层的不可见封装
6、 模板的分类 |
PC模拟底层硬件 |
1、 PC版与真实硬件环境的不同
2、 PC版测试接口
3、 PC版模拟中断接口
4、 PC版线程互斥处理 |
业务层分层架构 |
1、 可读性封装
2、 提取业务抽象
(1)抽象的原则
(2)案例:命令收发与命令业务处理的分离
3、 同步通讯的限制性封装
4、 异步通信的限制性封装
5、 异步设备封装成同步设备
6、 分层设计总结 |
PC模拟运行业务层与自动化测试 |
1、 测试封装
(1)测试代码的可读性封装
(2)测试代码的易用性封装
(3)设备测试打桩接口
(4)利用测试接口定位问题
2、 测试流程
3、 测试用例文档撰写
4、 测试用例代码撰写
(1)利用测试套
(2)使用打桩工具
(3)测试延时和模拟系统延时的区别 |
测试工具 |
1、自动化测试工具gTest
(1)gTest的断言
(2)gTest的测试结果文件
2、打桩工具mockcpp
3、持续集成工具CruiseControl
(1)什么是持续集成
(2)CruiseControl的工作原理
(3)CruiseControl的配置脚本 |