欢迎您访问我爱IT技术网,今天小编为你分享的电脑教程是建站经验系列之:【嵌入式系统c语言编程该怎么学?】,下面是详细的分享!
嵌入式系统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)条件编译,在带操作系统的应用时经常要用
六、不要偷懒,写好必要的注释
七、做到以上几点时就可以吸收高超的编程技巧了。
以上所分享的是关于嵌入式系统c语言编程该怎么学?,下面是编辑为你推荐的有价值的用户互动:
相关问题:如何自学Linux下C语言嵌入式编程
答:该你一些简单的建议 1安装有linux操作系统的电脑,当然你可以使用虚拟机 2寻找一本linux下C编程的教程,会教你怎样编写,编译,链接及运行C 3最好有一套开发板51,arm的等,因为你是学嵌入式的,可以将代码下载进去,运行调试 当然你也可以安装... >>详细
相关问题:如何学习嵌入式系统?学习C语言,linux还有什么
答:嵌入式学习的话一般都是linux系统 就培训机构里面的课程来讲 一般都先弄个海量的C语言提高c语言能力(貌似除了qt、少量的arm汇编以外,都是C语言),什么指针啊结构体啊,数据结构啊,文件的操作啊,先来上一锅炖,炖熟了,就开始是linux系统编... >>详细
相关问题:如何学习嵌入式c语言编程
答:你这问题有点广。。。我就说一下我的经历体验吧 首先是C基础,必须非常熟练!主要是指针、链表,这个阶段至少要写几个几百行的小程序(尽量无BUG,下同) 接下来可以用一些API,比如数据库、套接字、一些图形界面库等,应该可以写一两千到三四千行... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
