我认为采用什么样的软件结构还是需要看是怎么样的应用需要,这两年最为突出的例子就是Apple的IOS和Google的Andriod了,IOS在操作系统的研发中是以用户体验第一任务,所以用户在操作触摸屏时的感觉非常好,但是它的多任务非常糟糕,新的IOS勉强有了个多任务,但是这个多任务是假的,一旦任务被调入后台后任务就处于等待状态,而没有被执行.但是Andriod的多任务作的非常好,多个任务可以同时执行,但是它的用户操控非常糟糕,用户操作触摸屏时卡顿的感觉非常明显,这是由于Andriod的系统设计时是以多任务为第一优先的.
说了这么多其实就是想说明,在进行单片机软件开发时,需要注意软件的使用目的,不过总体的设计要求还是有的:
1,约定一个通用的函数和变量的命名标准,便于多人协同工作和后期的维护,升级;
2,将与硬件操作有关的部分使用函数进行封装,便于未来更改CPU是的移植工作;
3,将整体软件分层设计,与用户应用相关的部分和系统代码以及硬件操作部分分层设计,各层间尽可能通过函数调用来传递信息;
4,尽可能少使用全局变量,便于未来修改功能,或者移交给其他人进行后续维护.同时自己的**力也使有限的,少用全局变量,都用函数,减少**量;
5,多做注释,便于他人或后期维护,做好软件设计文件和流程图,以及函数的功能解释.
以上是我自己的一些工作经验,请大家多提意见,欢迎拍砖! |