tag 标签: msos

相关博文
  • 热度 5
    2018-7-29 12:08
    2854 次阅读|
    1 个评论
    暑假培训msOS的时间虽然比较短,但就是这短短的一个多星期里使我对msOS(嵌入式微系统)有了更深一步的了解,不仅被深圳市雨滴科技有限公司创始人王绍伟先生的分层设计,各模块独立运作,实现高内敛低耦合的思想所折服。与此同时,更被王总不畏艰难并勇于实现自己的梦想——用代码方式总结嵌入式行业这么多年的发展成果并找到一套比较简单易用的嵌入式软件架构帮助自己即公司嵌入式人员完成产品设计,同时推广自己研究出来的研究成果并使整个公司的代码得到有统一性,可以便于长期可维护和交流,从需求入手建立自己想要的软件系统(嵌入式微系统(msOS))。 王总的经历以及成就让我更加坚信彭老师所说的一句话:做一件事能坚持,静得下心来研究,大学4年后终将会有回报! 我去年寒假第一次接触到嵌入式微系统(msOS),当时渴望了解这个嵌入式微系统的框架以及其是如何帮助嵌入式人员完成所需项目的要求的,但由于那个时候C语言学得还不太扎实,而且从未接触过代码量如此大(29304行)的系统,我很多代码都看不懂,虽然问了学长们之后我懂得了我所问的小项目是如何实现的。但是我觉得我这只是知道完成这个小项目的方法而已,换成了另外一个项目我就不一定做得出来了。所以我对王总的这个嵌入式微系统(msOS)的框架以及其是如何帮助嵌入式研究人员完成他们的项目的,还是一脸迷惑。因为我看王总的嵌入式微系统(msOS)里面的代码存在很多地方仍然看不懂。于是,我就静下心来从新把强化C语言的学习,而且因为彭老师建议我们在暑假即将到来的时候要自学完数据结构。可能正是因为我对知识的渴望和不屈服于困难吧,在学校只要有空就往实验里跑,一步一步脚踏实地地学。我有不懂的就问学长们,就是这样暑假很快就来了,当我再次接触到嵌入式微系统(msOS)的时候,大概是我的C语言基础比较扎实了还有也许也得益于我学习数据结构后锻炼的自己抽象的思维吧,当我再次面对msOS系统时给我的感觉已经不再是恐惧,而是一种渴望更深入了解地学习心态,可想而知我当时兴奋的心情,我就这样不知不觉地把学习当做一种享受,慢慢地进步着。 后来知道王总的嵌入式微系统(msOS)呈现在我们面前的不仅仅只是一个嵌入式微系统,而且所体现出来的更是一种思想——分层设计,各模块独立运作,实现高内敛低耦合的思想。其实这种思想在生活中我们或许在做一系列事情时偶尔也会出现过这样类似的想法,但是却很少人愿意像王总那样将这种将这种思想运用在真实的生活中,王总从需求入手建立自己想要的软件系统(嵌入式微系统(msOS)),这个嵌入式微系统不仅仅使得公司员工的工作效率提高了,而且简单易用,便于交流和长期维护。王总正是避免了以往开发人员往往随意设计,无规划,此外因为低端嵌入式系统需求多样,没有一家专门的公司或机构为其设计一套通用的软件架构,大家各自为政,甚至到了一个公司几个嵌入式人员,各自编写的代码完全不同,新来的嵌入式人员往往无法读懂前人代码而推翻前人成果重做设计,大家都在不停地重复很多无用功,而这一切,都因为没有一个软件架构标准。王总一直被这种无序的现状困扰着,于是他基于这样的现状,基于这样的需求,他在克服一系列困难后,历时4年多,终于一个面向嵌入式工业控制的嵌入式微系统就这样正式诞生了。在我阅读了王邵伟、郑德智、吴玉勇所著的《嵌入式微系统》后,给我最大的感触就是:我们有了想法,而不应只是止步于现有的想法,而应该脚踏实地地把这种想法实现。虽然有的时候现实的难度远远大于想法,而且在实现想法的过程中,不见得总是一帆风顺,但正因为这样我们做一件事——无论是学习还是工作,都应该持之以恒,只有这样我们在将来才能谱写人生绚丽的华章。就像一首歌的歌词——没有不可以,永远不放弃! 下面来就让我总结一下这短暂而又充实的暑假msOS的培训的培训吧! 2018年7月16日,这天由何英杰、谢浩永学长给我们讲解msOS的开发环境的搭配msOS硬件的介绍以及msOS系统框架介绍。主要给我们讲解msOS系统是在什么样的环境下运行的,它的运行需要什么。在这堂课里,我们初步了解了如何安装驱动(Setup_JLink_V490(驱动).exe)的和如何使用msOS代码阅读器来阅读msOS系统的代码的,以及介绍了如何安装SYM32相关资源库。有了msOS代码阅读器来阅读msOS系统的代码后觉得,真的方便了很多。对变量的定义,函数的声明等等一目了然,避免了我们在Keil_5中跳读代码给学习者带来的不必要的麻烦。大大提高了初学者学习掌握msOS系统的效率,同时也方便嵌入式人员利用msOS代码阅读器来阅读msOS系统的代码的同时修改所需的部分代码从而完成自己所需完成的项目。第一天的培训结束了,我对msOS系统的框架有了更深一步的了解。首先嵌入式微系统(msOS)的整个系统分为App 和 System 两个层,分别存放在两个目录中。①App 是应用层,存放具体项目的需求,System 是系统层,提供各种应用接口,支撑应用层运行。System 下一般包含三部分:Device、 OS 及 GUI,也可以扩展其它的中间件,比如 Modbus、 PID 等。②Device是设备层,为 OS、 GUI 及 App 提供底层设备接口,它包含了 ST 提供的硬件驱动标准库。OS 为 uC/OS-II 的精简版本,支持 8个任务,去掉了很多动态连接的链表而以数组代替,代码精简明了,非常易懂。Gui 是为 App 层提供 Menu 设计的标准设计库,目前硬件支持 128*64 点阵黑白字库屏,控件支持页面背景字体(BackText)、表(Chart)、标签(Label)及文本(TextBox)。这天的学习任务虽然看起来简单,但是这关系到后期的学习,所以笔记还是做得满满的。 2018年7月17日 ,这天由蓝常玉、杨春明学长给我们讲解msOS界面显示及其原理以及控件的原理 ,并且简要介绍进程界面以及包括控件解析原理。在这一天的课程里,我一直有一个疑问,到底什么是界面,msOS所实现的界面在哪里?就因为我对所谓的界面没有一个清晰的概念,所以我一直在想这个问题。后来我才知道他们所说的界面其实是涉及界面设计的问题,简单一点的就是我们在12864液晶屏上看到的显示效果。我们在12864上看到的效果就是一个页面。其实一个界面由多张页面组成。还有菜单界面,就 PC 机编程来说,大部分项目的主要工作量都是在菜单界面上, 甚至可以说微软的Windows 从命名上讲,就叫视窗,也就是菜单界面的意思。菜单界面:是用于显示数据及输入数据操作。专业的说法就是:界面设计属于人机接口的一部分,通常我们用 MMI 来描述,MMI 是 Man Machine Interface(人机界面) 的缩写,有些也叫 HMI, Man 换成 Human。完整的人机界面包括按键、鼠标、触摸与界面显示部分。一般除了指示状态之外,往往都是根据按键消息显示不同的菜单,执行不同的消息处理,MCU51 下消息处理往往比较简单。所以 MS 中按键处理程序基本上就等价于界面设计了。状态机界面设计往往采用 switch case 来实现,从按键处理这个共同的入口进,根据一个或多个菜单状态变量选择入口,再根据按键值进行相应的消息处理,退出时根据按键值或者消息处理的结果决定是否要改变状态变量。改变状态变量等价于切换菜单界面,这种利用状态字来实现界面设计方式就叫菜单状态机设计思想。当我弄懂了这个概念后,开始设计属于自己的一个界面了,并让它显示在12864液晶屏上。就这样,通过界面设计我做出了自己想要的界面效果。我当时还有一个疑问,什么是控件呢?难道就是我自己理解的控制元件吗?但是后来我了解什么是控件之后,自己都苦笑不得。其实所谓的控件就是:指对数据和方法的封装。控件可以有自己的属性和方法,其中属性是控件数据的简单访问者,方法则是控件的一些简单而可见的功能、控件创建过程包括设计、开发、调试工作,然后是控件的使用。设计控件是一项繁重的工作。自行开发控件与使用控件进行可视化程序开发存在着极大的不同,要求程序员精通面向对象程序设计。创建控件的最大意义在于封装重复的工作,其次是可以扩充现有控件的功能。在理解这些概念之后就要创建界面了。App 结构体由数据和界面组成, 一个界面由多张页面组成,界面和页面的定义放在一起。界面结构体中,除了四个控件外,还有一个就是页面焦点,这是在多个页面下,用于选择当前显示的是那张页面,这个页面焦点非常重要,切换页面,只要把所要显示的页面指针赋值给页面焦点即可,解析程序就是基于页面焦点解析页面的。一个界面由多个页面组成,一个页面由多个控件组成,同类控件采用单向链表串起来。一个控件由多个属性组成。因为同一时间只能显示一个页面,所以必须要有焦点页面来选择显示那个页面,因为同一时间只能按键操作一个文本控件,所以有焦点文本控件来选择操作那个文本控件。有了这些概念后,就可以创建界面。创建整个界面分为三步: 1、创建界面、页面和控件, 2、页面加载各种控件, 3、初始化控件属性,页面的文本焦点及界面的页面焦点。我们创建界面,还不行还应该实现我们想要的效果,那么实现这一步的过程,在菜单界面中,叫做解析执行,把界面最终在 LCD 屏上按照创建的界面模型,显示出来。 解析界面代码在 gui.c 中, GUI 为图形用户界面的缩写。假如界面有三张页面,具体选择哪一张由业务逻辑决定,选中的页面叫焦点页面,而切换页面,也就是切换焦点页面,以下代码为工作、设置、维护三张页面循环经过解决这一天的学习过程中自己存在的疑问,感觉这一天自己收获满满的。 2018年7月18日,这天由黄继翔 、谢浩永学长给我们讲解GPIO口控制及消息机制及进程切换 ; ADC、DO、DI、PWM、按键。在上课之前我特地复习了2017年寒假培训过得消息机制,我那是对这个概念真得很模糊。然而这次,我终于对消息机制这个概念有了更深一步的了解。消息机制是一种常用的信息传递机制,外设中断或者节拍例行处理往往是消息的来源,通过预处理压缩提取特征值后,按类型和值组合成消息规定的格式发送到消息队列中保存。大循环从消息队列中读取消息(一般采用先进先出原则读取),根据消息的类型找到相应的事件处理函数,对消息值进行处理。一般,我们把外设中断或者节拍例行处理产生消息这么一个事情,叫做“事件”,以PC机为例,按下一次鼠标,键盘,都是一个事件,这样子我们就可以理解为: 事件产生消息,大循环获取消息执行相应的处理, 所以消息机制也叫事件驱动编程机制。节拍例行处理中扫描到按键,先进行分析按键是否正确,之后抛出消息在大循环中执行界面程序。一般的讲,捕获一个事件必须要高速,而处理这个事件往往不需要很高的速度。可以这么说,消息机制是连接前后台架构三要素中断、节拍与大循环的纽带,它有效解决了各外部设备因为速度、时间、数据量等不同引起的处理及时性问题,协调了系统的运转。消息只能在大循环中接收,不能在中断或者节拍中接收。消息采用 16bit 数据形式,高 8 位为消息类型,低八位是消息值,两条宏定义用于读取 16bit 消息的消息类型与消息值的。发送消息需要把8bit消息类型和8bit消息值合并成16bit类型,再发送到消息队列中去。消息机制很清晰的把中断、节拍和大循环分工,通过消息连接起来,这样还有一个很大的好处是保证了中断、节拍不会去修改大循环中的变量,这样不会出现变量的临界态问题,提高了系统的稳定性说到消息队列。说到进程的切换,其实就是切换页面。我们在做页面切换之前一定要记得设置一个Updata 界面更新函数,因为为了判断是否有数据更新,需要引入一个跟虚拟屏一样的数组,这个数组叫图形屏,也就是页面解析后的内容先放在图形屏中,之后这个图形屏与虚拟屏做数据比对,有更新则把虚拟屏内容更新,再调用 LCD相关函数去更新显示 。说到消息队列,那么就要对队列有一个清晰的概念了,这涉及数据结构的知识,现在想起来才知道彭老师之前建议我们在暑假即将到来的时候提前学完数据结构的原因了。感觉这一天收获满满的! 2018年7月18日,这天由杨春明 、蓝常玉学长给我们讲解msOS系统存储原理、msOS系统节拍、msOS系统定时器、msOS系统串口通信。这节课应该是培训的这些天里面最难的一天了,涉及到的内容比较多。对于msOS系统串口通信原理:我还是比较熟悉的,因为串口是 MCU51 最常用的一种通讯方式,往往用于下载程序、追踪调试信息、扩展 HMI串口屏、 与 PC 等其它设备通讯。TXD 为发送, RXD 为接收。Keil 自带的软件仿真器提供了一个 Serial #1 的串口对话窗口,可以基于这个窗口可以输入输出串口信息。但是值得注意的是:Serial #1 显示也是 GB-2312 码,不过 Serial#1 对中文支持不好,新显示的是乱码,需要刷新一下才能正确显示。串口通讯一个 Byte 是以 bit 流的形式串行输出,一个字符串再以多个字符一个个的发送,所以速度比较慢,占用时间长, MCU51 的 RAM 不多,并且实际MCU51 项目功能比较单一, 所以采用了最常规的等待发送方式。在大的 RAM 系统中,可以采用先把数据打印到 RAM 中,之后利用串口发送中断或者是系统节拍一个个的发送走,这样不占用系统等待资源。对于msOS系统节拍:节拍一般需要由芯片内部系统时钟产生的中断实现, 并且把这个中断功能强化了,用于精准控制。节拍也是一种中断,往往是由定时器产生的固定时间间隔的中断,比如间隔 10mS 一次中断,利用这个节拍可以实现很多例行处理,比如按键扫描获取按键值, 多路数码管轮流显示刷新,传感器扫描检测等等。可以认为节拍是一个特殊的中断,相比其它中断一般不是固定时间间隔的,往往取决于这个中断设备,具有随机特性。在ARM 的 Cortex 系列处理器中,专门为节拍提供了一路专用的定时器,叫 Systick,与普通中断以示区别,考虑到它的特殊性,所以把节拍独立出来。一开始我对什么是系统节拍这个概念很模糊,也是看了相关资料之后才比较清楚它的概念的。msOS系统定时器:这个是因为软件定时器是基于节拍模拟出来的。软件定时器处理模式有两种,一种是直接在节拍例行函数中直接执行,因为在节拍中执行,也就是在中断中执行,所以执行的回调函数不能太长,否则占用中断时间。但有些确实需要占用较长时间的,则采用另外一种处理模式,那就是通过消息抛出回调函数的函数入口地址,再在大循环中执行。软件定时器由注册开始函数 TimerStart、系统节拍例行函数 TimerSystickRoutine 和停止 函数 TimerStop 组成。首先 TimerStart 函数需要把软件定时器的工作模式、延时时间、回调函数注册到相关的静态变量中,注册之后 TimerSystickRoutine 函数被系统节拍例行调用,每调用一次, 延时时间减一,当减到为零的时候,按存储的处理方式开始执行存储的回调函数,之后把这一路定时器清空。软件定时器的运行是基于系统节拍的,实现计时,所以必须要有一个节拍例行处理函数。软件定时器非常灵活,一定要分析透彻后用,若理解不够,反而引起不必要的问题。同时在基于理解的基础上,可以自己修改或增加能功函数,以满足自己需求。 虽然暑假关于msOS系统的培训已经结束,但是我觉得我对王总历时四年多写出来的嵌入式微系统知之甚少甚至连入门都谈不上;另外对他欲通过这个嵌入式微系统所呈现出来的分层设计,各模块独立运作,实现高内敛低耦合的思想的理解不够深刻,还需继续进一步学习。 时光荏苒,水月流逝。不知不觉大一生活已经离我而去,我深感大学时光的宝贵。所以就每天坚持8点前到实验室,除要上的课外,其他时间都泡在实验室,一直到晚上将近0点听到看楼的校卫关门的声音我才离开实验室。我记得郭天祥老师曾经说过:“如果一个人的模拟电路、数字电路和高频电子线路的基础不好,那么他可能设计不出什么好的电路,我们在做硬件实践的同时再来看书中的理论知识,这样的结合是最好的”。虽然《数字电路基础》我还没有学,但是我还是坚持看《模拟电子技术基础》。另外我深刻的认识到在开始学习单片机的时候,千万不要为了了解单片机内部结构而浪费大量时间,这样只能打击自己学习的信心,当你学会编程后自然而然地就一步步地掌握其内部结构了。培训的假期已经告一段落,但是我的学校日常生活变得很充实。虽然实验有的时候十分枯燥也很累,明知道进了实验室就意味着自己牺牲了几乎所有玩的时间,但是我没有后悔当初加入实验室的决定。因为我知道在3年以后即将毕业的我,可以自豪的说你看这就是我的大学生活,可能有的人认为我失去了很多东西,但我得到的是无价的,也许这样的人生经历可能有很多人惋惜,失去了很多玩的时光。然而这样的结果我想必然有很多人羡慕!为了彻底地改变自己,为了最求我的梦想,我充分地利用每一分每一秒,为了实现我的目标,我在愿意把所有可以用的时间都花在学习上,我感觉到的是充实,而不是枯燥无味。只要你不满足于现状,你就有出改变自己的愿望。你能下得了做一件事的决心,并且有坚持下去的毅力,只要你天天都在进步,不久的将来你会发现一个全新的你重新站在大家面前。珍惜现在拥有的,在接下来的大学3年里把所有可用的时间都用在实验室学习并积极锻炼身体! 最后我觉得没有不可以,永远不放弃!正如彭老师所说的:“做一件事能坚持,静得下心来研究,大学4年后终将会有回报!” 注:嵌入式微系统msOS是博主凤舞天花两年时间编写的一套简单易用,服务于中小企业的嵌入式通用开发平台,再用三年时间编写了书籍推广。其中河池学院彭建盛实验室是重点合作单位,前期博主去学校讲解,高年级的学生掌握后,利用寒暑假教低年级学生,本文是大二学生方焕的培训总结,学的很不错。
  • 热度 3
    2018-7-29 11:31
    2046 次阅读|
    0 个评论
    最近这几天在学长的带领下学习了 msOS 系统。初步觉得这个东西很大,最开始的时候感觉很难理解。因为到现在为止,我之前只接触过 51 单片机,简单的用 51 的板子做一些小项目,如超声波、温湿度等等。当时最多也就是 1 个文件夹,不到 10 的 .c 文件,后来看到 msOS 系统后,感觉有一些的力不从心。尽管后面在学长的引导下,可以进一步看懂一些,但仍然有许多的过程像是在迷雾里一样,并没有搞懂其具体的意思和功能。加上后来去做电子竞赛,当时记忆已经有了丢失,现在重看 msOS 系统又有了许多的疑问之处。 虽然对于整个 msOS 系统还并不能完全熟悉,但在这次的学习中还是惊讶于这个系统思路和框架。(我的世界) 在学习 msOS 之前,在编程方面并没有一些规范化的学习,同样,也并没有见过一些完整系统的一些编写代码,或者是见过一些,但却读一两个函数之后就已经完全看不懂了。而这次学习有比较完整的资料介绍和学长解释,所以也是第一次发觉一个系统的强大和规范。一个最简单的例子,代码的规范。以前的我在编程过程中对变量和函数名的定义一直是怎么舒服,怎么简单怎么来。但这次看了 msOS 系统的代码之后,发现了自己的局限,当文件多了之后,找函数、写名字就成了一个大问题。而在 msOS 系统中文件名和函数名都是用对应的英文字母代替,书写调用的时候就十分的方便。同时也惊讶与 msOS 系统的框架结构,那种感觉就好像是在《我的世界》中,和别人相同的材料,相同的环境,但自己只能建一个小茅庐,但别人却建了一座半自动化的城市。 msOS 分为应用层( app.c )和系统层( system.h ),可以在一定范围内很大程度的简化代码,并且系统中消息机制的处理方式也能十分可靠运行整个系统,抛消息并非是在系统节拍中,相反它通过单独用软件定时器设定一个时间,每次到达那个设定的时间,就抛一次消息,避免了和系统节拍相冲突。真是只能惊讶于怎么想出来。 注:嵌入式微系统msOS是博主凤舞天花两年时间编写的一套简单易用,服务于中小企业的嵌入式通用开发平台,再用三年时间编写了书籍推广。其中河池学院彭建盛实验室是重点合作单位,前期博主去学校讲解,高年级的学生掌握后,利用寒暑假教低年级学生,本文是大二学生 王科峰的培训总结,博主惊讶于他的认知,一个大二学生达到这个层次的认知,那么可以在软件上走的很远。 编写软件,实现资源的高效配置, 本质上就是构建自己的规则,也就是实现自己的世界!
  • 热度 7
    2018-3-11 22:46
    2767 次阅读|
    1 个评论
    本周四,公司正式敲定,msExplorer平台落地的核心产品就是智能屏,雨滴今后打上智能屏的标签,雨滴就是做智能屏的,这样2017年一年的转型终于有了成果,形成了一条清晰完整的路线。 为了记住这个事件,也为了更好的总结这个过程,便于大家学习,特把雨滴智能屏整个思路怎么来的写出来。 智能屏的定义,跟我有直接关系,所以有必要先从我的历史写起。 我是浙江温岭人,小孩时家里条件差,父亲不甘于命运,跟姑父去青岛回收废电气、废金属,再买到温岭当地,90年代青岛因为国企改革,所有有很多废旧电气淘汰下来,而浙江因为民营经济兴起,所以需要大量的金属资源。父亲回收的废旧电气恰好是我童年的玩具,这样让我获得了广泛的知识面,更为可贵的是,因为很多废旧电气稍作改装就可以使用,所以本地人经常拆解电气,利用局部可以用的零件做各种产品,最典型的就是废旧电脑淘汰下来的风扇,有些进口的风扇110VAC,我国电压220VAC,要么需要2个串联使用,要么需要用一个变压器降压到110VAC上。可以这么讲,当地废旧电气改装是很普遍的,而那个时候,虽然还是初中生,但是因为有父亲给我买的“电工学”,学了一些知识,很创新的利用2uF的油浸电容(拆机的很多,零成本)代替了变压器,很好的改造了110VAC的风扇,现在还用在老家的厕所里。这一次的改装创新获得家人和周边人的认同,促进了我继续在这条道路上前进。 因为家里条件的限制,但是有很多废旧电气,所以拆解,改装是我的拿手活,比如用竹子代替陶瓷做滑动变阻器,用电机旋转产生脉冲交流电捕鱼,用晶体管自激振荡做逆变器,用功放模块改装功放,用定时闹钟加可控硅做定时电饭煲煮饭,这些案例很多,做的越多让我越灵活变通,说好听一点是灵活应用,说难听点就是土气十足。 少年时期的经历一直支配着我,让我思考问题总是侧重基于当前条件设计一些简单易用的东西。 大学时接触了MCU51单片机,并且做了几个项目,所以对单片机有比较深的感情,之后进入了手机设计公司,接触了当时高上大的手机技术,所以我做的第一件事情,就是把手机技术应用到单片机中,于是就有了“实用单片机系统”(MS)这一套基于MCU51的单片机软件开发平台,获得了比较广泛的认同。之后做大功率高频感应加热电源,PLC等,又把这一套MS进化为带OS和GUI的msOS,更是获得大家支持,建立了2000人的大群,因为有群友的支持和互动,自己的状态也越来越好,甚至有些陷入其中。 msOS是基于Stm32 ARM内核的,因为项目要求只支持黑白字库屏,然而还有很多需求是需要支持大彩屏的,需要很大的Rom和Ram,此外需要涉及多种字库,光彩屏的GUI就很复杂,使用起来很糟糕,下载程序周期也很长,所以大彩屏是一个开发痛点,而当前的解决方式一般是采用迪文或者大彩等的串口屏,工业上用支持modbus协议的HMI屏。串口屏部分解决了大彩屏的需求,但是对于复杂的界面他们还是无能为力,此外市场又开始对网络有需求,比如4G,WIF等,需求不停的升级,当前的串口大彩屏无法很好的满足市场需求。 我本想着基于msOS在STM32F429上升级到彩屏GUI,但是因为时间受限,此外彩屏GUI自己也越想越复杂,做了一段时间就放弃了,但是这个需求该如何突破,一直在脑子中占据着。直到有一次在msOS群内聊天,再次提到这个问题的时候,我突然冒出来一个想法,能否利用android先进的GUI,在android上虚拟一个单片机虚拟机,这样android系统就可以运行单片机程序实现大彩屏,于是马上把这个想法告诉了郑总和苏鹏。 郑总和苏鹏是两位android专家,郑总去寻找单片机虚拟机,但现有的都不理想,苏鹏则从技术角度阐述这条路的艰难,于是这个想法陷入了困局,但是我脑子中总觉得这个事情应该是有解的,于是过了几天我找了苏鹏,跟他提到一点,老板是干什么的,老板就是要把“不可能变成可能”,在这个聊天中,我突然想到干嘛非要找虚拟机呢,直接用现成的单片机,这个问题不就解决了,于是把郑总和田飞峰也叫进来,把我这个想法跟他们一讲,大家都很认同,于是一起去喝酒祝贺。 到了第二天郑总就想好了整个软件的架构,因为2017年一年,他都在接触玩具类产品,尤其是blockly编程,所以他之前的研究工作,加上雨滴这几年做了很多客户定制api的工作,把这些已有的东西整合打包起来就搞定了整个软件,取名为msExplorer。这样说干就干,保密进行中,直到2017年底才逐步解密对外公布,为了便于推广,做了一款针对嵌入式人员使用的手机:msPhone, msExplorer是一个技术平台,那么这套技术的最终产品是什么,一直没有定论,虽然现有的客户都可以统一到这个平台上,但是就雨滴主业手持机来说,为了它做这么一个平台显然没有太大的意义。我能想到的一个应用是工业图像识别,但是这个作为一个具体的产品,也不需要这么一个技术平台,那么这个msExplorer,到底最终的产品是什么? 2018年春节过后,田飞峰和苏鹏带着msPhone样机去了一趟美国,路途中苏鹏受一个同行做彩屏驱动测试设备的朋友李先生影响很大,回来后跟我讲了他的故事,于是我和郑总还有苏鹏去了李先生哪儿看了一下,被他反复灌输了彩屏这个名词,此外苏鹏好心在苹果总部带回一台iPhoneX手机给我,我体验了一下人脸识别,之前我对于iPhoneX不是很认同,原因在于没看到有多少人买,其次感觉人脸与指纹相比,没有本质性的区别,但是直到我使用了iPhoneX之后,我的观念开始变化,人脸识别相对于指纹减少了一个按Home键的过程,让我的操作体验非常好,起码我的大拇指少按了一下,手指不用再这么疲劳了。这个事情又一次促进我思考,我为什么在人脸识别上这么后知后觉呢,作为IT人员,苹果把产品都做出来了,我都感觉不到它的意义,只有用了才让我感受到它的价值,这说明我的思维远远的落后于时代了,于是我开始否定自己。于是我把这周这两件事情结合起来,我们msExplorer的意义所在,就是为了给客户介绍开发的难度,那么作为客户来说,核心就是大彩屏,客户有大彩屏需求,若让客户在使用大彩屏少比串口屏更简单,那么我们这个msExplorer平台就有很大的价值了,因为简单易用了,追求简单易用才是技术发展的需求,想到这儿,“智能屏”三个字就自动的出现在脑海中。 周四到公司跟大家一交流,大家虽然觉得土一点,但是接地气,比较适合,于是就确立了智能屏这个名字,雨滴就是做智能屏的。
  • 热度 6
    2018-3-7 22:23
    2218 次阅读|
    5 个评论
    msExplorer平台即将问世
    msExplorer是什么,这个恐怕是很多第一次接触到这个词语的朋友们在脑海中的第一反应。在讲msExplorer是什么之前,我们需要先来讲讲它的前身msOS。msOS是凤舞天在多年嵌入式开发经验的基础上,结合手机和结构化编程的思路,提出的一个消息机制为核心的简化版实时性操作系统。但是随着物联网方面的各种需求的增多,以msOS为操作系统的单片机开发中普遍面临大屏幕驱动以及网络通讯方面的困难。为了解决面临这些问题,于是msExplorer应运而生。下面是msExplorer的一个基本框架: msExplorer采用了msOS为它的核心运行系统,通过单片机控制Android端HTML5浏览器框架的方式进行开发。用户只需要在用keil开发时调用我们公司开发的GUI/NetWork库就可以快速的实现各种应用。 我想可能会有很多人会问到为什么会将系统结构设计成这种单片机控制android的方式,而不是设计成android来控制单片机的方式。其实我们公司最早的第一代产品就是采用的手机控制单片机的方式,手机端用j2me开发应用,单片机端负责外设。但是这一模式在很多场合会有一定的缺陷。比如我们在最早将手机控制单片机的模式用在门禁场合时,因为里面的业务逻辑都是在手机端实现的,而手机在长时间的运行后容易出现系统变慢,磁盘变坏,或者系统挂起的现象,容易导致用户无法开门。另外还有在车载系统开发中,因为android平台一个开机时间长,android系统庞大,用户开发android的水平有限,对外部突然掉电导致的磁盘错误无法控制,容易造成无法开机等现象。 为了克服这样的问题,我们提出了核心业务逻辑优先的设计哲学理念。这样设计的目的是为了让客户更将专注于核心业务逻辑部分,而不需要太多的关心其它的辅助部分,如网络、显示、存储。所以我们将单片机作为核心业务逻辑,将android端作为辅助,这样就算是android端系统出现了问题,依然不会影响我们的基本核心功能。比如门禁的核心功能就是开门,其它的信息处理都是次要的,就算是网络坏了,或者屏幕坏了也不会影响开门的基本功能。毕竟科技的终极目标还是以人为本。这个设计哲学理念让我们最终采用了以单片机来控制android系统的方式。 其次采用这一方式对嵌入式开发人员而言,首先他不需要重新学习新的开发工具,直接采用keil工具开发即可;同时也不用了解android系统的运行和各种控件的熟悉;对于各种眼花缭乱的JS语言和框架也可以当成空气。唯一所需要了解的就是我们的GUI/NetWork接口。为了进一步减轻重新学习力,GUI/NetWork提供的接口也是尽可能的简单。 msExplorer采用的这种模式和三极管的工作模式有点像,起放大作用。就是嵌入式人员只需要提出要求,剩下的事情就全部由android来搞定。未来如果嵌入式人员需要采用AI,那么他完全无需要自己去学习AI,只要通过接口告诉android端,就可以完成。这样就轻松放大了嵌入式开发人员的能力。阿基米德曾经说过,给我一个杠杆,我可以撬动整个地球。我想说的是,msExplorer就是这样的一个放大器,可以帮助嵌入式人员来撬动一个新的领域。
  • 热度 28
    2014-11-25 19:52
    1358 次阅读|
    0 个评论
    这两个周,应河池学院彭建盛老师的邀请,为他们刚成立的广西系统与控制重点实验室讲学,主要的内容是msOS。 彭老师跟我认识在我做手机开发模块的时候,对我的人才培养理念比较认同,也积极的把企业这一套应用到高校,并且经常自掏腰包给学生买一些仪器设备开发板之类的,2011年邀请我来他们学校给他们学生讲学过一次。 河池学院在广西宜州,地方比较偏,交通也不好,学校资源有限,高水平老师较少,学生基础也相对较差,算是典型的二三线高校。就这样的一个高校,能有彭老师这样为学生的年轻老师,真是难得。 今年年初彭老师告诉我他努力想学校申请了一个大的实验室,并且获得学校的一笔资金,想请我来负责这个实验室的教学,因为他深感自己虽然长期培养学生,但这么多年都没有传承,沉淀下什么东西来,需要借助企业的力量实现传承,而我,恰恰非常重视传承,并且我开发的msOS很适合他们的实验室,所以初步答应了下来。 到了年中彭老师专门来到深圳跟我面谈实验室的事情,我就问了他一个问题,你还这么年轻,有大把的机会在企业赚钱,也可以去更好的学校教书,你留在河池这类学校干什么?他说他想做点事情,当个好老师,我被他感动了,中国还是有不少很好的老师的,看到他我就想到一直支持我的兰州大学的周庆国老师,所以我告诉他,我全力支持你,并且将投入较大的精力和资金,把这个实验室办好。 我公司计划提供每年10万元的资助,包括学生补贴和实验设备等,并且每年过来一定时间的培训。这个实验室的教学完全由我负责,彭老师主要负责监督学生作用。来之前的几个月中,实验室学生基本上了解了msOS-Mcu51版本,有一些技术入门,我这次过来主要抓三方面:英语、软件、硬件 1、进实验室的学生,一律要背单词,每天100个,进入实验室的第一件事情,就是背单词,用“百词斩”背,不要求强记,但必须要浏览100个,还要打卡。二三线高校学生,英语学校要求不高,导致普遍很差,而编写程序和阅读datasheet是必须要英语的,所以英语是基础,必须要学好。   2、软件基于msOS-Stm32培训,通过一年的msOS推广,很多学生反应msOS在系统类软件中,入门容易,很多概念相对容易懂,通过学习msOS之后,学习其它软件,比如uC/OS非常容易,在应聘面试中获得很好的效果,比较容易取得高薪,河池学院去年就尝到了这个甜头,所以非常支持msOS的培训,整个实验室都在学msOS,把其它的都抛弃了。   3、硬件方面基于我的认知来学,因为硬件涉猎很广泛,所以大算围绕msPLC和开关电源来展开,通过穿插很多物理知识,作为科普。让他们的知识面尽可能的广泛。   因为这是一个重点实验室,学生有20来人,都是挑选的,虽然基础不算好,但都是真正喜欢嵌入式的人员,热情很高。加上前期的准备工作,有个别学生在简单的讲解一遍后,初步掌握了msOS,让我很欣慰。而现在我们采用较严格要求的培训方式,同学们都非常积极的配合,考虑到避开正常上课时间,一般培训都在夜里进行,从9点到12点,培训后同学们经常继续讨论学习到深夜1、2点钟,很值得佩服。   我希望河池学院这个实验室,是我新的起点,把msOS推广起来,让更多的人受益。