热度 29
2012-5-3 14:59
2703 次阅读|
11 个评论
2001年大学毕业时,就想着基于MCU51做一个属于自己的开发平台,这样今后的项目都基于这个平台开发,既可以提高效率,又可以提高这个平台的扩展性、复用性及稳定性。 想法只是想法,那个时候单片机也只有汇编的水平,只做过半个项目,但这个理念是很好的,现在还感叹自己当时竟然有这个理念。 2002年觉得自己不懂软件光有想法不行,来到了深圳从事手机软件开发,一般人应聘往往采用自己的特长去应聘,而我这一次是用自己不会的去应聘,目的只有一个:学习。 因为有朋友介绍,所以不会也成功了,手机软件开发半年后,基础水平大涨,那个时候稍微闲一些,就开始考虑那个MCU51平台。 首先了zlg的DP51板子,先按zlg提供的例子一个个的学,学了2,3个觉得这样没什么意义,任何一个例子都是独立的,相当于一个子函数,不具备系统性,就如风清扬说的,各个剑招分开是死的,只有融合起来才行,于是就开始自己谋划这个平台: 1:手机平台是当时自己最熟悉的,并且也是最先进实用的,尤其是内部的软件定时器用的非常漂亮,软件定时器可以解决硬件定时器资源不足问题,尤其可以实现游戏,闹钟,按键声等等,更进一步说还可以实现类似RTOS的任务,所以这个软件定时器被我采用了。 2:以前大学的时候学过VB,虽然没操作几下,但觉得它的事件触发机制很好,事件驱动型,说穿了就是消息机制,这个也应用到我的平台中 3:那段时间比较火RTOS,其实无论那个RTOS,在MCU51这个资源非常少的环境中,意义都不大,甚至反而把开发弄得复杂了。但他的系统节拍的概念在手机平台上也有体现,并且非常实用,于是把它也引入了。(那个时候还没有系统学过RTOS) 4:Trace系统在手机平台上应用非常广泛,以前很多人开发MCU51都是用仿真器,但手机开发是不用仿真器的,而是用Trace,用printf从串口打印信息出来跟踪调试,这个非常好,起码不用买仿真器了。 5:独特的按键处理方式,别的都可以说模仿的,但这个是本人自创的,非常棒。 基于以上5点,综合起来,就成了第一版的“实用单片机系统”,当时发表在21ic上被认可,之后2004年改进为第二版(MS2),这个版本相对比较简单明了,一般C语言基础的一看就懂,(MS3)版本发布在2006年,相对复杂一些,指针比较多,并且实现了软件定时器的伪任务模式。 华禹工控开发的很多单片机项目都是基于MS2、MS3开发的,创易电子的彩色触摸LCD屏开发板也是采用MS3开发的,尤其是软件定时器应用于触摸上,非常妙,获得宏晶单片机老板姚永平的赞赏。 MS3经常被我用来面试,考核应聘者的软件水平及思维能力,其中max(负责华禹工控wince平台的,21ic驱动版版主,代号high)4年前就是看了MS3后马上决定过来的。 不同的人看MS系统,感觉完全不同,这个取决于他本身的水平,本人希望读者从结构上入手考虑,之后各个部分的深入。 当然MS毕竟是基于MCU51的,不可能很复杂,若看过uCOSII之类的RTOS,那么MS就是一个小儿科,所以本人推荐MCU51入门或者提高的人学习即可。 MS作为本人软件方面的最高水平,算是本人软件的一个积累,虽然谈不上多少成就,但起码留下了一个成熟的东西,这是最重要的。 MS4是最新基于NXP Coretx M3的LPC13**系列下开发的MS3的升级版本,支持32位系统,性能更好