大家好,我是一个工作了8年的程序员,一直做的是嵌入式软件开发,以及单片机项目开发。其实都一样,只不过很多人认为的单片机开发和嵌入式软件开发是两码事,可能认为嵌入式软件开发一般都是基于Linux系统,而单片机开发就是比较简单的裸机或者跑一些RTOS这类开发所以这里我认为,其实他们都属于嵌入式软件开发了,没什么本质区别。今天也是我在网络上第一次写文章,呵呵,本人写作水平有限,就谈不上文章了。就瞎聊聊吧,有什么不对或者大家有什么建议,还望各位多多指点。
今天我们我就跟大家聊一聊单片机软件开发这一块吧,我先说下软件开发的一些流程吧,我个人一般在软件开发前,也就是当项目的需求或者硬件的原理图出来以后,我一般还会自己整理一下软件的需求,这里我给大家推荐一个软件这个就是思维导图软件我现在用的是X-Mind这个软件,为什么要用思维导图软件,其实就是把我们的实际软件的需求和硬件的模块相互关联起来,下面我给大家展示下我以前做的项目的类似这种思维导图如下:
呵呵,由于项目因素我就不能全部展示给大家了,只截取了一小部分。这个图就是我做单片机项目开发的第一个要完成的图示,当然这个图示也是不断的迭代和完善的。描述这个思维导图的意义在于,你通过这张图可以很清晰的把一些项目的需求和实际的硬件模块以及软件模块功能全部清晰的罗列出来,后续当我介绍到软件的概要设计这块,也是需要这个图的。
或许很多朋友会问这个思维导图该什么弄出来的,其实这个图很简单的。就是首先按照硬件原理图的模块和系统线程模块来划分的,硬件原理图上模块也要按照硬件控制和软件功能这2个方向划分,硬件控制设计到具体的IO和端口软件功能就涉及到具体的控制方式如下图所示:
当然还包含到系统的线程,其实就是这张图你能有多细就列多细。相信我当你把这个图列完后你就清楚明白了整个系统的需求和软件的一些功能定义了。当然了这至少项目的开发第一步。
好了今天就写到这了...后续我会坚持分享我的个人经验。