
资源介绍
本书旨在为读者提供一套完整的嵌入式项目开发流程,帮助开发者避免从零开始开发微控制器软件项目。书中涵盖从需求收集到项目发布的全流程,注重实用性和可操作性,通过具体案例(如 GM6000 数字加热器控制器)详细阐述嵌入式项目开发的各个环节。
核心章节内容
引言:介绍软件开发生命周期(规划、构建、发布),强调前期规划和架构设计的重要性,说明本书适用人群及所需知识技能,如 C 和 C++ 编程基础。
需求:讲解如何收集和定义正式需求,区分功能需求与非功能需求,介绍需求的来源(产品经理、系统工程师等)及收集过程中的挑战,还给出了 GM6000 的初始需求示例。
分析:阐述分析阶段需创建的系统架构、软件架构和需求跟踪矩阵,涉及硬件接口、性能约束、编程语言选择、子系统定义等多个方面,以 GM6000 为例进行说明。
软件开发计划:说明如何制定软件开发计划,包括项目独立流程和标准、项目特定流程和标准等,明确角色职责、软件项、文档输出等内容。
准备工作:介绍项目开发所需的基础设施准备,如 GitHub 项目搭建、持续集成需求、Jenkins 配置等。
基础架构:涉及软件配置管理仓库、源代码组织、构建系统和脚本、骨架应用程序等基础架构搭建内容。
应用构建(主模式):讲解使用主模式构建应用的方法,包括操作系统抽象层、硬件抽象层等,以及如何实现主模式和处理应用变体。
持续集成构建:详细描述持续集成构建脚本的示例,包括 CI 服务器、目录组织、命名约定等,以 GM6000 的 Windows 和 Linux 构建脚本为例。
需求再探讨:分析在构建阶段可能出现的新需求来源,如故障模式与影响分析等,讨论需求与设计陈述的区别,以及需求跟踪的方法。
任务管理:将软件开发工作分解为任务,每个任务包含需求、详细设计、源代码和单元测试、代码审查、合并等环节,探讨任务的定义、粒度及与敏捷开发的结合。
即时详细设计:强调在开发过程中即时进行详细设计的重要性,通过多个实例说明如何进行子系统设计、驱动设计等,并介绍设计审查的流程和 artifacts。
编码、单元测试和拉取请求:阐述编码和单元测试的流程,包括代码提交策略、拉取请求的机制和粒度,以 I2C 驱动和屏幕管理器为例说明。
集成测试:介绍集成测试的规划、执行等流程,讨论烟雾测试和模拟器在集成测试中的应用。
板级支持包(BSP):解释 BSP 的作用,包括封装编译器工具链、MCU 数据手册和板级原理图等,介绍 BSP 的结构、注意事项及引导程序相关内容。
驱动程序:讲解如何设计与特定硬件平台解耦的驱动程序,介绍绑定时间、公共接口、硬件抽象层等概念及相关设计模式,如外观模式、关注点分离、多态等。
发布:描述项目发布阶段的工作,包括收紧变更管理、生成软件物料清单、创建异常列表、生成发布说明、部署应用、完成 QMS 交付物及归档构建工具等。
附录内容
附录提供了丰富的补充资料,包括源代码入门指南、示例代码运行方法、数据模型架构介绍、LHeader 和 LConfig 模式、CPL C++ 框架、NQBP2 构建系统、RATT 工具以及 GM6000 相关的需求、系统架构等详细文档。
特色与价值
实用性强:提供具体的开发流程、模板和示例,可直接应用于实际项目开发,避免重复劳动。
全面性:涵盖嵌入式项目开发的全生命周期,从需求到发布的各个环节均有详细讲解。
可复用性:书中的代码和文档模板可根据实际需求进行复用和适配,节省开发时间。
兼顾不同场景:内容适用于非 regulated 行业和 regulated 行业,提供了灵活的应用方式。
本书适合嵌入式软件架构师、工程师、经理等相关人员阅读,无论是新手还是有经验的开发者,都能从中获取实用的开发知识和技能,提高嵌入式项目开发的效率和质量。