单片机软件编程框架略谈
单片机软件编程框架略谈整理:78tide
时间:2005-03-28
前言:经过一段时间编写单片机程序,对整个软件系统有些概括性的认识。这些观点仅是主观认识,不一定都有其正确性,并且只是对整个框架作一个粗略的勾勒,也作为5年单片机开发人员的小学(也是5年)毕业作文。
一、 结构层次
从程序结构分设备驱动、操作系统、应用软件三层,也可以分两层,中间的操作系统省略。如果是三层结构的话,和计算机的结构就类似,计算机通常分为裸机、操作系统和应用软件三个层次。如图
1。设备驱动
指对部件初始化和操作的代码,通常一个部件的初始化由一个单独子程序可以完成,而对部件的操作则有可能需要多个子程序,但是对应用程序有可能就是一个或二个子程序。一个部件的操作代码尽可能放在同一个源文件中,以便修改和调试。
设备驱动由于和底层硬件关系密切,所以驱动是个基础,它决定整个系统的正确和可靠性。对驱动程序要求是:1功能性 控制正确;2灵活性 对同一类设备可以很快兼容。
设备的分类,根据设备是否集中在单片机内可以内部设备和外部设备。内部设备称为部件,外部设备称为外设。部件通常有定时/计数器,串口,PWM等,外部有RAM,EE,FLASH,液晶,键盘等,当然这种分类对某个型号是不变,如果是同系列或不同厂家的单片机这个分类会不同。例如A/D,EE等,在8031都是外部设备,但对于现在流行的多数单片机,它已经被集中在一片中了。单片化这是总趋势,计算机的主板上芯片也是如此。
2。操作系统
指对各个设备的操作进行管理,以便应用软件的简明和实时。单片机上RTOS现在比较流行的首推UC/OSII。它占用系统资源极小而且功能很强。大部分的软件中没有这个层次,而是应用程序直接和设备驱动接口。
3。应用程序
指满足产口功能要求而进行数据传输、设备控制等操作的代码。本部分代码主要数据结构和算法(其实所有程序都是如此,不过这部分代码的这些特性更加明显),通过算法将数据处理达到应用要求。前两个层次通常在不同系统间可以共享,而这个层次的代码却是很少能共享的。
二、 执行流程
从程序执行流程看也分为三步,采集输入,数据处理和结果输出。
采集输入指通过输入设备获得数据,这些数据包括通讯命令,计数,A/D等等。数据处理就是数据格式转换,或者是查表等操作来输出。结果输出指将处理的数据输出到设备,比较常见有显示、通讯响应,储存等操作。
实际运行过程中有可能出现以下几种情况:
(1) 1个输入,1个处理,1个输出
(2) 1个输入,多个处理,多个输出
(3) 多个输入,多个处理,1个输出
(4) 多个输入,多个处理,多个输出
情况(4)可以看成(1)的简单组合,也可以是(1)、(2)、(3)的交错组合,这种情况有可能是一个函数的过程,也有可能就是一个应用系统的过程。在所有情况下中的处理(处理1,处理2……处理n)有时会是不同的处理,而在有的过程中是相同的数据处理。
三、 开发流程
开发过程是一个软件的出现,其中要考虑维护、升级、测试等方面。大致步骤分:
1, 编写需求。也可以说是应用方案书,用自然语言详尽描述出应用的所有过程,其中有必要可要插入示意图。在这一步要完成功能的模块化,如果不能确定的过程可以在下一步确定。
2, 画流程图。根据方案中自然语言描写转化为流程图,这一步要完成流程的详细图外,还要规定函数的划分和所用算法,如果程序数据处理比较复杂,还有编写资源分配表,资源分配表指的是RAM中全局变量(包括数组、结构)的含义和所占空间大小,以及其它用储存数据的开始名称和地址等信息的列表。
3, CODING。由上步写出流程进行编写代码,代码编写原则是从下到上,即从底层驱动到应用层编写,在每完成一个函数要先进行编译和调试,不要一气写出N多后才编译,或者说再去调试,这样会浪费时间和精力。编写代码过程如果对数据结构或算法有大的修改,一定要对流程图或资源表相应改动。
4, 整体调测。各个函数编写(测试)完毕后,要按照流程的层次进行联合调试,最后组合为完整应用进行功能调试,如果调试成功,可以用些边界值对系统进行测试。系统对实时性或精度等有要求的话,还要进行参数测试。
上述各步骤只是粗分,不能含概所有软件的开发过程,另外由于单片机的软件和硬件息息相关,在开发或升级中都会影响甚至决定软件的算法结构,并且在开发过程出现问题后先要区分出是硬件问题还是软件问题。所以上述步骤只是从软件方面略语一二。
综上所述,软件编程是一个艰苦而又细心的过程,每一步都可以作为专题来论述。本文只是从不同方面来大概描绘出单片机应用软件编写的框架,从而为更加深入研究或学习编程技术打下基础,也在阅读或调试源程序时提供思路。
==========================THE END============================== 发现:WORD中的图贴不上来。
哪位高手指点一二 直接把WORD文件貼上來 顶 把把WORD文件传上来吧 怎么没有图片呢?本人还在吗?
页:
[1]