性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

微軟公司宣布不再支持你正在使用的 IE瀏覽器,這會(huì)嚴(yán)重影響瀏覽網(wǎng)頁,請使用微軟最新的Edge瀏覽器
廠商專區(qū)
產(chǎn)品/技術(shù)
應(yīng)用分類

十余年歷史的國產(chǎn)RTOS,從RT-Thread中我們能學(xué)什么?

2017-09-05 05:28 來源:互聯(lián)網(wǎng) 編輯:Janet

現(xiàn)在是一個(gè)快節(jié)奏的時(shí)代,技術(shù)領(lǐng)域也是如此。近些年,IoT備受資本青睞,各種新技術(shù)新方案層出不窮,質(zhì)量也參差不齊,這邊唱罷那邊登臺(tái),以至于有些技術(shù)還未被人熟知,就被淹沒在長河中了。客觀的說,RTOS領(lǐng)域玩家眾多,僅筆者短短的從業(yè)時(shí)間,國產(chǎn)RTOS就聽聞了五、六款之多。

RT-Thread作為一個(gè)有十余年歷史的國產(chǎn)RTOS,經(jīng)歷了長時(shí)間的考驗(yàn)和用戶的青睞,目前發(fā)展趨勢蒸蒸日上,也即將發(fā)布RT-Thread 3.0,其中必然有值得我們思考和學(xué)習(xí)的地方,我們也可以從中汲取到不少寶貴的經(jīng)驗(yàn)。

軟件工程管理

軟件工程管理對于軟件研發(fā)是十分重要的,甚至可以說是開發(fā)過程的基石。公司中有高水平的嵌入式軟件程序員,也有剛?cè)肼毜膶?shí)習(xí)生,水平難免參差不齊,當(dāng)共同協(xié)作開發(fā)一個(gè)項(xiàng)目時(shí),如何彼此協(xié)調(diào)也是一個(gè)難題。

時(shí)至今日,很多公司仍然在使用落后的代碼管理方式。有些甚至使用把代碼壓縮成一個(gè)個(gè)的壓縮包來做版本管理。同事之間的協(xié)作依靠互相發(fā)送文件,每次接收到同事的新文件首先要花半天時(shí)間解決編譯error,甚至還要在本地對同事的代碼進(jìn)行修改,這樣,軟件基本處在半失控的狀態(tài),某次改動(dòng)產(chǎn)生問題,就要從浩瀚的壓縮包海洋里挑選一個(gè),進(jìn)行版本回退。在開發(fā)一個(gè)大項(xiàng)目的時(shí)候,這種情況下甚至?xí)霈F(xiàn)人數(shù)越多,開發(fā)難度和周期越大的情況。

而RT-Thread,提供了一個(gè)教科書級的范例。RT-Thread由13000多個(gè)文件構(gòu)成,支持各類設(shè)備和芯片近70款,從代碼量和組織方式上來說,是一個(gè)相當(dāng)龐大的軟件工程。在近十年的時(shí)間里,至少有將近100個(gè)開發(fā)者參與到了RT-Thread的開發(fā)中,使得RT-Thread穩(wěn)步迭代,而這也是有一定的維護(hù)難度的。RT-Thread將代碼部署在Github上,并在此基礎(chǔ)上使用了Travis CI進(jìn)行自動(dòng)化編譯測試,使得開發(fā)者可以有條不紊的進(jìn)行迭代開發(fā),并將自己的成果提交至master分支,在提交代碼的第一時(shí)間通過Travis CI進(jìn)行自動(dòng)化編譯測試,使得一些無法編譯通過的問題,在第一時(shí)間就被發(fā)現(xiàn)。

RT-Thread使用scons自動(dòng)化代碼構(gòu)建工具。初識RT-Thread,很難想象RT-Thread通過一個(gè)代碼倉庫,對近70個(gè)芯片的IAR、MDK和GCC的工程和工具鏈提供支持。RT-Thread使用了scons,使得只要敲幾行指令,就可以生成所需環(huán)境和工具鏈的對應(yīng)的工程。也就是說,對于大多數(shù)芯片,所謂移植RT-Thread,只需要幾個(gè)scons指令進(jìn)行自動(dòng)化構(gòu)建。我相信對于大多數(shù)中小公司的軟件項(xiàng)目,無論從規(guī)模還是參與人數(shù)都沒有RT-Thread這么龐大,維護(hù)難度也遠(yuǎn)小于RT-Thread。但盡管如此,工程維護(hù)也是軟件工程管理的老大難問題,無疑,從RT-Thread中,我們可以借鑒不少經(jīng)驗(yàn)。

代碼風(fēng)格與技術(shù)

RT-Thread的代碼風(fēng)格是十分優(yōu)秀的。在工作中,很多時(shí)候嵌入式軟件工程師尤其是單片機(jī)軟件工程師使用的芯片資源相對比較匱乏,RAM和ROM也略顯局促,節(jié)省資源也成了優(yōu)先級比較高的事情,而這也成了許多工程師代碼不規(guī)范的借口。魯棒性、模塊化、可拓展、高內(nèi)聚、低耦合,這種高大上的名詞總是不絕于耳,相信大家也在各種場景下聽過不少次??蓲伻ミ@些高大上的名詞,到底什么才是優(yōu)秀的代碼呢?

