官术网_书友最值得收藏!

引言

為什么學習RTOS

當我們進入嵌入式這個領域時,首先接觸的往往是單片機編程,單片機編程又首選51單片機來入門。這里說的單片機編程通常都是指裸機編程,即不加入任何RTOS的編程。常用的RTOS有國外的FreeRTOS、μC/OS、RTX以及國內(nèi)的Huawei LiteOS、RT-Thread等,其中開源且免費的FreeRTOS的市場占有率最高,歷史悠久的μC/OS位居第二。

在裸機系統(tǒng)中,所有的程序基本都是用戶自己寫的,所有的操作都是在一個無限的大循環(huán)中實現(xiàn)。現(xiàn)實生活中的很多中小型電子產(chǎn)品中用的都是裸機系統(tǒng),而且能夠滿足需求。那為什么還要學習RTOS編程,要涉及一個操作系統(tǒng)呢?一是基于項目需求,隨著產(chǎn)品要實現(xiàn)的功能越來越多,單純的裸機系統(tǒng)已經(jīng)不能完美地解決問題,反而會使編程變得更加復雜,如果想降低編程的難度,可以考慮引入RTOS實現(xiàn)多任務管理,這是使用RTOS的最大優(yōu)勢。二是出于學習的需要,必須學習更高級的技術,實現(xiàn)更好的職業(yè)規(guī)劃,為將來能有更好的職業(yè)發(fā)展做準備,而不是拘泥于裸機編程。作為一個合格的嵌入式軟件工程師,學習是永遠不能停止的,時刻都要為將來做準備。“書到用時方恨少”,希望當機會來臨時,你不要有這種感覺。

為了幫大家厘清RTOS編程的思路,本書將簡單分析這兩種編程方式的區(qū)別,我們稱之為“學習RTOS的命門”,只要掌握這一關鍵內(nèi)容,以后的RTOS學習可以說是易如反掌。在講解這兩種編程方式的區(qū)別時,我們主要講解方法論,不會涉及具體的代碼,即主要還是通過偽代碼來講解。

如何學習RTOS

RTOS編程和裸機編程的風格不一樣,而且很多人說學習RTOS很難,這就導致想要學習的人一聽到RTOS編程就會忌憚三分,結果就是“出師未捷身先死”。

那么到底如何學習RTOS呢?最簡單的方法就是在別人移植好的系統(tǒng)上先看一看RTOS中的API使用說明,然后調(diào)用這些API實現(xiàn)自己想要的功能,完全不用關心底層的移植,這是最簡單、快速的入門方法。這種方法有利有弊:如果是做產(chǎn)品,好處是可以快速實現(xiàn)功能,將產(chǎn)品推向市場,贏得先機;弊端是當程序出現(xiàn)問題時,因對RTOS不夠了解,會導致調(diào)試困難。如果想系統(tǒng)地學習RTOS,那么只會簡單地調(diào)用API是不可取的,我們應該深入學習一款RTOS。

目前市場上的RTOS,內(nèi)核實現(xiàn)方式差異不大,只需要深入學習其中一款即可。萬變不離其宗,只要掌握了一款RTOS,以后換到其他型號的RTOS,使用起來自然也得心應手。那么如何深入地學習一款RTOS呢?這里有一個非常有效但也十分難的方法,就是閱讀RTOS的源碼,深入研究內(nèi)核和每個組件的實現(xiàn)方式。這個過程枯燥且痛苦,但為了能夠學到RTOS的精華,還是很值得一試的。

市面上雖然有一些講解RTOS源碼的書,但如果基礎知識掌握得不夠,且先前沒有使用過該款RTOS,那么只看源碼不僅非常枯燥,而且難以從全局掌握整個RTOS的構成和實現(xiàn)。

現(xiàn)在,我們采用一種全新的方法來教大家學習一款RTOS,既不是單純地介紹其中的API如何使用,也不是單純地拿里面的源碼一句句地講解,而是從0開始,層層疊加,不斷完善,教大家如何把一個RTOS從0到1寫出來,讓你在每一個階段都能享受到成功的喜悅。在這個RTOS實現(xiàn)的過程中,只需要具備C語言基礎即可,然后就是跟著本書篤定前行,最后定有所成。

如何選擇RTOS

如何選擇RTOS取決于是學習還是做產(chǎn)品,如果是學習,則可以選擇一個歷史較久、商業(yè)化成功、安全驗證較多的來學習,而且應深入學習。符合前面這幾個標準的只有μC/OS,所以學習RTOS,首選μC/OS,而且μC/OS的相關資料是很豐富的。當然,選擇其他的RTOS來學習也是可以的。學完之后就要使用,如果是做產(chǎn)品,即在產(chǎn)品中使用μC/OS,則要面臨授權問題,需要支付一定的費用,所以開源免費的FreeRTOS受到了各個半導體廠商和開發(fā)者的青睞。目前,F(xiàn)reeRTOS是市場占有率最高的RTOS,非常適合用來做產(chǎn)品。另外,國內(nèi)的RT-Thread也在迅速崛起,它同樣是開源免費的,也是不錯的選擇。

主站蜘蛛池模板: 长乐市| 五家渠市| 八宿县| 通城县| 霍州市| 南阳市| 萨嘎县| 庆安县| 同江市| 通化县| 昌黎县| 灵丘县| 大城县| 沂源县| 屯昌县| 新龙县| 北海市| 百色市| 泰和县| 江川县| 乌兰县| 玛纳斯县| 丰宁| 商洛市| 定边县| 阿巴嘎旗| 长治县| 元阳县| 东台市| 宜宾市| 文安县| 南陵县| 东乡| 枝江市| 万载县| 富宁县| 延庆县| 全南县| 炉霍县| 富川| 龙川县|