大家对C语言非常熟悉了,你是否这样一个疑问呢:为什么学习这么久的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)条件编译,在带操作系统的应用时经常要用
六、不要偷懒,写好必要的注释
七、做到以上几点时就可以吸收高超的编程技巧了。
简单说了几点,虽然不深入,但小编由衷希望能帮助到大家。同时,希望大家今后多做项目,多做反思总结工作,不断向高薪目标靠近!