精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一個十余年歷史的國產RTOS,從RT-Thread中我們能學到什么?

電子工程師 ? 來源:未知 ? 作者:電子大兵 ? 2017-09-05 16:46 ? 次閱讀
柴胡 · 所言

柴胡,目前在九安醫療從事物聯網智能設備的開發和單片機嵌入式驅動的開發工作,是RT-Thread和嵌入式技術愛好者。

本文將為大家簡要介紹一下筆者使用和學習RT-Thread過程中的體會和感悟,希望能幫助初識RT-Thread的人建立一個初步的印象,避免產生入寶山而空回的遺憾。筆者水平有限,目前也正在學習和使用RT-Thread的過程中,希望本文的拙見能拋磚引玉,如有紕漏,還請不吝賜教。

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

RT-Thread作為一個有十余年歷史的國產RTOS,經歷了長時間的考驗和用戶的青睞,目前發展趨勢蒸蒸日上,也即將發布RT-Thread 3.0,其中必然有值得我們思考和學習的地方,我們也可以從中汲取到不少寶貴的經驗。

軟件工程管理

軟件工程管理對于軟件研發是十分重要的,甚至可以說是開發過程的基石。公司中有高水平的嵌入式軟件程序員,也有剛入職的實習生,水平難免參差不齊,當共同協作開發一個項目時,如何彼此協調也是一個難題。

時至今日,很多公司仍然在使用落后的代碼管理方式。有些甚至使用把代碼壓縮成一個個的壓縮包來做版本管理。同事之間的協作依靠互相發送文件,每次接收到同事的新文件首先要花半天時間解決編譯error,甚至還要在本地對同事的代碼進行修改,這樣,軟件基本處在半失控的狀態,某次改動產生問題,就要從浩瀚的壓縮包海洋里挑選一個,進行版本回退。在開發一個大項目的時候,這種情況下甚至會出現人數越多,開發難度和周期越大的情況。

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

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

代碼風格與技術

RT-Thread的代碼風格是十分優秀的。在工作中,很多時候嵌入式軟件工程師尤其是單片機軟件工程師使用的芯片資源相對比較匱乏,RAMROM也略顯局促,節省資源也成了優先級比較高的事情,而這也成了許多工程師代碼不規范的借口。魯棒性、模塊化、可拓展、高內聚、低耦合,這種高大上的名詞總是不絕于耳,相信大家也在各種場景下聽過不少次。可拋去這些高大上的名詞,到底什么才是優秀的代碼呢?

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

RT-Thread提供了Finsh和msh組件,這是非常有特色組件,可以在調試和開發中與系統內核進行便捷的交互,使用十分方便。如何在資源緊缺的嵌入式軟件開發中,寫出優秀的代碼,RT-Thread十分值得我們思考和學習。

開源精神

RT-Thread是國內第一梯隊的嵌入式開源項目,也正因為開源和社區化,RT-Thread得以茁壯發展,并在開發人員中贏得了極高的口碑,有不小數量的開發者參與到了RT-Thread的開發中。RT-Thread實時操作系統遵循GPLv2+許可證,實時操作系統內核及所有開源組件可以免費在商業產品中使用,不需要公布應用源碼,沒有任何潛在商業風險。這種開源精神十分令人欽佩。

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

RT-Thread倡導大家參與RT-Thread開發的代碼編寫、bug修復、文檔完善等等各項進程中。而實際上一旦自己提交的東西被采納和合并,也是一件十分有成就感的事情。

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

一些思考

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

RT-Thread的創始人熊譜翔先生,起初是在2005年,面對RTOS現狀,利用業余時間開發RT-Thread。我想熊譜翔先生的初心也僅僅是想做一款真正優秀的實時操作系統吧。如同《三傻大鬧寶萊塢》中,蘭徹達斯所說:“追求卓越,成功就會在不經意間追上你”。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • RTOS
    +關注

    關注

    21

    文章

    809

    瀏覽量

    119431
  • RT-Thread
    +關注

    關注

    31

    文章

    1272

    瀏覽量

    39919

