引用 90 楼 lbing7 的回复:
单片机上的开发,其实我觉得硬件上比软件上的比重要大的得多
而且,这个行业到最后卖的是硬件,
因此,软件在初期就没有必要投入太大的精力
当然,如果事情做成了,可以往好里做
那么,硬件上就开始减成本,软件上就向更友好的用户接口上靠
最终二都又会走到一个平衡上
但是,他们不可能一开始就平衡
如果一开始就平衡,很可能导致的问题是:产品死于腹中。
这个有些片面哦
你做的是一些只有LED,一些简单控制的系统,当然软件几分钟写好的那种,硬件当然是比较重要.
但是,在比较大的系统中,硬件反而要考虑的仅仅是哪用哪种元件更省钱的问题了.但是代码的开发和维护都是项目的重点.
现在正在做一个系统,其中一块扳子上用了3块MCU,主MCU代码接近512K了.
别说代码写的不好,浪费空间,而是东西太多,又有性能要求.N多数据库,GUI,输入法,通讯协议.
LZ说的模块化的思想其实也是我一直以来的编程指导思想,不为别的,只为修改方便,移植方便.
另外,时间和空间是对立统一的,可以用下面公式表示:
C=SPACE*TIME;
时间和空间都是资源,某个宇宙系统中,时间和空间的量是一定的.
只要没有写出做无用功的代码,C都是最小的.不同的有效代码所占用的space和运行所需的time不同而已.
例如,写一个检索函数,假设方法A只用一写原始的必须数据(可以通过其他数据推导出来的数据就不是必须数据),那么方法A所用占用的空间当然不会很大,但是因为要计算出中间数据,时间用的就不能很少;方法B在A的基础上为了提高检索速度,加入了一些冗余数据,在速度提高的同时,占用的空间也就大了。
但是,不能说A比B好,也不能说B比A好,关键是看具体的硬件环境和系统要求才能决定哪种方法比较适合.