找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4086|回復(fù): 1
收起左側(cè)

UCOS的故事

[復(fù)制鏈接]
ID:102668 發(fā)表于 2016-1-16 02:56 | 顯示全部樓層 |閱讀模式
多年以前,我設(shè)計(jì)了一個(gè)基于Intel 80C188的產(chǎn)品,需要一個(gè)實(shí)時(shí)內(nèi)核。在前一家雇主那里工作時(shí),我一直在使用一個(gè)知名的內(nèi)核(以下我稱為內(nèi)核 A),但該內(nèi)核對我當(dāng)時(shí)設(shè)計(jì)的產(chǎn)品來說是太貴了。我找到了一個(gè)廉價(jià)的內(nèi)核(當(dāng)時(shí)大約1000美元以下我稱為內(nèi)核 B),并且開始了我的設(shè)計(jì)工作。為了讓我那幾個(gè)很簡單的任務(wù)運(yùn)行起來,竟花了我兩個(gè)月時(shí)間。我一天到晚給該廠商打電話求援。該廠商聲稱內(nèi)核B是用C語言寫的,可我還得用匯編語言給程序中每個(gè)對象除實(shí)話,雖然該廠商很耐心,而我實(shí)在是煩透了!產(chǎn)品的開發(fā)也耽誤了。我真是不想再花時(shí)間去調(diào)試那個(gè)廉價(jià)的內(nèi)核了。后來得知我是該廠商的第一個(gè)客戶,這個(gè)內(nèi)核實(shí)際上沒有完全測試和調(diào)試過。
還是回到正路上來,我決定使用內(nèi)核A。五個(gè)用戶的價(jià)格是5000美元,此外,我的每個(gè)產(chǎn)品還要付200美元的內(nèi)核使用費(fèi)。在當(dāng)時(shí),那可是一筆很大的開支。就算是花錢買個(gè)心里踏實(shí)吧;藘商鞎r(shí)間,內(nèi)核轉(zhuǎn)起來了。項(xiàng)目進(jìn)展到3個(gè)月上,我的一個(gè)工程師發(fā)現(xiàn)內(nèi)核好像有毛。╞ug)。當(dāng)內(nèi)核中的這個(gè)毛病確認(rèn)無疑以后,我把我的代碼寄給了該廠商。此時(shí),廠商提供的90天的擔(dān)保已經(jīng)過期了。為了得到答復(fù),我還得支付每年500美元的維護(hù)費(fèi)。我和銷售商爭辯了好幾個(gè)月,他們應(yīng)該盡快糾正這一處毛病才是。我實(shí)際是在為他們做好事。可是,他們不予理睬。最后,我只好認(rèn)了,又簽了程序維護(hù)合同。而該廠商6個(gè)月以后才改正了那個(gè)毛病。是的,6個(gè)月以后!我簡直氣壞了,最要緊的是,我的產(chǎn)品開發(fā)耽誤了;藢⒔荒甑臅r(shí)間,內(nèi)核A才在我的產(chǎn)品中穩(wěn)定運(yùn)行。然而,我得承認(rèn),從此以后,內(nèi)核A再沒有什么問題了。
漸漸的,我自然會想到,寫個(gè)實(shí)時(shí)內(nèi)核有那么難嗎?不就是不斷地保存、恢復(fù)CPU的那些寄存器嘛。于是我決定試試寫一個(gè)自己的實(shí)時(shí)內(nèi)核,主要用業(yè)余時(shí)間、晚上和周末。也花了大約一年的時(shí)間才使內(nèi)核轉(zhuǎn)起來,它在某些方面還比內(nèi)核A好。我并不想開公司去賣這個(gè)內(nèi)核,因?yàn)楫?dāng)時(shí)市場上已經(jīng)有大約50個(gè)實(shí)時(shí)內(nèi)核的產(chǎn)品。
我想到給雜志寫篇文章,打算投《C語言用戶雜志》(《C User’s Journal 》)因?yàn)閮?nèi)和是用C寫的,我聽說該雜志每頁給100美元的稿費(fèi),而其他雜志一般是每頁75美元。我的文章大約有70頁。這筆稿費(fèi)對我寫內(nèi)核所花時(shí)間是不錯(cuò)的補(bǔ)償。很不幸,文章拒載了。有兩個(gè)原因,一個(gè)是文章太長,雜志不愿意連載。另一個(gè)原因是,他們也不愿意“又登一篇關(guān)于內(nèi)核的文章”。
我決定轉(zhuǎn)向《嵌入式系統(tǒng)編程》(《Embedded System Programming》)雜志,因?yàn)槲业膬?nèi)核是為嵌入式應(yīng)用設(shè)計(jì)的。我和該雜志的編輯Mr.Tyler Sperry聯(lián)系,告訴他我的實(shí)時(shí)內(nèi)核想在他的雜志上發(fā)表,得到的答復(fù)和《C語言用戶雜志》是一樣的,我們不要“又是一篇關(guān)于內(nèi)核的文章”。我告訴他們,我的實(shí)時(shí)內(nèi)核和他們的不一樣,是占先式的,可以和許多商業(yè)上出售的內(nèi)核產(chǎn)品競爭,源代碼可以放在《嵌入式系統(tǒng)編程》雜志網(wǎng)站的留言板(BBS)上。我每周要給Mr.Tyler打兩三個(gè)電話,幾乎是求他發(fā)表我的文章。他終于同意了,大概是我的電話打得他煩了。我的文章從70頁壓縮到30頁,連載在1992年5月期和6月期雜志上。該文章幾乎是1992年最熱門的文章。頭一個(gè)月,就有500多人從《嵌入式系統(tǒng)編程》雜志的網(wǎng)站留言板上下載我的源程序。Tyler先生真怕實(shí)時(shí)內(nèi)核的商家們會要了他的命,因?yàn)樵谒碾s志上刊登了實(shí)時(shí)內(nèi)核的源碼,這使商家們感到不安。我猜測,商家們一定已經(jīng)認(rèn)識到μC/OS(當(dāng)時(shí)稱作μCOS)的質(zhì)量和功能。該文章實(shí)際上是第一次把實(shí)時(shí)內(nèi)核的內(nèi)在工作原理曝光,一些過去的秘密公開了。幾乎是文章在《嵌入式系統(tǒng)編程》雜志上刊登出來的同時(shí),R&D出版社的Bernard (昵稱Berny)Williams雜志來電話了。《C語言用戶雜志》就是這家出版社出的,此時(shí)距我最初與該雜志聯(lián)系已有6個(gè)月了。
我留言給我的妻子,說他對我的文章感興趣。我回電話給他,“你不覺得你有點(diǎn)太晚了嗎?我的文章已經(jīng)在《嵌入式系統(tǒng)編程》雜志上發(fā)表了”。Berny只是說,“不,不,你沒明白我的意思,因?yàn)槲恼履敲撮L,我打算出一本書”。起初,Berny只是想簡單地把我手上已有的那些出成一本大約80頁的書。我告訴他,如果寫成一本書的話,我打算寫得更好一些。以后,我又花了大約6個(gè)月的時(shí)間增加書的內(nèi)容,就成了本書第一版的那個(gè)樣子。書大約有250頁。我把實(shí)時(shí)內(nèi)核的名字由μCOS改成μC/OS,因?yàn)椤肚度胧较到y(tǒng)編程》雜志的讀者一直稱為“mucus”,那個(gè)自發(fā)音像英語的“痰”,讓人聽起來不舒服;叵肫饋,這可能是第一次給實(shí)時(shí)內(nèi)核起名字?傊,實(shí)時(shí)內(nèi)核μC/OS就這樣誕生了。開始時(shí),書銷售的很慢,Berny和我計(jì)劃在書的適用期內(nèi)能售出4000到5000冊,可是照開始時(shí)的銷售速率,能賣出去2000冊就不錯(cuò)了。Berny堅(jiān)持說,讓人知道這本書需要時(shí)間。于是他連續(xù)在《C語言用戶雜志》雜志上刊登廣告,一直持續(xù)了一年。約在書正式出版一個(gè)月之前,我第一次參加了在加利弗尼亞州圣克拉拉(Santa Clara)舉行的嵌入式系統(tǒng)會議,那是1992年的9月,我第一次見到Tyler Sperry先生,我給他看了即將出版的書的草稿。他很快地翻了翻,問我愿不愿意在下一屆嵌入式系統(tǒng)會議上做個(gè)講演。下屆會議在亞特蘭大召開。那再好不過了,我說我愿意。但我講些什么呢?他建議我講怎樣使用“小實(shí)時(shí)內(nèi)核”。路上,我想,我這是怎么了?我從來沒有在那么多人面前講過話,到時(shí)候我自己就蒙了怎么辦?如果我講的都是些很平常的知識……人們可都是花了不少錢來聽會的。以后的6個(gè)月中,我準(zhǔn)備了講稿。后來的會上,聽我課的有70多人。起初的20多分鐘里,我出的汗至少有1磅多。課后,約有15人上前來表示非常喜歡我的課,也喜歡我那本書。我得到了1993年在圣克拉拉舉行的會議的邀請,可我沒能參加,我參加了1994年波士頓舉行的會議。從那以后,每次嵌入式系統(tǒng)會議上都有我的例行演講。過去幾年中,我進(jìn)了會議的顧問委員會(Advisory Committee),最近的幾次會上,每次的會議我都要做至少三次講演,每次的聽眾都在200到300人之間。會議對我的講演的評價(jià)總是在前10%。
至今,μC/OS的書已售出了15,000多冊。我收到并答復(fù)的來自世界各地的電子郵件超過1000份。1995年,《μC/OS The Real Time Kernel 》被翻譯成日語在《接口》(《Interface》)雜志上刊登。μC/OS已經(jīng)被移植到以下一些CPU上。
Analog 設(shè)備公司 AD21xx
ARM公司 ARM6,ARM7
日立公司 64180,H8/3xx, SH 系列
Intel公司 80x86 (Real and PM), Pentium , Pentium Ⅱ, 8051, 8052,
MCS-251, 80196, 8096
三菱公司 M16和M32
摩托羅拉公司 PowerPC, 68K, CPU32, CPU32+, 68HC11, 68HC16
飛利浦公司 XA
西門子公司 80C166和TriCore
TI公司 TMS320
Zilog公司 Z-80 and Z-180
1994年,我決定寫第二本書,《Embedded System Building Blocks, Complete and Ready-to-use Modules in C》。由于某些原因,此書不如μC/OS那么流行,雖然書中很多信息在其他地方是找不到的。我始終認(rèn)為,對于剛剛步入嵌入式世界的人們來說,這是一本理想的書。
1998年,我開通了μC/OS的正式網(wǎng)站,打算在該網(wǎng)站上放進(jìn)移植、應(yīng)用短文、相關(guān)網(wǎng)站、常見問題解答(FAQ)、μC/OS和μCOS-Ⅱ的版本更新等。只是這都要花時(shí)間去做。
回到1992年,我絕沒有想到寫篇文章會改變我的生活方式,實(shí)際上確實(shí)是這樣,我遇到了很多非常有趣的人,交了很多好朋友。我還是回答收到的每一個(gè)電子郵件。我確信,如果你寫給我什么的話,回應(yīng)你是我的責(zé)任。

評分

參與人數(shù) 1黑幣 +2 收起 理由
amxl380 + 2 淡定

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:293265 發(fā)表于 2018-3-18 23:18 | 顯示全部樓層
最近在看uc/os, 無意中看到這帖子,不錯(cuò)。
看到了一個(gè)嵌入式內(nèi)核的發(fā)展起因,過程 ...
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表