C语言设计规范课件.pptx

上传人:醉**** 文档编号:13452129 上传时间:2022-04-29 格式:PPTX 页数:19 大小:1.13MB
返回 下载 相关 举报
C语言设计规范课件.pptx_第1页
第1页 / 共19页
C语言设计规范课件.pptx_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《C语言设计规范课件.pptx》由会员分享,可在线阅读,更多相关《C语言设计规范课件.pptx(19页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、单片机程序设计规范单片机程序设计规范内部培训内部培训培训内容:单片机程序设计规范培训目的:让员工培养好的编程习惯,了解、掌握编程规范;统一部门编程风格,保证程序编写质量,提高程序的可移植性和维护性单片机程序设计规范一、程序质量的评估 程序的优劣可以从两个方面进行评估,定量指标和定性指标。 (1)定量指标包括: 1) 程序代码执行效率; 2) 程序占用资源多少。 2022-4-29单片机程序设计规范(2)定性指标包括: 1) 可调试性,即是否方便排除程序语法错误; 2) 可测试性,即是否方便验证程序功能的正确性; 3) 可维护性,即是否方便程序的修改和升级; 4) 可移植性; 5) 可读性。 2

2、022-4-29二、程序架构 应用层、 界面层和底层驱动层1) 底层驱动层主要包含直接和硬件相关的驱动程序,如数码管显示、按键、峰鸣器、继电器和电机控制等。底层的各个模块间要保持各自的独立性,不产生直接的数据交互,底层也不直接访问应用层,如果有需要,都要通过界面层进行数据交互2) 界面层主要提供数据交互,为应用层和底层驱动之间以及底层驱动层各模块之间提供数据的交互。 3) 应用层主要完成具体功能的实现,它要通过界面层控制底层驱动层各模块来完成所需功能,而不能越过界面层直接访问底层驱动层。所有的用户接口要在应用层来实现. 2022-4-29三、设计基本原则 1) 尽量减少各个子程序功能模块间的耦

3、合度(耦合度是指一个程序的执行对另一个程序的影响力),保证各自的独立性。一般情况下,建议子程序模块功能的划分要尽可能细化,功能尽量单一,减少子程序模块间的数据交互。 2) 在满足功能需求的情况下,可适当牺牲代码的执行速度,以保证程序的透明度。 3) 主要子程序模块间的交互,要通过特定的界面跟应用层进行沟通,可使用 FIFO(Firstin,Firstout)或是Buffer两种方式。每种子程序模块都可以有自己的FIFO。例如:就按键来说,一般有Key buffer、Key FIFO或直接进入AP FIFO 三种设计方式2022-4-294) 每个子程序模块只能有唯一一个程序入口地址在程序的首部

4、,只能有唯一一个程序出口地址在程序的尾部。 5) 上电复位时要对所有的RAM 空间进行初始化(建议用户寄存器清零,系统寄存器进行必要设定),不要使用未经初始化的变量。RAM 未经过完整的初始化,容易导致程序执行的不确定性,这一不良现象往往在批量生产中有所体现。( 这点是工程师经常犯错的地方,须特别注意) 6) 系统中如果需要等待一些未知的应答信号,如通信或等待输入信号时,必须进行超时或异常处理,以防止程序进入“死等”状态。2022-4-297) 通过对系统数据结构的划分与组织的改进,以及对程序算法的优化来提高空间效率。这种方式是解决软件空间效率的根本办法。8) 保证循环体内的工作量最小化。应仔

5、细考虑循环体内的语句是否可以放在循环体之外,使循环体内工作量最小,从而提高程序的执行效率。9) 在多重循环中,应将最忙的循环放在最内层。2022-4-2910) 中断处理程序应尽量短。有效的作法为:在中断中进行标记,在主程序中进行处理。但一些实时性要求较高的程序例外。此外,进入中断时应该保存涉及到的变量和寄存器。 11) 看门狗的正确使用。看门狗主要用于微控制器死机时的时间溢出复位,需要程序适时清除。正确的处理方式为:整个系统程序中尽量保证只有一处清看门狗位置,而且应处在主循环的主干位置。切记不可在定时中断中清狗,因为微控制器有时只是在主循环中死掉。2022-4-29四、排版风格1、 程序采用

