"EDS事业部的嵌入式软件C语言编程规范文档,旨在为融硅思创(北京)科技有限公司的嵌入式软件部提供一套统一的编程标准,以确保代码的质量和可维护性。这份规范涵盖了工程命名、工程文件结构、版本发布、头文件管理、函数设计等多个方面。"
1. 规范制定说明
- 前言: 该规范的制定是为了提升团队协作效率,减少由于编码风格不一致导致的沟通成本和潜在错误。
- 原则: 强调清晰、简洁和一致性,以提高代码可读性和可维护性。
- 术语: 文档中可能涉及的专业术语,如工程、接口、头文件等,需有明确的定义。
2. 工程名称
- 命名建议: 工程名称应简洁明了,长度控制在10个字符以内,以便快速识别和管理。
- 文件命名规则: 所有与工程相关的文件,如编译输出文件,均应使用与工程名称相同的基名,以保持一致性。
3. 工程文件
- 文件夹划分: 工程文件至少分为四个部分:App(应用程序)、Bsp(板级支持包)、Driver(驱动程序)、Output(输出文件),以清晰地组织代码结构。
4. 版本发布
- 版本命名: 遵循《版本命名规则.pdf》进行规范命名,确保版本标识的一致性。
- 自测流程: 在提交测试之前,软件版本需经过严格的内部自测,确保基本功能的正确性。
- 变更记录: 每次版本更新都要详细记录变更内容,便于追踪问题。
- 问题单关联: 源码变更需与问题单号对应,方便问题追踪和解决。
- 发布内容: 正式发布的版本包应包含必要的组件,如bootloader、应用程序、用户界面、升级指南和变更记录。
- 发布流程: 遵循标准化流程,确保版本发布的稳定性和可靠性。
5. 头文件
- 内容要求: 头文件主要用于声明接口,不应包含实现细节。
- 职责单一: 每个头文件应专注于一个特定的职责,避免过度复杂化。
- 同名头文件: 每个.c文件应有一个同名的.h文件,用于声明对外的接口。
- 循环依赖: 禁止头文件之间的循环依赖,以减少编译问题。
- 定义变量: 不应在头文件中定义全局变量,以防止意外的副作用。
- 接口引用: 只能通过包含头文件来使用其他.c文件提供的接口,避免直接使用extern声明。
- include保护: 每个头文件应包含内部#define保护,防止多次包含。
6. 函数
- 单一职责: 每个函数应专注于完成一个特定的任务,提高代码可读性。
- 代码复用: 通过提炼函数减少代码重复,提高代码效率。
- 函数长度: 新增函数的长度限制在50行(非空非注释行),便于理解和调试。
- 可重入函数: 可重入函数应避免使用共享变量,必要时使用互斥机制保护。
- 参数检查: 调用函数时,调用者负责参数合法性,函数内部通常不进行二次检查。
这套编程规范旨在提高代码质量,降低维护成本,同时促进团队成员间的合作效率。通过遵循这些规则,开发者可以创建出更加可靠、可扩展和易于维护的嵌入式软件系统。