2018年8月2日

嵌入式微系统msOS

2001年,作者接触了MCU51 C语言开发,心中产生了要开发一套属于自己的平台的思想。2002年,接触了手机软件,把手机软件技术,尤其是平台化思想应用于MCU51,开发了简单、易用的前后台系统“实用单片机系统”,开源推广获得成功。与嵌入式爱好者互动中升级版本。由些产生了搭建属于自己的开发平台想法,这是msOS推出前因。

由于实际的项目需求,使得想搭建通用平台的想法更加迫切。2011年,作者开发完成一套大功率高频感应加热设备,因软件维护复杂无法交接。因客户需求太多,需开发一系列的工控相关的产品,如传感器、驱动器、控制器,需要多人协同开发形成大系统。如何统一开发,如何继承,如何维护?放眼望去,众多平台里,竟找不到一款适合的?引起了作者的深思。

上图为嵌入式系统硬件架构的一般形式。
嵌入式操作系统如uC/OS-II,FreeRTOS,往往只是一个内核,需要整合很多功能,如GUI、PID等各种功能,还需要稳定性测试。
芯片厂家提出了一些专为自己芯片的解决方案,移植工作大,无法通用。
大型操作系统如Linux、Wince非实时,不适合实时类低端嵌入式方案,并且维护成本很高。
没有一家大公司,为小微企业开发通用的软件开发平台。
而小微企业人数少,新人比例高,流动性大。
开发产品单打独斗,人员流失后,继任者往往需要重新设计。
技术水平低、基础差、代码无规范、编写风格不统一,很难有效管理,无法开发稍大的系统,形不成竞争力。
无法统一、无法继承、无法维护。
小微企业已经被遗忘了,很难走出这种困境。作者结合自身的实际需求:有了为小微企业做点事情的想法。

在开发过程中作者发现C#是主流编程语言,开发快捷,编程风格简单优雅,架构设计合理。客户群体广泛,他们有可能会做嵌入式开发。嵌入式开发往往需要在PC端开发相关软件,同一种风格方便统一开发。从而统一编程风格:把C写成C#的样子。这样编辑器性能的提高,放弃复杂、过时的匈牙利命名法,采用简单、优雅的C#编程风格。低端嵌入式处理器的性能大幅度提高,资源相对宽裕,可以引入PC机编程思想进入嵌入式中。利用结构体把架构分为两层:应用层(App)与系统层(System),独立编程。

分离业务逻辑与菜单界面,由于菜单界面显示属于低速业务,业务逻辑属于高速业务,传统前后台编程混淆处理,制约了性能。所以引入RTOS实现双任务,分离业务逻辑与菜单界面。这样业务逻辑保留传统的前后台编程风格,一种消息机制的前后台系统,简单、易用。由于CMSIS架构中无设备层概念,应用层可以直接操作底层,不便于芯片级的移植,尤其是不同厂家的芯片移植。由此引入设备层概念,应用层和系统层都只能对设备操作,不能访问底层,实现芯片级移植。这样便于多人协同开发系统底层。这样整个系统架构图就出来了,如下图:

msOS简单易用的模式化编程——将小微企业的人员流动大,项目无法传承的问题一并解决。

msOS推出后受大了广大网友的好评,迅速在各大二三线高校得到推广,2014年10月并在清华大学第二届开源操作系统技术年会上进行了演讲推广:

引入双任务RTOS,分离高速的业务逻辑和低速的菜单界面。

面向对象的GUI编程代替面向过程的界面编程,实现统一高效的界面编程。

把C语言写成C#编程风格,简单、优雅,便于统一变量、函数的命名。

App结构体封装全局变量,System结构体封装系统底层接口,分离应用层    与系统底层,便于分层设计。

以上几点是作者对嵌入式微系统(msOS)的总结。下面给简单介绍一下msOS的作者:

作者:王绍伟  电子工程专辑知名博主“凤舞天”
毕业于兰州大学电信专业,后进入中科院半导体所从事高速激光器通讯。
        2002年进入手机行业,同时基于MCU51开发了实用单片机系统(MS)并开源推广,获得广大嵌入式初学者的好评。
        2008年发明了“电阻电容电感样品本”,解决广大电子爱好者基础元器件的采购、调试、存放问题。
        2009年开发了手机开发模块及相关无线手持PDA产品,并创 立了深圳市雨滴科技有限公司。
        2011年研发大功率超高频感应加热电源,在此基础上开发了通用嵌入式开发平台:嵌入式微系统(msOS)。
        2014年嵌入式微系统应邀参加清华大学第二届开源操作系统技术年会,并出版书籍在网络及各大高校推广。
        2017年提出雨滴云屏系统,该系统基于Html5浏览器技术,让嵌入式人员只需要掌握单片机就可以开发大彩屏和各种智能操作系统的功能。