6、缩进风格编写,缩进为1个Tab键,1个Tab键定义为8个空格位。 2、 程序中的标号要从第一列开始书写。以“.”开头的预编译命令也要从第一列开始书写,其他预编译命令采用缩进风格编写。 3、定义变量或常量时,变量名或常量名与命令符之间使用2个Tab键(相当于16个空格位)分开,命令符与后面的操作数用1个Tab键(相当于8个空格位)分开。4、程序语句后面若有注释,所有的注释要遵守上下对齐的原则。 2022-4-29五、注释1. 程序应该包括两个部分注释,说明部分和语句注释。一般情况下,源程序有效注释量必须在30以上。 2. 说明部分: 1) 源文件说明部分位于每个源文件的最前面,主要描述:文件名、

7、作者、生成日期、联络方式、功能描述、版本号、软硬件平台、版权说明、修改记录等的简要说明,以英文书写。2) 子程序说明部分位于每个子程序的最前面,主要描述:子程序名称、功能、设计原理、所用变量、入口条件、出口信息、调用模块、堆栈层数、影响资源、算法简述、使用说明和修改记录等。2022-4-293. 边写代码边注释,修改代码的同时修改相应注释,以保证注释与代码的一致性。不再有用的注释要删除。 4. 要避免在注释中使用缩写,特别是非常用缩写。 5. 程序在必要的地方必须有注释,注释要准确、易懂、简洁。注释要有意义,如果有需要,还要详细描述相关含义。6. 注释格式尽量统一,对多行注释建议使用 “/*

8、*/”,对单行的注释建议使用 “;” 7. 对有含义的变量、常量,如果其命名不是充分自注释的,在声明时都必须加以注释,说明其含义。2022-4-29六、命名规则1. 变量的名称要采用有意义的英文单词或缩写,如key、buffer2. 局部无特殊含义变量i,j,k等3. 临时变量tem、tmp等开头,长度、计数采用len、num、count等4. 在定义部分要加入注释来说明变量的含义。5. 函数名用小写字母命名,每个词的第一个字母大写,并将模块标识加在最前面。 2022-4-29七、函数设计规范(1)函数的基本要求: 正确性:程序要实现设计要求的功能。 稳定性和安全性:程序运行稳定、可靠、安全。

9、 可测试性:程序便于测试和评价。 规范可读性:程序书写风格、命名规则等符合规范。 扩展性:代码为下一次升级扩展留有空间和接口。 全局效率:软件系统的整体效率高。 局部效率:某个模块子模块/函数的本身效率高。 2022-4-29(2)编制函数的基本原则: 单个函数的规模尽量限制在200 行以内(不包括注释和空行)。一个 函数只完成一个功能。 函数局部变量的数目一般不超过510 个。 函数内部局部变量定义区和功能实现区 (包含变量初始化)之间空一行。 函数名应准确描述函数的功能。通常使用动宾词组为执行某操作的函数命名。 函数的返回值要清楚明了,尤其是出错返回值的意义要准确无误。 不要把与函数返回值

10、类型不同的变量,以编译系统默认的转换方式或强制的转换方式作为返回值返回。 减少函数本身或函数间的递归调用。 2022-4-29八、模块化编程规范简介模块化编程主要实现方法:宏定义、函数、文件1)宏定义是C语音的一种预处理的方法,可以通过宏定义实现简单的模块预处理2)利用函数形式实现某个基础功能。通过形参、实参、返回值等实现调用3)文件即是一个.c 文件和一个.h 文件的结合,头文件(.h)中是对于该模块接口的声明;这一条概括了模块化的实现方法和实质:将一个功能模块的代码单独编写成一个.c 文件,然后把该模块的接口函数放在.h 文件中.2022-4-29(1)模块化编程设计步骤 1) 、创建头文

11、件 在模块化编程中,往往会有多个C 文件,而且每个C 文件的作用不尽相同。在我们的C 文件中,由于需要对外提供接口,因此还必须有一些函数或者是变量提供给外部其它文件进行调用。对于每一个模块都有相应的.c 文件和.h 文件,为了阅读调试方便,原则上.c 文件和.h 文件同名,如delay.c 和delay.h头文件的作用可以称其为一份接口描述文件。2022-4-292)代码封装 将需要模块化的进行代码封装,如:串口通信模块,将串口初始化、数据接收、数据发送函数进行封装3)编译、调试、测试4)使用源文件(将文件加到工程之中) 将.c 文件添加到工程之中,同时在需要调用.h 文件中的宏或函数的.c 文件中将.h 文件包含进去(.h 文件中的宏和函数可以在.c 文件中自由调用)。 2022-4-29 (2 )模块化设计注意事项 1)某模块提供给其它模块调用的外部函数及数据需在.h 中文件中冠以extern 关键字声明; 2) 模块内的函数和全局变量需在.c 文件开头冠以static 关键字声明; 3) 永远不要在.h 文件中定义变量!2022-4-29

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com