嵌入式软件编程规范(自用)

前言

        准备入行嵌入式,为了养成良好的编程习惯,提高代码的可读性与易维护性,定义一个个人使用的编程规范,希望自己以后使用该规范进行编程,同时也应尊重他人代码规范。

结构、使用规范

  1. 使用空格代替制表符,四字节空格为一个缩进;
  2. 尾行注释时使用12个缩进,语句过长超过12个缩进就在末尾加一个缩进即可;
  3. 函数与函数之间、代码块与代码块之间、不同含义语句上下文之间要留有空行;
  4. 使用5个缩进作为文本行开始的偏移量;
  5. if、for、while、switch与左括号之间空一格括号里不需要;
  6. 自加、自减等单目运算符与变量之间不应加空格;
  7. 无特殊情况使用--i或者++i,尽量不使用i++与i--;
  8. 使用 . 与 -> 时不应有空格;
  9. 比较操作符,赋值操作符等双目运算符与变量之间要留有空格;
  10. 语句中,与;号后面要加空格;
  11. 按顺序声明局部变量(结构体、枚举、整数、浮点数,无符号优先);
  12. 在同一行中声明所有相同类型的局部变量;
  13. 程序块的分界符(如大括号‘{’和‘}’ )应各独占一行并且位于同一列;
  14. 对变量的定义、分支语句(条件分支、循环语句等)、功能代码块必须编写注释;
  15. 不要使用stdbool.h库。分别使用1或0表示真或假;
  16. 统一使用 stdint.h 库中数据类型定义变量;
  17. 当函数可以接受任何类型的指针时,总是使用void *,不要使用uint8_t *。函数在实现时必须注意正确的类型转换;
  18. 永远不要将布尔处理的变量与0或1进行比较。用NOT(!)代替;
  19. 文件底部要留有空行;
uint8_t bFlag							/*!< 标志位 */

void vShiLiOne(void)
{
    for (uint8_t i = 0; i < 8; ++i)
    {
    	if (i >= 5)
        {
        	bFlag = 0x01;
        }
    }
}

uint16_t usShiLiTwo(uint32_t ulData, float *pfBuff)
{
	if (!bFlag)
    {
        return 0;
    }

    return 1;
}

命名规范

变量命名以及函数命名使用前缀加帕斯卡命名(单词首字母大写),前缀见下表:

变量类型

前缀

举例

变量类型

前缀

举例

uint8_t

uc

ucData

int8_t

c

cData

uint16_t

us

usData

int16_t

s

sData

uint32_t

ul

ulData

int32_t

l

lData

uint8_t *

ucp

ucpData

int8_t *

cp

cpData

uint16_t *

usp

uspData

int16_t *

sp

spData

uint32_t *

ulp

ulpData

int32_t *

lp

lpData

uint8_t 数组

uca

ucaData

int8_t 数组

ca

caData

uint16_t 数组

usa

usaData

int16_t 数组

sa

saData

uint32_t 数组

ula

ulaData

int32_t 数组

la

laData

float

f

fData

double

d

dData

bool(uint8_t)

b(尽量不用)

bData

void *

px

pxData

static

s_命名

s_Data

const

c_命名

c_Data

全局

g_命名

g_Data

静态定义函数

prv

prvData()

有返回函数

返回值类型

ucData

无返回函数

v

cData()

结构体

t

tLed

枚举

e

eLed

宏定义、结构体、枚举使用单独规范

宏定义:全部大写、单词与单词之间有下划线分开,末尾以_MACRO结尾,带参宏定义使用_FUNC(也可以不加后缀);

结构体:全部大写、单词与单词之间有下划线分开,末尾以_STRUCT结尾;

枚举:全部大写、单词与单词之间有下划线分开,末尾以_ENUM结尾;

文件规范

文件(.c与.h)说明

/**
 * @file            xxx.h或xxx.c
 * @brief           文件说明
 * @author          作者
 * @date            时间
 * @copyright       (C) Copyright 2024,XXX,All Rights Reserved.
 *
 * # update (更新日志)
 *
 * Date           Author       Notes
 * 时间           作者          版本
 *
 */

头文件格式

#ifndef __BSP_ADC_H__
#define __BSP_ADC_H__

#include "main.h"

//--------------------------------------------[Config]----------------------------------------------------

//--------------------------------------------[Statement]-------------------------------------------------

//--------------------------------------------[Function]--------------------------------------------------


#endif	/*__BSP_ADC_H__*/

//===========================================  End Of File  ===========================================//

文本结束

//===========================================  End Of File  ===========================================//

