當(dāng)前位置:首頁(yè) > 消費(fèi)電子 > 消費(fèi)電子
[導(dǎo)讀]μC/OS也叫MicroC/OS,它是在國(guó)內(nèi)具有廣泛影響力的RTOS之一,這主要得益于作者Jean Labrosse 的幾本介紹μC/OS原理和使用的中文版圖書在國(guó)內(nèi)的廣為流傳。與其他商業(yè)RTOS不同的是,μC/OS內(nèi)核的源代碼是開源的,對(duì)于非

μC/OS也叫MicroC/OS,它是在國(guó)內(nèi)具有廣泛影響力的RTOS之一,這主要得益于作者Jean Labrosse 的幾本介紹μC/OS原理和使用的中文版圖書在國(guó)內(nèi)的廣為流傳。與其他商業(yè)RTOS不同的是,μC/OS內(nèi)核的源代碼是開源的,對(duì)于非商業(yè)客戶(比如大學(xué)老師和學(xué)生們)也是免費(fèi)的,據(jù)筆者統(tǒng)計(jì),累計(jì)至今已有數(shù)十本以μC/OS命名的中文版圖書出版,數(shù)百所學(xué)校院系和專業(yè)開設(shè)的嵌入式開發(fā)設(shè)計(jì)相關(guān)課程使用μC/OS作為嵌入式OS 案例,數(shù)千篇研究μC/OS相關(guān)技術(shù)的論文發(fā)表。本文摘自北京航空航天大學(xué)出版社出版的《嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng)μC/OS-III》一書的前言,筆者有改編和刪減。

μC/OS的故事起始于1989年。那時(shí),我(注:即Jean Labrosse先生)加入到位于美國(guó)佛羅里達(dá)州勞德代爾堡市的Dynalco控制公司,并開始為大型工業(yè)往復(fù)式發(fā)動(dòng)機(jī)設(shè)計(jì)全新的、基于微控制器的點(diǎn)火控制系統(tǒng)。由于有實(shí)時(shí)內(nèi)核的使用經(jīng)驗(yàn),我相信使用操作系統(tǒng)可有強(qiáng)力地推動(dòng)該項(xiàng)目以及Dynalco公司其它在研項(xiàng)目的進(jìn)展。

對(duì)于該點(diǎn)火控制系統(tǒng)而言,進(jìn)入市場(chǎng)的時(shí)間至關(guān)重要。并且,我知道實(shí)時(shí)內(nèi)核的使用能夠幫助我實(shí)現(xiàn)既定目標(biāo)。我也知道將來還要為這款產(chǎn)品增加一些新的功能,而使用可剝奪型(注:也稱為可搶占式)的操作系統(tǒng)將允許在不破壞系統(tǒng)響應(yīng)特性的情況下做這些升級(jí)。我最初考慮使用的內(nèi)核是一個(gè)過去我用過且很熟悉的內(nèi)核。不過,該內(nèi)核非常昂貴,而我的經(jīng)費(fèi)卻不是很充足。備選的是用一個(gè)過去我沒有用過的內(nèi)核,其價(jià)格只有最初選擇內(nèi)核的五分之一。

最終,考慮到節(jié)省經(jīng)費(fèi),我選擇了使用不熟悉的那個(gè)操作系統(tǒng)。然而,我很快意識(shí)到需要為這個(gè)看起來更便宜的操作系統(tǒng)付出我更多的時(shí)間。在拿到內(nèi)核后的兩個(gè)月,我不停地聯(lián)系對(duì)方的技術(shù)支持人員,徒勞無益地做各種嘗試,想知道為什么連一個(gè)最簡(jiǎn)單的應(yīng)用程序都跑不起來。這個(gè)操作系統(tǒng)說是用C語(yǔ)言寫的,卻要求用匯編語(yǔ)言初始化所有的內(nèi)核變量。后來發(fā)現(xiàn),我是最先購(gòu)買這個(gè)操作系統(tǒng)的那批用戶之一,是在不知情的情況下充當(dāng)了這個(gè)操作系統(tǒng)的試用版測(cè)試員。

