首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

msOS的需求来源

msOS的需求来源

2001年我大学毕业后去了中科院半导体所工作,第一次真正接触了MCU51下的C语言开发,项目组要求项目中的功能尽可能封装成一个个的功能子函数,便于维护,所以一个项目就是由各个功能子函数组成的。但我因为在所里时间较短,没有真正参与其中,只是接触了这个概念,觉得这个非常好,也在自己心中暗暗的下了一个决心,今后要建立自己的函数库,以方便项目开发。

2002年我来到深圳做手机软件开发,采用英飞凌手机解决方案,有一套标准的软件架构平台,RTOS采用NucleusGUI等其它部分都是英飞凌自己完成的,当时国内山寨手机行业还没有开始,所以这套手机解决方案还不是很完整,功能比较少,但就是因为不完整,功能少,很多还需要我们自己开发,所以让我有了更深入的了解整个软件架构的机会。


我负责的是手机驱动部分,所以可以比较清晰的了解整个手机的软件架构,代码是如何组织的,加上原本就是做硬件的,所以相对较快的完成了工作,在手机公司呆了半年之后就有比较多的空余时间,想着把MCU51熟悉一下,把基础打好,便于开发一些小项目,于是采购了一套周立功公司推出的MCU51开发板:DP-51开发板。

DP-51开发板提供的例子如GPIO、串口、按键等走了一遍,基本上熟悉了MCU51芯片的特性,对MCU51的编程就不再神秘,但是这种一个个例子,一个个功能子函数的方式,已经瞧不上了,毕竟之前是做手机方案的,于是就想着如何借用手机的平台架构思想,把这些功能函数都整合起来,形成一套基于MCU51下的软件开发平台。

手机驱动开发中,经常用到RTOS提供的系统节拍,5ms一次,用来处理一些例行程序,觉得很好,于是把这个功能引入到软件平台中,把MCU51的定时器2作为系统时钟来处理。手机软件中还有一个非常好的东西就是软件定时器,因为硬件定时器只有非常有限的几个,比如MCU51一般只有三个硬件定时器,一个用于系统时钟,一个用于串口通讯,只有一个了,若需要处理超时、动画、闹钟等,根本不够用,所以需要用软件扩展出很多个软件定时器,一般基于系统节拍来扩展,所以把这个软件定时器功能引入平台。虽然手机中有Nucleus这个RTOS,但是被封装了看不到,所以那个时候对RTOS的特性并不了解,实际手机开发中也感受不到它的存在。而RTOS中常见的消息机制也不是从手机平台中认识的,而是源自大学时期的VB编程,觉得事件触发这种方式非常好,点一个按键,点一下鼠标,产生一个事件,于是把VB中的事件处理方式,也就是消息机制引入平台中。

消息机制、系统节拍、软件定时器,再加标准的前后台,构成了一个基于MCU51下的软件开发平台:实用单片机系统(McuSystem,缩写为MS)。第一版2003年放到网上共享。从今天角度来看,这个简陋的不能再简陋的,命名规范一塌糊涂的软件平台,竟然被不少MCU51初学者所喜欢,经常发邮件询问一些问题。这个事情让我明白,自己的水平虽然不怎么样,但接触的东西相对高端,还有太多的不如我水平的人,他们很需要指点入门。于是在经历几个项目进一步完善软件功能之后,对MS1做了精简、优化,去掉了指针等相对难一些的东西,专门针对初学者,让他们非常容易看懂,这就是MS2。在MS2的基础上丰富了功能,引入了指针,针对中级用户的,变成MS3,应该说MS3的客户群体最多,深受网友喜欢。
返回列表