| 模块化程序设计思想 | 
                              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的配置脚本 |