實(shí)在是受夠了,我轉(zhuǎn)而使用最初放棄的那個(gè)較昂貴的操作系統(tǒng)。眼看項(xiàng)目要延期,錢就再不是問題了。不到兩天,簡(jiǎn)單的應(yīng)用程序就跑起來了,這在之前那個(gè)便宜的操作系統(tǒng)上好像是不可能做到的事。內(nèi)核相關(guān)的問題似乎解決了。然而,很快我發(fā)現(xiàn)自己又進(jìn)入了另外一個(gè)僵局。有一天,我的一個(gè)工程師向我匯報(bào)這個(gè)新的操作系統(tǒng)好像有毛?。╞ug),從此,一系列的問題就開始了。我很快把這個(gè)工程師發(fā)現(xiàn)的問題轉(zhuǎn)發(fā)給軟件廠商,暗想他們會(huì)對(duì)此感興趣。但是,沒有收到他們修正bug的保證,取而代之的是,我接到通知說90天的擔(dān)保期已過。除非支付給他們一筆維護(hù)費(fèi),否則,他們不會(huì)修正這個(gè)bug,對(duì)我來說這種要求簡(jiǎn)直是不可理喻。按照軟件廠商的希望,我支付了這筆維護(hù)費(fèi)用。想不到的是,軟件廠商竟然花費(fèi)了6個(gè)月才去掉了這個(gè)bug。最終,在拿到第二個(gè)操作系統(tǒng)的一年以后,才利用該操作系統(tǒng)完成了我的點(diǎn)火控制系統(tǒng)。很明顯,我需要一個(gè)更好的解決方案。

兩次失望后,我開始開發(fā)自己的內(nèi)核。我想得很簡(jiǎn)單,認(rèn)為一個(gè)內(nèi)核真正需要做的事情就是保存和恢復(fù)CPU寄存器,寫一個(gè)內(nèi)核應(yīng)當(dāng)不是一件很有挑戰(zhàn)性的事情。大約花了一年時(shí)間,我果真寫完了我的第一個(gè)操作系統(tǒng)。也正是有了新操作系統(tǒng)在手,開發(fā)多任務(wù)應(yīng)用程序就如魚得水了。該操作系統(tǒng)主要由一個(gè)C文件構(gòu)成,一個(gè)應(yīng)用中允許創(chuàng)建多達(dá)64個(gè)任務(wù)。每個(gè)任務(wù)有獨(dú)一無二的優(yōu)先級(jí)。每次調(diào)用任務(wù)調(diào)度器時(shí),CPU總是運(yùn)行處于就緒態(tài)的優(yōu)先級(jí)最高的任務(wù)。μC/OS是可剝奪型內(nèi)核,在任意時(shí)刻都可能發(fā)生任務(wù)調(diào)度。高效的任務(wù)調(diào)度實(shí)際上只是μC/OS提供的眾多服務(wù)之一。此外,該操作系統(tǒng)還會(huì)提供任務(wù)間通信(通過消息隊(duì)列和郵箱)和任務(wù)間同步(通過信號(hào)量)相關(guān)的服務(wù)。μC/OS所有元素的設(shè)計(jì)都考慮了高可靠性以及簡(jiǎn)便易用。

在我的職業(yè)生涯中,自始自終都很注重代碼的一致性和文檔說明。從1984年開始,我就使用規(guī)范的代碼標(biāo)準(zhǔn),μC/OS代碼的一致性可以很好地證明這一點(diǎn)。在Dynalco工作時(shí),我創(chuàng)造并推廣了一套嚴(yán)格的代碼編寫規(guī)范。μC/OS就是根據(jù)這套規(guī)范設(shè)計(jì)的。μC/OS源代碼的特點(diǎn)包括:大量的空行、字斟句酌的注釋和統(tǒng)一的命名。μC/OS內(nèi)核還具有極好的可移植性,這也進(jìn)一步證實(shí)了這種嚴(yán)謹(jǐn)?shù)拇a編寫規(guī)范的優(yōu)勢(shì)所在。雖然μC/OS跟它的先驅(qū)者一樣也有少量的與處理器相關(guān)的函數(shù),但是,這些函數(shù)代碼與操作系統(tǒng)中的其它代碼很清楚地分開了。工程師們能夠非常簡(jiǎn)單地把μC/OS移植到一個(gè)新的CPU架構(gòu)上。