注释规范

简单说明 --- 块注释

/**
*
*/

函数注释 --- 可做删减,有则加无则删

                    
/**
 * @brief           系统时钟初始化
 * @param[in]       无
    @arg            无
 * @param[out]      无
 * @retval          无
    @brf            无
 * @author          FQY
 * @data            2022-06-01
*/

结构体枚举注释

/**
 * @brief 详细描述
 */

注释 --- 函数外部注释、尾行注释

/*!< 定义一个整型变量a */

注释 --- 函数内部注释

/* 定义一个整型变量a */
尾行注释依然使用
/*!< 定义一个整型变量a */

注意事项

  1. 不要初始化静态和全局变量为0(或NULL),编译器会处理;
  2. 指针与空值进行比较,指针与指针不进行比较;
  3. 函数不修改指针所指向的内存,则使用const作为指针;
  4. 不修改函数的形参或变量时,则使用const修饰;
  5. 宏定义时用圆括号保护输入参数,用括号保护最终的宏计算;

        

  • 29
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 嵌入式程序设计说明是指对于某种嵌入式设备所进行的程序设计的详细说明的文档。嵌入式设备是指内部不像个人计算机那样有操作系统和很大的存储器,通常是实时系统、嵌入式芯片板、无线模块、单片机、控制器等一些小型硬件设备。 在嵌入式程序设计时,需要考虑到硬件的复杂性、内存的限制、功耗的要求、实时性等特定的技术需求。设计人员应该根据这些特定的需求制定方案,选择合适的集成开发环境(IDE)、调试工具、程序设计语言等,来完成嵌入式程序的编写、调试和验证。 嵌入式程序设计说明 doc中包括的内容主要有:设计需求文档、程序设计文档、调试说明、测试文档等。设计需求文档是通过对嵌入式设备需求的分析,编写程序设计的详细说明;程序设计文档包括软件架构、编程语言、接口定义、算法实现、数据结构等细节的说明;调试说明包括调试方法、调试工具等;测试文档包括测试环境、测试方法、测试报告等。 嵌入式程序设计说明 doc对于软件工程师和硬件工程师的工作十分重要。它对于开发嵌入式设备的应用程序十分关键,可以保证程序的可控性,帮助开发人员更好地掌握程序的实现方式和性能特征。 ### 回答2: 嵌入式程序设计说明 doc 是一份非常重要的文档,它包含了嵌入式系统的程序设计细节和要求。在进行嵌入式系统的开发过程中,嵌入式程序设计说明 doc 可以帮助我们更好地理解该系统的需求和设计目标,并提供了指导和标准,以确保开发出高质量的嵌入式系统。 嵌入式程序设计说明 doc 中需要包括一些重要的内容。首先,它应该明确系统的功能需求和技术规格,包括硬件和软件方面的要求。其次,它应该提供详细的设计文档,包括流程图、数据流图、数据结构和算法。这些文档可以协助工程师更好地理解系统设计,以及在开发过程中快速定位问题。此外,嵌入式程序设计说明 doc 还应该包括代码规范和编码标准。这些标准可以提高代码的可读性和可维护性,从而减少开发中出现的错误和故障。 在完成嵌入式程序设计说明 doc 后,程序员需要紧密遵守该文档中的要求和标准,以确保系统在设计和开发过程中能够正常运行,并且具有稳定、高效、安全、可靠、易于更新等特点。因此,编写嵌入式程序设计说明 doc 是嵌入式系统设计工程师的一项非常重要的任务。 ### 回答3: 嵌入式程序设计说明(doc)是一份技术性文档,旨在为嵌入式程序员提供设计和开发嵌入式系统的指导。这个文档包含了各种措施来确保嵌入式软件的质量、可靠性和可维护性。 该文档通常包括以下几个部分: 1. 介绍:该部分一般会描述项目的背景信息、目的和重要程度。 2. 系统架构:该部分描述了嵌入式系统的构建和组件之间的交互方式。 3. 设计文档:该部分解释了程序的模块化设计和功能细节,以及开发过程中遇到的任何问题和解决方案。 4. 编码规范:该部分针对项目中编写的代码,包含了编码规范、格式约定和命名规则等建议。 5. 测试说明:该部分详细介绍如何测试嵌入式程序的各个方面,以确保程序符合预期要求。 6. 维护文档:该部分包含了如何维护嵌入式程序以及更新和改进程序的指南。 总之,嵌入式程序设计说明(doc)是重要的一个文献资料,对于嵌入式系统的设计和开发具有至关重要的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值