查看: 3637|回复: 0
打印 上一主题 下一主题

关于μC/OS-II的故事

[复制链接]
跳转到指定楼层
沙发
发表于 2015-3-30 11:53:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
多年以前,我设计了一个基于Intel 80C188的产品,需要一个实时内核。在前一家雇主那里工作时,我一直在使用一个知名的内核(以下称为内核A),但该内核对我当时设计的产品来说太贵了。我找到了一个廉价的内核(以下称为内核B),当时大约1 000 $,并开始了我的设计工作。我试着让那几个很简单的任务运行起来,竟用了2个月时间。我一天到晚给该厂商打电话求援。该厂商声称,内核B是用C语言写的;不管怎样,我须用汇编语言给程序中每个对象初始化。虽然该厂商很耐心,但我实在是够了!产品的开发也耽误了。我真是不想再花时间去调试那个廉价的内核了。后来得知,我是该厂商的第一个客户。这个内核实际上没有完全测试和调试过。
 
  还是回到正路上来,我决定使用内核A.5个用户的价格是5 000 $,此外,我的每个产品还要付200 $的内核使用费。在当时,那可是一笔很大的开支,就算是花钱买个心里踏实吧。用了2天时间,内核转起来了。项目进展到3个月上,我的一个工程师发现,内核好像有毛病(bug)。当内核中的这个毛病被确认无疑后,我把我的代码寄给了该厂商。此时,厂商提供的90天的担保已经过期了。为了得到答复,我还须支付每年500 $的维护费。我和销售商争辩了好几个月,我认为,他们应该尽快处理这一处毛病才是,我实际是在为他们做好事;可是,他们不予理睬。最后,我只好认了,又签了程序维护合同,而该厂商6个月以后才处理了那个毛病。是的,6个月以后!我简直气坏了,最要紧的是,我的产品开发耽误了。
 
  用了将近1年的时间,内核A才在我的产品中稳定运行。然而,我得承认,从那儿以后,内核A再没有什么问题了。渐渐地,我自然会想到,写个实时内核有那么难吗?不就是不断地保存、恢复CPU的那些寄存器嘛。那是我决定试试写我自己的实时内核时的情景,主要是用业余时间、晚上和周末。也用了大约1年的时间,才使内核转起来,在某些方面还比内核A好。我并不想开公司去卖这个内核,因为当时市场上已经有大约50个实时内核的产品了,人们会想,怎么又多出一个来了呢?我想到给杂志写篇文章,打算投《C语言用户日记》(C User?s Journal)杂志,因为内核是用C写的。我听说该杂志稿费为每页100 $,而其他杂志一般是每页75 $。我的文章大约70页,这笔稿费对我写内核所用的时间应是不错的补偿。很不幸,文章被拒载了。有两个原因,一个是文章太长,杂志不愿意连载;另一个原因是,他们也不想要“又是一篇关于内核的文章”。我决定转向《嵌入式系统编程》(Embedded System Programming)杂志,因为我的内核是为嵌入式应用设计的。我和该杂志的编辑Tyler Sperry先生联系,告诉他,我想在他的杂志上发表我的实时内核。我得到的答复和《C语言用户杂志》是一样的:我们不要“又是一篇关于内核的文章”。我告诉他们,我的实时内核和其他人的不一样,是可剥夺型的,可以和许多商业上出售的内核产品竞争,源代码可以放在《嵌入式系统编程》杂志网站的留言板上(BBS)。我每周给Tyler先生打两三个电话,几乎是求他发表我的文章。他终于同意了,大概是我的电话扰得他烦了。我的文章从70页被压缩到30页,连载在1992年5月期和6月期杂志上。该文章几乎是1992年最热门的文章。头1个月,就有500多人从《嵌入式系统编程》杂志的网站留言板上下载我的源程序。Tyler先生真怕实时内核的商家们会要了他的命,因为在他的杂志上刊登了实时内核的源码,这使商家们感到不安。我猜测,商家们一定已经认识到μC/OS(当时称做μCOS)的质量和功能。该文章实际上是第1次给实时内核的内在工作原理曝光,一些过去的秘密公开了。几乎是文章在《嵌入式系统编程》杂志上被刊登出来的同时,R&D出版社的Bernard(Berny)Williams博士来电话了,《C语言用户日记》杂志就是这家出版社出版的。此时距我最初与该杂志联系已有6个月了。他留言给我的妻子,说他对我的文章感兴趣;我回电话给他:“你不觉得你有点太晚了吗?我的文章已经在《嵌入式系统编程》杂志上发表了”。Berny只是说:“不,不,你没明白我的意思,因为文章那么长,我打算出一本书”。起初,Berny只是想简单地把我手上已有的书稿出版成一本大约80页的书。我告诉他,如果写成一本书的话,我打算写得更好一些。以后,我又用了大约6个月的时间增写书的内容,就成了本书的第1版本。书大约250页。我把实时内核的名字由μCOS改成μC/OS,因为《嵌入式系统编程》杂志的读者一直称μCOS为mucus,那个词发音像英语的“痰”,听起来让人不舒服。回想起来,这可能是第1次给实时内核起名字。总之,实时内核μC/OS就这样诞生了。
 
  开始时,书销售得很慢。Berny和我预计在书的售期内能售出4 000~5 000册,可是照开始时的销售速度,能卖出2 000册就不错了。Berny坚持说,让人知道这本书需要时间。于是他连续在《C语言用户日记》上刊登广告,一直持续了1年。约在书正式出版的1个月之前,我第1次参加了在加利福尼亚州的圣。克莱尔(Santa Clara)举行的嵌入式系统会议,那是1992年的9月,我第1次见到Mr. Tyler Sperry,我给他看了即将出版的书的草稿。他很快地翻了翻,问我愿不愿意在下一届嵌入式系统会议上做个讲演,下届会议在亚特兰大召开。那再好不过了,我说我愿意。但我讲些什么呢?他建议我讲“怎样使用小实时内核”。在从加利福尼亚返回的路上,我想,我这是怎么了?我从来没有在那么多人面前讲过话,到时候我自己慌了怎么办?如果我讲的都是些很平常的知识……,人们可都是花了钱来听会的。以后的6个月中,我准备了讲稿。后来的会上,听我课的有70多人。起初的20多分钟里,我出的汗至少有1磅多。课后,约有15人上前来表示非常喜欢我的课,也喜欢我那本书。我得到了1993年在圣。克莱尔举行的会议的邀请,可我没能参加,我参加了1994年波士顿举行的会议。从那以后,每次嵌入式系统会议上都有我的例行讲演。过去几年中,我进了会议的顾问委员会(Advisory Committee)。最近的几次会上,每次的会议我都要做至少3次讲演,每次听众都在200~300人。会议对我的讲演的评价总是在前10%.至今,μC/OS和μC/OSII的书在全球的销量已超过25 000多册。我收到并答复了来自至少44个国家的数千封电子邮件,我仍然试图答复他们每一个人。
       我确信,如果您写给我什么,回应您是我的责任。1995年,《实时内核μC/OS》被翻译成日文,在《接口》(Interface)杂志上刊登。2001年,μC/OSII被翻译成中文;韩文版的译文出现于2002年初;μC/OSII的日文翻译工作正在进行中,2002年已面世。μC/OS和μC/OSII已经被移植到40多种不同的CPU上,移植上去的CPU数量还在不断增加。读者可以访问μC/OSII网站http://www.uCOSII.com,看您想用的那一款处理器是否有现成的移植范例。1994年,我决定写第2本书《嵌入式系统构件——实用的C语言模块》(Embedded System Building Blocks, Complete and Ready?to?use Modules in C (ESBB))。ESBB一书的第2版已于2000年出版。因某些缘故,此书不如μC/OS那么流行,虽然书中的很多信息在其他地方是找不到的。我始终认为,对于刚刚步入嵌入式世界的人们来说,这是一本理想的书。1998年,我开通了μC/OS在互联网上的正式网站http://www.uCOSII.com.我打算在该网站上设移植、应用短文、相关网站、常遇问题解答及μC/OSII的版本更新等,只是这都要花时间去做。2001年,我建立了一个新闻组,用户可以共享关于μC/OSII的消息和交换彼此的使用经验。回到1992年,我绝想不到写篇文章会改变了我的生活。实际上确实是这样,我遇到了很多非常有趣的人,并在交往中结识了很多好朋友。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入中科因仑

本版积分规则

快速回复 返回顶部 返回列表