自序

长期以来,低端嵌入式行业(如MCU51、ARM7、Cortex-M3)因为受到CPU性能、ROM和RAM容量及其他因素的制约,软件无法做得太大,加之低端需求也不需要很大,所以开发人员往往设计随意,规划不强。此外,由于低端嵌入式系统需求多样,没有一家专门的公司或机构为其设计一套通用的软件架构,大家各自为政,甚至是一个公司的几个嵌入式人员所编写的代码都完全不同,而新来的嵌入式人员往往因无法读懂前人的代码而推翻其成果重做设计,导致这种重复无用劳动的原因是没有一个软件架构标准。

我也一直被这种无序的现状困扰着,在开发高频感应加热电源的时候,很希望找到一套比较简单易用的嵌入式软件架构帮助自己完成设计,尤其是GUI部分,可惜事与愿违。为了整个公司的代码统一性、与PC编程接轨的可行性及操作维护的长效性,必须找到一套标准和公认的模板,同时把嵌入式行业出现的优秀元素(如RTOS、GUI、面向对象设计、分层设计等思想)引入这个架构中,通过合理的组织形成完整的系统。

这个系统不能复杂,必须要简单易用,因为嵌入式面对的应用场合千千万万,各不相同,无法提供所有的需求,即使提供了,也会因ROM容量有限、CPU性能有限而受限,所以必须给出一个可让使用者容易读懂,且自己容易修改、增删的系统,每个功能提供一两个实例,用户根据实际项目的情况进行修改、增删。

虽然我曾做过一段时间软件,但长期负责硬件,后来创业,管理公司,可以说软件对我来说是弱项,正因为是弱项,让自己不拘泥于软件技术本身,而是用硬件尤其是企业管理者的思维来看待软件,从需求入手建立自己想要的软件系统,即嵌入式微系统(msOS)。msOS成型后,我认识到这就是我日常的企业管理思维:分层设计,各模块独立运作,实现高内敛低耦合思想。这些思想都是日常管理中的基本常识,所以msOS文档的描述将更多的是基于常识的讲解,淡化一些专用名词、专用术语,卸下包袱,让常识自然融入其中。

msOS开发完成后,获得了同事的普遍认可,他们认为msOS用代码方式总结了嵌入式行业多年来的发展成果。现把它编写成书,尤其是把它的需求、历史写出来,让更多的嵌入式人员从中找到自己想要的东西,而不仅仅是代码。

学习msOS,目的是应用,尽可能地降低学习费用,把精力放在快速开发产品上。

最后感谢各位合作伙伴,在开发msPLC/msOS的4年多时间里,你们不仅支撑了公司的发展,还积极参与改进msPLC/msOS的各种缺陷,让它更加完美。

为msPLC/msOS做出重要贡献的人员如下。

妻子刘颖:接管家庭事务,协助公司事务,并完善部分代码,参与部分章节写作、修订。

周庆国教授:在学业和工作上给予我很大帮助,尤其是在人生的几次重要转折点上。

郑德智、吴玉勇:接手我原来的工作,并全力支持msPLC/msOS开发。

孔海文、朱志惠:提供各种工业产品参考,设计上给予指导。

陈永强、皮云仙、苏鹏、田飞峰、高茂光:积极协助开发,并多次提出改进意见。

易艳辉、彭娟、李小龙:基于msPLC/msOS开发各种设备,并报告一些msPLC/msOS的缺陷。

感谢msPLC/msOS QQ群的各位网友对msPLC/msOS的支持和改进。

王绍伟

2016年4月