本帖最后由 拨云人 于 2014-4-28 16:14 编辑
刚到公司的时候,直接就上手了一个项目(一个低功耗的可穿戴设备),我负责软件部分。
刚毕业,实在是没有多少经验。 只是在熟悉了MCU的参考手册,再做了一些官方例程,了解了一些外设的特性之后,就开始火急火燎的代码编写了,没有做任何的规划 。
我只知道该产品需要“数据采集”,“数据存储”,“蓝牙通信”.三大模块.
于是一个模块一个模块的实现,在新添一个功能模块的时候,基本上都是把其他模块都屏蔽掉。例如在实现数据存储的时候,我将自定义的buffer数组里的数写入SD卡,并通过PC机读取SD卡的数据,来验证自己写得是否对。
终于三大模块的功能都实现了,但是问题也来了,我发现这些模块单独运行的时候,都是很好的。可是我不知道我应该如何将这些模块功能有机的组合起来形成一个能够一直循环运行的系统。毕竟这是一款产品,它上面的软件需要安全,可靠,稳定并持续运行。
我的感觉就是,我知道我要建一个房子,现在我把砖块,水泥,钢筋,床,窗子等等,都给搬过来了,却不知道从何下手,建造一个什么样的房子,床应该放在哪里,怎么摆放...我想我缺少一个房子的图纸.
一开始,为了做成样机,能够进行简单的功能演示,我是通过在大循环中通过检测几个标志位来调用各种功能,例如:
我在采集满 512Bytes (刚好是SD卡的一个扇区) 数据后,置一个标志位,然后在主循环中检测到这个标志后,调用写SD卡函数,并更新文件系统.
如果采集的过程中,发现数据异常,则置一个标志位,然后在主循环中检测到这个标志位之后,调用蓝牙发送函数,告诉上位机数据有异常........
于是我发现,标志位简直就是太多了.
总感觉自己的工程,是通过几个标志位,硬生生的将几个模块里的功能联系起来,粗糙得很.我也无法保证它能持续正常的工作。
我想请教一下做过项目的人,你们当初有没有经历过我这样的情况呢,你们会怎么办?
|