原文標題:從RT-Thread中我們能學到什么?

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    RT-Thread上CAN實踐

    開箱測試RT-Thread官方已完成了對英飛凌XMC7200EVK的移植,通過shell可以看到做好了uart3的console。本文將介紹如何進行RT-ThreadCan移植。接下來我們要完成CAN_FD的驅動移植,并正常啟動
    的頭像 發表于 11-13 01:03 ?928次閱讀
    <b class='flag-5'>RT-Thread</b>上CAN實踐

    開源共生 商業共贏 | RT-Thread 2024開發者大會報名啟動!

    親愛的RT-Thread開發者我們很高興地宣布,一年一度的RDC(RT-ThreadDeveloperConference,RT-Thread
    的頭像 發表于 10-29 08:06 ?216次閱讀
    開源共生 商業共贏 | <b class='flag-5'>RT-Thread</b> 2024開發者大會報名啟動!

    【成都】9月21日RT-Thread巡回線下培訓-OpenMV機器視覺

    親愛的RT-Thread社區成員們:RT-Thread24年全球巡回培訓將覆蓋超10座城市及國家,為開發者提供深入學習RT-Thread
    的頭像 發表于 09-13 08:09 ?534次閱讀
    【成都】9月21日<b class='flag-5'>RT-Thread</b>巡回線下培訓-OpenMV機器視覺

    【大連】9月7日RT-Thread巡回線下培訓-OpenMV機器視覺

    親愛的RT-Thread社區成員們:2024年RT-Thread全球開發者線下培訓拉開帷幕啦!24年全球巡回培訓將覆蓋超10座城市及國家,為開發者提供深入學習
    的頭像 發表于 09-01 08:02 ?1127次閱讀
    【大連】9月7日<b class='flag-5'>RT-Thread</b>巡回線下培訓-OpenMV機器視覺

    2024 RT-Thread全球巡回線下培訓火熱來襲!報名提問有獎!

    親愛的RT-Thread社區成員們: 我們非常高興地宣布,2024年RT-Thread全球開發者線下培訓即將拉開帷幕!24年全球巡回培訓將覆蓋超 10座城市及國家 ,為開發者提供
    發表于 08-20 14:15

    2024 RT-Thread全球巡回 線下培訓火熱來襲!

    親愛的RT-Thread社區成員們:我們非常高興地宣布,2024年RT-Thread全球開發者線下培訓即將拉開帷幕!24年全球巡回培訓將覆蓋超10座城市及國家,為開發者提供
    的頭像 發表于 08-07 08:35 ?910次閱讀
    2024 <b class='flag-5'>RT-Thread</b>全球巡回 線下培訓火熱來襲!

    RT-Thread 新里程碑達成——GitHub Star 破萬!

    RT-Thread實時操作系統開源項目在GitHub上的star數量突破一萬!截止發文,RT-Thread作為實時操作系統在業界Star數量排名第!倉庫地址:https://github.com
    的頭像 發表于 07-04 08:35 ?397次閱讀
    <b class='flag-5'>RT-Thread</b> 新里程碑達成——GitHub Star 破萬!

    實時操作系統之RT-Thread及FreeRTOS

    RT-Thread與其他很多RTOS如FreeRTOS的主要區別之是,它不僅僅是實時內核,還具備豐富的中間層組件,如下圖所示。Free
    的頭像 發表于 05-29 08:10 ?3573次閱讀
    實時操作系統之<b class='flag-5'>RT-Thread</b>及FreeRTOS

    6月6日杭州站RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    6月6日下午我們將在杭州舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實現同時運行RT-Thread和linux,本次workshop邀請到RT-Thread
    的頭像 發表于 05-28 08:35 ?409次閱讀
    6月6日杭州站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    5月16日南京站RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    5月16日下午我們將在南京舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實現同時運行RT-Thread和linux,本次workshop邀請到RT-Thread
    的頭像 發表于 05-01 08:35 ?329次閱讀
    5月16日南京站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    RT-Thread混合部署Workshop北京站來啦!

    4月25日,下午我們將在北京舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實現同時運行RT-Thread和linux,本次workshop邀請到RT-Threa
    的頭像 發表于 04-19 08:34 ?416次閱讀
    <b class='flag-5'>RT-Thread</b>混合部署Workshop北京站來啦!

    4月25日北京站RT-Thread線下workshop,探索RT-Thread混合部署新模式

    4月25日,下午我們將在北京舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實現同時運行RT-Thread和linux,本次workshop邀請到RT-Threa
    的頭像 發表于 04-16 08:35 ?393次閱讀
    4月25日北京站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式

    4月10日深圳場RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    4月10日我們將在深圳福田舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實現同時運行RT-Thread和linux,本次workshop邀請到RT-Thread
    的頭像 發表于 03-27 11:36 ?776次閱讀
    4月10日深圳場<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    4月10日深圳場RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    4月10日我們將在深圳福田舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實現同時運行RT-Thread和linux,本次workshop邀請到RT-Thread
    的頭像 發表于 03-27 08:34 ?487次閱讀
    4月10日深圳場<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    RT-Thread成為恩智浦注冊合作伙伴,共同賦工業與物聯網應用開發!

    前不久,恩智浦半導體加入RT-Thread全球合作伙伴計劃,成為RT-Thread高級會員合作伙伴。同時,RT-Thread現已成為恩智浦注冊合作伙伴。
    的頭像 發表于 03-15 09:15 ?832次閱讀