|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
北京麦克泰软件技术有限公司 何小庆
2007 年底我发表了一篇文章“ 我与单片机和嵌入式系统 20 年 ” ,后经热心的媒体朋友推荐在几个网站上刊登并受到了许多读者关心和反馈。更多意见是希望我能把从业这20年心得分享给年轻的工程师朋友,仔细考虑一下的确很有道理。 20年时间电子技术已经有几代的变化,过去认为的高新科技,今天是萝卜白菜。但是掌握坚实的专业基础,捕捉机遇,树立信心一直都是不变应万变的人生必修课程。我愿意借下面这篇短文和大家分享我的体会,里面即有成功的喜悦,也有失败的挫折、遗憾和惋惜。
硬件是本
1984 年大学毕业,我被分配的第一份工作就和计算机硬件密切相关-测试和维修,研究所事业部领导的解释也是合情合理的 —— 你是男同志,学自动控制的,其他同届分配来的多数是学计算机的,女同志也占多数。我开始还老大不情愿,时不常地往科室里面跑,总想多学习点编程方面的技术。但是很快,同事们都跑过来找我请教了,因为那个时候的计算机可要比现在的 PC 复杂得多,我们研究所的专业方向是工业控制,那就必须和外设、接口、驱动打交道。如果一点不了解处理器、寄存器、接口电路、外设、程序是没法设计和测试的。因为工作的特点,我首先学习和掌握的就是这些东西,例如,通过编写 8255 驱动打印机的测试程序,可以完整地把 CPU 的 I/O 电路、 8255 器件和外接口测试好。一段时间以后,我对计算机的陌生、胆怯的心理一扫而光,上学时候更本没有机会看的 CPU ,存储器,磁盘,电源现在都有机会亲自组装,亲自把操作系统安装上去(那时并不像现在的 WinXP 这样简单),我们使用的是微型机,光是操作系统的 8 寸软盘就多达十几张,或者几盘磁带,安装一般需要几小时,而且系统还没有任何中文标志。
这些和硬件打交道的经历加上 2000 年我的研究生毕业设计课题—— 一个电网控制系统的项目,另外,下海后参加数字程控交换机、移动电话基站的项目都是实实在在的硬件设计,其中一个设计是基于 8086 的主板,另一个是设计 386 的主板,都要求运行实时多任务操作系统。整个系统很复杂,当时的器件集成度低,调试手段也没有现在 ARM 的 JTAG 方便,但是掌握了硬件设计,调试和生产的基础对于我的专业素质大有提高,这些经历为我之后投身嵌入式事业奠定了基础。
学习的力量
大家都知道学习的重要性,我想说的是,如果你热爱现在的专业,希望在这个方向上有更深发展,那么尽可能多地积累这个专业的知识是你未来成长的基础。 1988 年我得到一个考研的机会,当时的领导不希望我报考研究生,他表示计划安排我到美国参加培训,当时能够去美国的机会并不多,但我考虑再三后,还是决定放弃出国的机会。因为通过几年的工作实践,我深深感到自己计算机专业基础知识不够坚实,因我一九八几年在大学本科学习的是 FOTRAN 语言和大型机,而后来研究生课程的 C 语言和软件工程的课程都更适合一九九几年的情况。两年的研究生学习虽然使我在某些方面损失了一些,却为我之后十几年突飞猛进的成长和进步奠定了厚实的基础,也为我之后下海创业平添了一份自信和力量。
学习不仅是进入学校学习,更是一个持续持久的过程。从我最初在研究所里接触微型机、单板机和实时操作系统,到嵌入式操作系统、通信协议、嵌入式数据库,再到手机软件,转变相当大,而专业领域却一直以嵌入式系统为核心,这块我投入的精力最大,也最喜爱:从 VRTX , uC/OS-II 到 Linux 和 Montavista Linux ,对这些产品从了解、谈判、市场、技术支持到培训、项目开发我参与了几乎所有过程。技术上,即使同属于嵌入式操作系统,彼此之间也有差异:内核原理、 API 、 BSP 、文件、网络、图形模块均不一样,尤其是转到嵌入式 Linux 后,我发现它和以前的嵌入式操作系统之间存在很大差异,转变就要为之付出相应的汗水、辛劳。
通信产业在 20 世纪 80 年代末蓬勃发展,国内的通信企业纷纷仿效国外对手投入巨资研发先进的通信设备。嵌入式操作系统、网络协议和开发工具等嵌入式软件立刻有了广阔的用武之地。我从 1984 年开始接触实时操作系统,当转向网络协议,特别是电信协议时,对我一个计算机专业的人,其困难可想而知了,即使只学习个皮毛也不得不下一番苦功夫,那怎么去学呢?我的方法是:一、向厂家学 —— 我和公司的技术人员专门到波士顿附近的 Netplane 和加州附近的 Telenetworks 参加培训,虽然花钱又吃力,但是收获不少;二、向用户学 —— 东方通信和上海贝尔(现在的阿尔卡特)是我们的用户,记忆特别深刻的是东方通信,他们朴实热情。如此反复几十次的谈论和培训让我和同事都很快成长起来。
手机是90年代后流行的通信和消费电子产品,中国企业也在此期间进入这个领域。开始是组装生产,后来是自主设计。手机虽小,五脏俱全,除了通信工作外,现在越来越多的手机增加了多媒体、 PDA 、照相、互联网功能,这些多是典型的嵌入式系统。手机通讯部分一般是由基带芯片公司设计完成,国内手机厂商主要是完成应用系统设计——嵌入式系统。因为当时与 montavista 合作,而摩托罗拉又在使用这个软件,于是我们在 2004 年进入手机这个圈子,机遇是全球兴起了一股智能手机浪潮, Nokia 使用 Symbian ,摩托罗拉使用 Linux, 还有微软 windows mobile 得到了许多中国台湾公司的支持,摩托罗拉 A760 系列在中国市场的巨大成功激励了中国手机企业加入 Linux 智能手机开发队伍。
手机设计有相当多的特殊要求,就电源管理而言,因为手机是一个关键应用装置不同与一般的消费电子产品,手机能耗的指标好坏直接影响产品销路,电源管理和应用处理器、 OS( 比如 Linux) 、驱动程序、应用软件、手机的硬件( LCD 大小等)都至关重要,我和公司技术人员花了大量的时间研究这个问题,特别是基于 Linux 的电源管理的方式,公司技术人员通过支持我们的 montavista linux 手机用户的实践,理解和掌握了具体的方法。最近我和他们一起撰写的 “ 嵌入式系统电源管理软件的比较 ” 刚刚在某杂志发表,有兴趣的朋友可以交流。
嵌入式系统技术和知识更新很快,所以学习永远是进步和成功的源泉。
坚持才能成功
这里想要说的是,无论做任何的事情总是有顺利和不顺利的时候,有失败的悲伤,也一定会有成功的喜悦,但是无论如何一定要坚持,坚持才有希望。
90 年代初,决定下海本身是一个需要勇气的事情,决定从事软件就显得与众不同,而后来致力嵌入式软件,就更需要有信心和毅力,更要耐得住寂寞、坚持不懈——这是我的心得。
1995 年公司成立初期,我在向用户介绍 VRTX 的时候,多数场合我必须先把嵌入式操作系统的基本知识讲解一遍,然后再把一个多任务的程序演示一下给他们看,简单的可以是五个任务。这种情况是五个任务的优先级相同,如果改变任务的优先级,显示的情况就会发生变化,进而需要演示使用调试工具显示任务状态和程序源代码及断点调试。整个的销售过程很漫长,有时甚至是煎熬, 1 ~ 2 年是很正常的时长,但我没有放弃,几年的努力终于迎来了一点点收获,开发工具( MRI C/C++ 编译器和 XRAY 调试器)在电信设备研究和开发企业得到了认可。当时大多企业正在开发基于 68302 的数据终端设备,急于寻找一套开发工具。 VRTX 支持 X86 的 real-mode( 实模式 ) 版本也因为软件配置灵活河丰富,使用简单,价格便宜在基于 186/386 的控制企业开始使用,但是这些只是中国巨大的嵌入式软件市场的冰山一角,等到真正冰雪开始融化,已经是 90 年代末了。这中间我也考虑过转向其他的产品和市场,也尝试过硬件仿真器 , 测试工具等产品,但最终我和公司的同事还是坚持下来,到今天,嵌入式操作系统仍然是我公司的主力产品和方向。
uc/os-II 这个嵌入式操作系统的推广过程和 VRTX 是相反的, VRTX 是要通过自己学习,向用户宣传演示,让用户接受这个概念,让用户相信使用嵌入式操作系统的好处并能够成功。而 uc/os-II 则是因为作者 Jean Labrosse 先生的一本书和他的中文版本在中国悄然流行起来,也许是因为早期的 uc/os 是完全免费的软件,而升级后 uc/os-II 是一个商业软件。这件事情无论是原作者、业内人士一开始都没有特别留意,由于国内用户的知识产权意识不强,这几年我们的压力相当大,一方面是厂家不理解,他们质疑,既然中国有这么多人在使用这个软件,为什么购买商业授权的用户却是少而有少。另外一方面,公司每天收到大量的 uc/os 用户信息,当销售员把电话打过去,真正有意向购买者凤毛麟角,要么就是不知道这是个商业软件,要么就觉得价格太贵。厂家和公司内部的抱怨都压到我这里。我顶住了这些压力,并坚信只要 uc/os - II 做得好,用户能够用它设计出好产品,中国用户还是愿意为 uc/os-II 买单的。况且它的价格只是某些国外同类软件的十分之一,并且没有生成数量的限制。安抚好公司内部,我和公司和同事多次与 Jean 沟通,最后我作了三个方面的安排:一、让 Jean 写一封关于 uc/os-II 的版权声明,我们翻译成中文发表在麦克泰公司网站,在国内主要嵌入式系统媒体发表;二、说服国内嵌入式硬件,工具和系统厂家通过购买合法 uc/os 授权成为伙伴;三、重点专注在国内的外资、上市、面向出口企业、国内的半导体和大型设计机构。经过最近两年的努力终于取得了一点成绩,如北京博创、广州周立功等嵌入式系统公司已成为我们的合作伙伴;珠海矩力、南京南瑞、广州数控、科学院 DSP 中心等已成为 uc/os-II 合法授权用户。更加可喜的是通过我们在国内的辛勤工作,得到了半导体公司和工具厂商如 NXP 、 ST 、 Xilinx 和 IAR 的认可,他们一致认为 uc/os-II 是一个应用广泛的嵌入式操作系统。公司内部原本不看好这个产品的人也逐渐改变了看法。
产品之痛
没有哪个企业家不想拥有自己的产品和技术,我也一样。我一直梦想着自己的核心产品。在中国内地,一定的时间内,硬件和系统产品是企业做强做大的关键。许多成功企业的共同之处就在于他们有自己的核心强势产品,如华为通信产品、联想的 PC 、长虹的电视、海尔的白色家电。
我和麦克泰在过去十几年中,多次尝试过自主开发、和别人合作开发产品,给我影响最深的是这样一个例子: 1998 年中国通信蓬勃发展,设备制造企业也大干快上,他们对先进的嵌入式硬件、软件、工具等非常感兴趣,数据通信也是当时的发展热点,摩托罗拉公司的 Powerpc860 (现在的飞思卡尔)通信处理器尤其引人注目, 860 集成了一个通用的 CPU 和通信引擎构成 4 个高速的 10/100M 以太网络,这对于当时的数据设备和网络管理设备都是非常适合的芯片。于是我们借鉴国外的一个硬件参考设计,自己开发了一款 860 硬件,取名叫 NETE860 ,它的特别之处是除了母板内置的 100M 以太网外,还可以通过 4 个扩展接口支持 10M,E1 接口,这在当时市场上销售的所有 860 的设计中是独一无二的。最初我们移植了 VRTX RTOS 和 interniche TCP/IP( 硅谷的一家提供 TCP/IP 源代码的公司 ) ,后来因为 Vxwork 逐渐在国内流行了,我们又移植了 BSP 支持 Vxwork ,到再以后上海罗顿和交大希望在 NETE860 上使用开源 Linux 开发路由器,我们又把 hardhat linux (Montavista Linux 早期的一个开源版本 ) 移植了上去。两年的时间这个产品逐渐成熟起来,有了一些销路,但是由于初期的设计是一个参考设计平台,没能充分考虑 OEM 的需求,这样销售上就没有长远的数量机会,只能和我们开发工具软件搭配销售。我利用多年在西南市场的关系,找到了一个合作开发基于 NETE860 路由器的机会,当时甚至合作的公司名都已经注册下来,但由于我和对方过于谨慎,另外,包括我在内的公司管理层一直对需要长期投入的 OEM 销售和产品抱有一种将信将疑的态度,导致后来其他公司看到这样的机会,很快开发出类似的产品来。他们定位了 OEM ,加上开源 Linux 开始大行其道,这种免费软件配合硬件的模式立刻流行全国。 860 之后我们虽然敏感于 ARM 时代的到来,开始设计 NETCARM ,但是不久就被淹没在众多 ARM 硬件的海洋里悄无声息了。
之后的几年,我和公司继续尝试过合作开发数字监控产品,委托别人开发嵌入式调试工具等,终因时间长,收效漫而告终。久而久之我的信心慢慢消沉下来,公司内部的压力和抵触情绪也越来越大。我和公司的产品之路也这样偃旗息鼓了。
今天回头看看过去的道路和曾经的同行,许多当时名声显赫的公司已悄然无声或不复存在,我庆幸自己和麦克泰还能够生存下来,同时我很仰慕像合肥的华恒,科银京成(成都电子科大为开发团队)的同行们,他们不但能够坚持下来,而且已经有了相当的知名度,想必也经历了一番惊涛骇浪。
结语
20年的时间是人生的一个片段,从20多岁风华正茂的青年到沉稳的中年是一个充满幻想的过程。追逐理想的足迹,我走过了学生、工程师、创业者和管理者的道路。我热爱嵌入式系统、我的工作、我学习和推广过的产品、我的家人、老师、合作伙伴、同事以及许许多多的用户和同行朋友们。如果再让我选择一次,我依然会选择嵌入式软件和嵌入式系统,正如行业老前辈何立民老师所说 “ 嵌入式系统是一个无限大的系统 ” ,它充满着新奇、变化和智慧,像一个磁石永远吸引着我。 |
|