- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机程序设计编程规范
本规范适用于松翰科技8-bitMCU 部门汇编程序编写准则,同样适用于代理商及重要客户工
程师编程规范参考。本规范的目的为统一编程风格,保证程序编写质量,提高程序的可移植
性和维护性。
大部分的规范严格,品质要求高的软件公司对员工编写代码的风格都有硬性规定,例如缩排的
使用,TAB 的长度,函数变量的命名方式. 这些规定的明显好处是可以统一规范不同程序员所
编制的代码,提升程序代码的可读性与可维护性,同时统一格式的编程风格也为 code review
提供方便.
目录
一、 设计总则
二、排版风格
三、程序可读性及可维护性
四、注释
五、变量命名规则
六、常量命名规则
七、标号命名规则
八、文件命名规则及文件分割
九、标准程序模块
十、附录
一、设计总则
一、设计总则
一一、、设设计计总总则则
1
1
11.程序质量的评估
程序的优劣可以从两个方面进行评估,定量指标和定性指标。
定量指标包括:
1) 程序代码执行效率;
2) 程序占用资源多少。
定性指标包括:
1) 可调试性,即是否方便排除程序语法错误;
2) 可测试性,即是否方便验证程序功能的正确性;
3) 可维护性,即是否方便程序的修改和升级;
4) 可移植性;
5) 可读性。
2
2
22、程序架构
为了便于维护和移植,推荐使用层次化的软件设计方法。可把整个软件分为三层:应用层、
界面层和底层驱动层。各层之间的关系如下图所示。
层次化设计说明:
1) 底层驱动层主要包含直接和硬件相关的驱动程序,如数码管显示、按键、峰鸣器、
继电器和电机控制等。底层的各个模块间要保持各自的独立性,不产生直接的数据交互,底
层也不直接访问应用层,如果有需要,都要通过界面层进行数据交互。
2) 界面层主要提供数据交互,为应用层和底层驱动之间以及底层驱动层各模块之间提
供数据的交互。
3) 应用层主要完成具体功能的实现,它要通过界面层控制底层驱动层各模块来完成所
需功能,而不能越过界面层直接访问底层驱动层。所有的用户接口要在应用层来实现.
4) 一个好的架构必须将底层硬件包装起来, 为应用程序提供一组丰富的函数操作
(bufferor parameter) , 例如在中断的处理中, 应用程序不需要资料中断的堆栈如何保护不
需要知道地址操作, 只需要读取中断产生的旗标动作.
5) 在即时性软件系统里面,对达到高效率的实时性与反应力, 所以程序使用大量的事
件触发方式来设计任务.事件有可能来自外部的触发(key , rx data , sensordetect, …) 也可
能是系统内部自行产生的(Timer, alarm, flag),与事件触发方式相对应的是定时查询方式
(polling), 一般来说polling 效率较差 因为有多余的动作而且系统反应时间与查询polling时
间间隔有关, 但是在小型的MCU 系统里面用Polling 方式反而简单许多
3
3
33、设计基本原则
1) 尽量减少各个子程序功能模块间的耦合度(耦合度是指一个程序的执行对另一个程
序的影响力),保证各自的独立性。一般情况下,建议子程序模块功能的划分要尽可能细化,
功能尽量单一,减少子程序模块间的数据交互。
2) 在满足功能需求的情况下,可适当牺牲代码的执行速度,以保证程序的透明度。
3) 主要子程序模块间的交互,要通过特定的界面跟应用层进行沟通,可使用 FIFO
(Firstin,Firstout)或是Buffer两种方式。每种子程序模块都可以有自己的FIFO。例如:
2
就按键来说,一般有Key buffer、Key FIFO或直接进入AP FIFO 三种设计方式。
Key buffer
Key buffer
KKeeyy bbuuffffeerr:一般用于保存数字按键信息。例如:在电话机的设计中,需要记录按
键内容用于 LCD 显示、最后数字确认、数字存储等,这时候需要把按键值的信息
(0123456789*#)记录在Key buffer中;
KeyFIFO
KeyFIFO
KKeeyyFFIIFFOO:一些功能按键可以将相应信息列入到Key FIFO中,等待应用层的取用,
这样可根据不同的工作模式进行不同的处理及动作。
您可能关注的文档
- 怎样在Word中打钩.docx
- 我国工业云发展问题与对策研究_陈花.pdf
- 十六周 课后作业 虚函数及多态性.doc
- 第3部分 常用指令及寻址方式.ppt
- s5600操作手册-Release 1510(V1.00)05-IP地址配置与IP性能配置操作.pdf
- 日历时钟芯片控制实验解读.pdf
- Access_2003_常用窗体属性与其含义.doc
- 杰奇CMS中区块和模块的配置详解.pdf
- 第十一章 IP电话培训教材.ppt
- NAND FLASH ECC校验原理和实现.pdf
- 浙江衢州市卫生健康委员会衢州市直公立医院高层次紧缺人才招聘11人笔试模拟试题参考答案详解.docx
- 浙江温州泰顺县退役军人事务局招聘编外工作人员笔试备考题库及参考答案详解一套.docx
- 江苏靖江市数据局公开招聘编外工作人员笔试模拟试题及参考答案详解.docx
- 广东茂名市公安局电白分局招聘警务辅助人员40人笔试模拟试题带答案详解.docx
- 江苏盐城市大丰区住房和城乡建设局招聘劳务派遣工作人员4人笔试模拟试题带答案详解.docx
- 浙江舟山岱山县东沙镇人民政府招聘笔试模拟试题及参考答案详解1套.docx
- 最高人民检察院直属事业单位2025年度公开招聘工作人员笔试模拟试题含答案详解.docx
- 浙江金华市委宣传部、中共金华市委网信办所属事业单位选调工作人员笔试备考题库及答案详解1套.docx
- 广东深圳市党建组织员招聘40人笔试模拟试题及答案详解1套.docx
- 江苏南京水利科学研究院招聘非在编工作人员4人笔试模拟试题及参考答案详解.docx
文档评论(0)