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

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

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

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

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

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

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

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

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

很快,令RTOS廠商更加不安的事情出現(xiàn)了。我的文章被《嵌入式系統(tǒng)編程》雜志刊登后不久,《C語言用戶日記》的出版商,R&D出版社,主動聯(lián)系我,表示想出版一本μC/OS的書。起初,這本書只是計劃把我最早提交給《C語言用戶日記》的材料打印出來。如果采用這種思路,這本書也就80頁左右。為了充分利用這次機會,我計劃寫一本深入介紹μC/OS的書。經(jīng)R&D出版社的同意,在接下來的幾個月,我開始寫作。到1992年的下半年,我的第一本書《μC/OS,The Real-Time Kernel》出版了(見圖1)。最開始,這本書的售出速度并不令人滿意,但R&D出版社每個月都會在《C語言用戶日記》上給這本書做廣告。與此同時,我漸漸被大家認可,成為一個內(nèi)核專家。1993年的春天,我接受邀請,參加了在喬治亞州亞特蘭大市舉辦的嵌入式系統(tǒng)會議(ESC),為超過70位嵌入式愛好者講述了操作系統(tǒng)的基本原理。在接下來的幾年中,我一直參加ESC年會,每次都會對幾百個工程師講述我的內(nèi)核。逐漸大家對我寫的書的興趣也提高了。過了最初緩慢發(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)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

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

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

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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