RT-Thread雖然沒有強(qiáng)調(diào)過這些高大上的名詞,但是他毫無疑問用代碼對這些名詞進(jìn)行了解釋。RT-Thread的代碼風(fēng)格是類Linux/Unix的代碼風(fēng)格。這種風(fēng)格不僅僅體現(xiàn)在函數(shù)、變量的命名規(guī)范,而是深入到了RT-Thread的核心。例如,RT-Thread實(shí)現(xiàn)了一個(gè)設(shè)備驅(qū)動(dòng)框架,將設(shè)備類型分為了字符設(shè)備、塊設(shè)備、網(wǎng)絡(luò)接口設(shè)備、內(nèi)存設(shè)備、CAN設(shè)備、RTC設(shè)備、聲音設(shè)備、圖形設(shè)備、I2C總線設(shè)備等等等等。初始化時(shí)通過字符串(用戶可自定義的一個(gè)易于記憶的名稱)與設(shè)備驅(qū)動(dòng)綁定,并將驅(qū)動(dòng)注冊到內(nèi)核,使用時(shí)只需調(diào)用一個(gè)字符串,即可匹配到該設(shè)備,無需通過各種頭文件包含和二次封裝,即可實(shí)現(xiàn)隔離和解耦。

RT-Thread提供了Finsh和msh組件,這是非常有特色組件,可以在調(diào)試和開發(fā)中與系統(tǒng)內(nèi)核進(jìn)行便捷的交互,使用十分方便。如何在資源緊缺的嵌入式軟件開發(fā)中,寫出優(yōu)秀的代碼,RT-Thread十分值得我們思考和學(xué)習(xí)。

開源精神

RT-Thread是國內(nèi)第一梯隊(duì)的嵌入式開源項(xiàng)目,也正因?yàn)殚_源和社區(qū)化,RT-Thread得以茁壯發(fā)展,并在開發(fā)人員中贏得了極高的口碑,有不小數(shù)量的開發(fā)者參與到了RT-Thread的開發(fā)中。RT-Thread實(shí)時(shí)操作系統(tǒng)遵循GPLv2+許可證,實(shí)時(shí)操作系統(tǒng)內(nèi)核及所有開源組件可以免費(fèi)在商業(yè)產(chǎn)品中使用,不需要公布應(yīng)用源碼,沒有任何潛在商業(yè)風(fēng)險(xiǎn)。這種開源精神十分令人欽佩。

得益于RT-Thread的開源,我們可以將自己的代碼提交,經(jīng)過審核后合并至master分支,在使用過程中,當(dāng)某個(gè)模塊出現(xiàn)疑問或問題,可以直接與開發(fā)者甚至創(chuàng)始人直接進(jìn)行討論,這種體驗(yàn)是十分奇妙,也是其他RTOS所不具備的。

RT-Thread倡導(dǎo)大家參與RT-Thread開發(fā)的代碼編寫、bug修復(fù)、文檔完善等等各項(xiàng)進(jìn)程中。而實(shí)際上一旦自己提交的東西被采納和合并,也是一件十分有成就感的事情。

我們也可以學(xué)習(xí)RT-Thread的開源精神,將自己業(yè)余時(shí)間的代碼開源,或者積極參與到開源項(xiàng)目中,在方便大家使用的同時(shí),通過進(jìn)行更廣泛的討論,也相當(dāng)于有了更多的人幫助review,接受大家的批評和建議,實(shí)現(xiàn)自己更快的進(jìn)步。

一些思考


現(xiàn)在大家都十分渴望成功,并且渴望快速成功。在各種融資奇跡下,漸漸地,大家希望,趁著風(fēng)口,激進(jìn)地在短時(shí)間內(nèi)完成一款產(chǎn)品,然后借著風(fēng)口一飛沖天。也漸漸地,失去了精心打磨耕耘一個(gè)產(chǎn)品的耐心。RT-Thread在數(shù)千萬裝機(jī)量和獲得天使輪近千萬融資的背后是十年如一日的細(xì)心耕耘和精心呵護(hù)。

RT-Thread的創(chuàng)始人熊譜翔先生,起初是在2005年,面對RTOS現(xiàn)狀,利用業(yè)余時(shí)間開發(fā)RT-Thread。我想熊譜翔先生的初心也僅僅是想做一款真正優(yōu)秀的實(shí)時(shí)操作系統(tǒng)吧。如同《三傻大鬧寶萊塢》中,蘭徹達(dá)斯所說:“追求卓越,成功就會(huì)在不經(jīng)意間追上你”。

標(biāo)簽: 國產(chǎn)RTOS RT-Thread

聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電源網(wǎng)。本網(wǎng)站原創(chuàng)內(nèi)容,如需轉(zhuǎn)載,請注明出處;本網(wǎng)站轉(zhuǎn)載的內(nèi)容(文章、圖片、視頻)等資料版權(quán)歸原作者所有。如我們采用了您不宜公開的文章或圖片,未能及時(shí)和您確認(rèn),避免給雙方造成不必要的經(jīng)濟(jì)損失,請電郵聯(lián)系我們,以便迅速采取適當(dāng)處理措施;歡迎投稿,郵箱∶editor@netbroad.com。

相關(guān)閱讀

微信關(guān)注
技術(shù)專題 更多>>
技術(shù)專題之EMC
技術(shù)專題之PCB

頭條推薦

電子行業(yè)原創(chuàng)技術(shù)內(nèi)容推薦
客服熱線
服務(wù)時(shí)間:周一至周五9:00-18:00
微信關(guān)注
獲取一手干貨分享
免費(fèi)技術(shù)研討會(huì)
editor@netbroad.com
400-003-2006