嵌入式系统C语言编程的心得体会(原则篇)

转载 2013年12月02日 22:34:24
C语言博大精深,玩了很长时间了,一直徘徊在入门处。看了很多别人的编程经验,加上项目程序越做越大,直到这半年来突然有很多体会,明天就要回家了,下午闲来无事也试着总结一些心得体会,喜欢对师弟妹们的学习有所帮助。
    首先要说说编程的几个重要原则,看了很多别人的编程经验,更多的是说技巧。技巧能显著提高程序的效率,固然重要但是技巧的掌握靠了还是大量的工程实践,只有在有一定功底后才可以去追求这些编程技巧。但是编程的原则却是要在学习一开始就要认真贯彻,才能养成良好的编程习惯,苦练内功后练上层功夫才不会走火入魔。
    言归正传,嵌入式系统C语言编程需要遵守什么样的原则呢?随着时代和技术的不断发展,这个问题也许仁者见仁智者见智了,但是总结起来大家还是有很多共识。根据目前提倡的软件工程的做法,和我们教研室的做法,列举最重要原则:
    一、模块划分.C语言作为一种结构化的程序设计语言,在模块的划分上主要依据功能:
  (1) 一个功能模块即是一个.c文件和一个.h文件的结合,.h文件中是对于该模块功能函数和使变 量的声明
    (2) 该模块提供给其它模块调用的外部函数及数据都需要在.h中文件中以extern关键字声明
  (3) 模块内的函数和全局变量只能在.c文件定义
  (4) 不允许在.h文件中定义变量(定义变量和声明变量的区别在于定义会产生内存分配的操作,而声明则只是告诉包含该声明的模块在连接阶段从其它模块寻找外部函数和变量)。
    二、一个嵌入式系统程序包括两类模块分三层编写:
  (1)硬件驱动模块,一种特定硬件对应一个模块,包括了片内集成的硬件模块和外部扩展的
  (2)软件功能模块,软件功能模块是建立在硬件驱动模块上的与硬件无关的逻辑功能。
    (3)三层编写即HAL(硬件应用层),API(应用函数包),APP(逻辑应用层)注:名称是借用的,表大个意思而已。HAL就是硬件驱动模块和系统硬件密切相关,API可以是建立在HAL上的硬件应用服务程序也可以是通用的函数模块,APP则是最终构成嵌入式系统应用的功能逻辑关系。HAL和API是为了方便技术积累和提高开发效率而分开了,APP则是针对特殊应用而定制的。
    三、中断服务程序的要求:
 (1)不能返回值
  (2)不能向ISR传递参数
  (3)ISR应该尽可能的短小精悍,不允许有等待信号的操作
    四、编程风格问题
    五、需要学会熟练应用的C语言的基本手法
   (1)数据指针,不能仅仅只会使用数组
   (2)宏定义,定义寄存器地址,定义宏函数等
   (3)函数指针的应用
   (4)条件编译,在带操作系统的应用时经常要用
    六、不要偷懒,写好必要的注释
    七、做到以上几点时就可以吸收高超的编程技巧了。

面向对象六大原则----开闭原则

Java 中面向对象编程六大原则: 单一职责原则 英文名称是Single Responsibility Principle,简称SRP 开闭原则 英文全称是Open Close Principl...
  • Jo__yang
  • Jo__yang
  • 2016年07月27日 17:59
  • 2858

敏捷开发之原则 五大原则 SRP OCP LSP DIP ISP

一、面向对象设计原则内容来自《敏捷开发:原则、模式与实例》 SRP单一职责原则(Single Responsibility Principle): 就一个类而言,应该仅有一个引起它变化的原因。 ...
  • qq_16234613
  • qq_16234613
  • 2017年02月08日 22:04
  • 1483

面向对象设计原则--里氏替换原则(LSP)和依赖倒置原则(DIP)

面向对象设计原则–里氏替换原则(LSP)和依赖倒置原则(DIP)tags:设计模式 LSP–inheritance should ensure that any property proved a...
  • qq_22841811
  • qq_22841811
  • 2016年09月29日 23:18
  • 251

六大设计原则之开闭原则

开闭原则的定义开闭原则是java世界里最基础的设计原则,它指导我们如何建立一个稳定,灵活的系统。开闭原则定义如下:Software entities like classes,modules and ...
  • hfreeman2008
  • hfreeman2008
  • 2016年08月28日 10:32
  • 2173

Java设计模式六大原则或者说七大原则 整理 (其实文章里有七个。。。。)

对于Java看到过一个很有意思的说法:Java有六大心法,23种武功招式。分别就是Java设计模式六大原则和常用的23种设计模式了。本篇是对六大原则的整理。(其实文章里有七个。。。。最后一种是哈姆雷特...
  • u011288271
  • u011288271
  • 2016年09月10日 22:50
  • 4166

OO六大设计原则总结(上层码农必会)

一直以来都严格遵循OO的原则来进行开发(用的工具是C++和Qt) 什么是设计原则? 设计原则是基本的工具,应用这些规则可以使你的代码更加灵活、更容易维护,更容易扩展。 基...
  • suxinpingtao51
  • suxinpingtao51
  • 2015年07月29日 15:45
  • 1641

设计原则(三)组合复用原则

一、什么是组合复用原则组合复用原则也叫合成/聚合复用原则(CARP),就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象的委派达到复用已有功能的目的。 这个原则...
  • xingjiarong
  • xingjiarong
  • 2015年11月28日 15:55
  • 3304

【软件设计】六大设计原则讲解

1. 单一职责原则 -Single Responsibility Principle SRP,Single Responsibility Principle: There should...
  • scboyhj__
  • scboyhj__
  • 2015年08月21日 23:05
  • 8062

面向对象的六大原则之 —— 单一原则

学习了何红辉、关爱民写的《Android设计模式》,对于面向对象的六大原则有进一步的理解,特此根据自己的理解记录总结一下 在开发中,我们要注意程序设计的六大原则: 一、单一责任原则 二、开闭原则 三、...
  • asd2603934
  • asd2603934
  • 2016年03月01日 10:58
  • 3813

分布式系统设计原则

1主/从架构(整体结构) 2元数据与数据分离(空间) 3一次写入多次读取(操作) 4动计算比移动数据更划算(计算)...
  • gao8658
  • gao8658
  • 2013年11月30日 22:55
  • 1130
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:嵌入式系统C语言编程的心得体会(原则篇)
举报原因:
原因补充:

(最多只允许输入30个字)