我是知道μC/OS優(yōu)點(diǎn)的人,為了把我的新軟件介紹給其他人,我寫了一篇很長(zhǎng)的文章,詳細(xì)解釋了μC/OS的內(nèi)部工作原理。因?yàn)橛刑鄸|西要說,最終我的文章長(zhǎng)達(dá)約70頁(yè)。我把文章投給《C語(yǔ)言用戶日記》(C User’s Journal),文章被拒載了,原因有二,一是文章太長(zhǎng)了,二是文章主題不夠新。該雜志已經(jīng)出版了多篇關(guān)于內(nèi)核的文章,而這只是又一篇關(guān)于實(shí)時(shí)內(nèi)核的文章。但我堅(jiān)信我的文章是獨(dú)一無二的,我又把它投給《嵌入式系統(tǒng)編程》(Embedded Systems Programming)。該雜志的編輯給我的答復(fù)和《C語(yǔ)言用戶日記》是一樣的,但我最終還是使他相信了μC/OS是一個(gè)非常值得關(guān)注的操作系統(tǒng)。我向他解釋?duì)藽/OS在質(zhì)量上可以與主流嵌入式軟件公司提供的商業(yè)RTOS媲美(并且至少比其中兩個(gè)操作系統(tǒng)要好)。我還解釋說,μC/OS的源代碼可放到該雜志的電子留言板上(BBS)?!肚度胧较到y(tǒng)編程》分兩部分連載了經(jīng)過刪減的文章。發(fā)表的兩部分文章都反響強(qiáng)烈。工程師們非常高興地看到,高質(zhì)量?jī)?nèi)核的內(nèi)部工作原理被揭露出來了,他們爭(zhēng)相下載了μC/OS的源代碼。另一方面,內(nèi)核廠商則對(duì)該文章的發(fā)表非常不安。實(shí)際上,那個(gè)廉價(jià)內(nèi)核廠商尤其不安,竟聲稱我抄襲了他們的工作。試想一下,我怎么可能基于一個(gè)不能運(yùn)行的軟件來開發(fā)μC/OS!

很快,令RTOS廠商更加不安的事情出現(xiàn)了。我的文章被《嵌入式系統(tǒng)編程》雜志刊登后不久,《C語(yǔ)言用戶日記》的出版商,R&D出版社,主動(dòng)聯(lián)系我,表示想出版一本μC/OS的書。起初,這本書只是計(jì)劃把我最早提交給《C語(yǔ)言用戶日記》的材料打印出來。如果采用這種思路,這本書也就80頁(yè)左右。為了充分利用這次機(jī)會(huì),我計(jì)劃寫一本深入介紹μC/OS的書。經(jīng)R&D出版社的同意,在接下來的幾個(gè)月,我開始寫作。到1992年的下半年,我的第一本書《μC/OS,The Real-Time Kernel》出版了(見圖1)。最開始,這本書的售出速度并不令人滿意,但R&D出版社每個(gè)月都會(huì)在《C語(yǔ)言用戶日記》上給這本書做廣告。與此同時(shí),我漸漸被大家認(rèn)可,成為一個(gè)內(nèi)核專家。1993年的春天,我接受邀請(qǐng),參加了在喬治亞州亞特蘭大市舉辦的嵌入式系統(tǒng)會(huì)議(ESC),為超過70位嵌入式愛好者講述了操作系統(tǒng)的基本原理。在接下來的幾年中,我一直參加ESC年會(huì),每次都會(huì)對(duì)幾百個(gè)工程師講述我的內(nèi)核。逐漸大家對(duì)我寫的書的興趣也提高了。過了最初緩慢發(fā)售階段,《μC/OS,The Real-Time Kernel》最終銷量超過15,000本?!?

《<strong>嵌入式操作系統(tǒng)</strong>史話》之四:μC/OS的故事(一)
圖1:《μC/OS,The Real-Time Kernel》和書后附的1.1版軟件

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