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

引言

為什么學習RTOS

當我們進入嵌入式系統這個領域時,首先接觸的往往是單片機編程,單片機編程又首選51單片機來入門。這里說的單片機編程通常都是指裸機編程,即不加入任何RTOS(Real Time Operation System,實時操作系統)的程序。常用的RTOS有國外的FreeRTOS、μC/OS、RTX和國內的RT-Thread、Huawei LiteOS、AliOS-Things等,其中,開源且免費的FreeRTOS的市場占有率最高。如今國產的RT-Thread經過10余年的迅猛發展,在國產RTOS中占據鰲頭。

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

為了幫大家厘清RTOS編程的思路,本書會在第2章簡單地分析這兩種編程方式的區別,這個區別被筆者稱為“學習RTOS的‘命門’”,只要掌握這一關鍵內容,以后的RTOS學習可以說是易如反掌。在講解這兩種編程方式的區別時,我們主要講解方法,不會涉及具體的代碼編程,即主要還是通過偽代碼來講解。

如何學習RTOS

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

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

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

市面上雖然有一些講解RTOS源碼的圖書,但如果基礎知識掌握得不夠,且先前沒有使用過該款RTOS,那么只看源碼還是會非常枯燥,并且不能從全局掌握整個RTOS的構成和實現。

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

選擇什么RTOS

用來教學的RTOS,我們不會完全從頭寫一個,而是選取目前國內很流行的RT-Thread為藍本,將其抽絲剝繭,從0到1寫出來。在實現的過程中,數據類型、變量名、函數名稱、文件類型等都完全按照RT-Thread里面的寫法,不會再重新命名。這樣學完本書之后,就可以無縫地過渡到RT-Thread了。

RT-Thread簡介

RT-Thread的版權屬于上海睿賽德電子科技有限公司,它于2006年1月首次發布,初始版本號為0.1.0,經過10余年的發展,如今主版本號已經升級到3.0,累計開發者人數達數百萬,在各行各業產品中裝機量達到了2000多萬,占據國產RTOS的鰲頭。

RT-Thread是一款開源免費的實時操作系統,遵循的是GPLv2+許可協議。這里所說的開源,指的是你可以免費獲取RT-Thread的源代碼,而且當你的產品使用了RT-Thread且沒有修改RT-Thread內核源碼時,你的產品的全部代碼都可以閉源,但是當你修改了RT-Thread內核源碼時,就必須將修改的這部分開源,反饋給社區,其他應用部分不用開源。無論是個人還是公司,都可以免費使用RT-Thread。

RT-Thread的意義

不知你是否發現,在RTOS領域,我們能接觸到的實時操作系統基本都來自國外,很少見到有國內廠家的產品。從早年很流行的μC/OS,到如今市場占有率很高的FreeRTOS,到獲得安全驗證非常多的RTX(KEIL自家的),再到盈利能力領先的ThreadX,均來自國外。可在十幾年前,在中國,出現了一個天賦異稟、倔強不屈的極客——熊譜翔。他編寫了RT-Thread初代內核,并聯合中國開源社區的極客不斷完善,推陳出新,經過十幾年的發展,如今占據國產RTOS的鰲頭,且每年能遞增數十萬名開發者,加上如今AI和物聯網等技術發展的機遇,讓RT-Thread有“一統江湖”之勢,從2018年完成A輪數百萬美元的融資就可以看出,在未來不出5年,RT-Thread將是你學習和做產品的不二之選。

那么RT-Thread的意義究竟是什么?RT-Thread來自中國,讓我們看到了國內的技術開發者也能寫出如此優秀的RTOS,技術方面并不遜色于其他國家。以我們10多年從事電子行業的經驗來看,RT-Thread無疑增強了我們在這一領域的自信,這是我們認為的RT-Thread的最大意義。當然,作為一款國產的物聯網操作系統,RT-Thread簡單易用、低功耗設計、組件豐富等特性也將讓其大放異彩。野火,作為一個國內嵌入式領域的教育品牌,能為國產RTOS出一份力也是我們的榮幸,希望本書能夠幫助大家快速地入門并掌握RT-Thread。

主站蜘蛛池模板: 山西省| 东宁县| 鹰潭市| 冀州市| 中卫市| 南陵县| 天峻县| 高碑店市| 黑龙江省| 安陆市| 广河县| 鄂托克前旗| 玛多县| 武乡县| 文登市| 鹤壁市| 博爱县| 苍山县| 临朐县| 长泰县| 福清市| 南安市| 公主岭市| 江城| 根河市| 武邑县| 凌云县| 丹阳市| 镇坪县| 桂平市| 晋江市| 韩城市| 莲花县| 临西县| 会泽县| 德州市| 临漳县| 丹棱县| 连平县| 宿松县| 泸州市|