RT-ThreadRTOS是(shi)一款來(lai)自中國的開源實時操作系統,由RT-Thread工(gong)作室的專(zhuan)業開發(fa)人(ren)員開發(fa)、維護。
起初RT-Thread是(shi)一個實(shi)時(shi)的(de)(de)內核(全搶占優先級調(diao)度,調(diao)度器時(shi)間復(fu)雜度O(1)),但在發展過(guo)程(cheng)(cheng)中,RT-Thread實(shi)時(shi)操(cao)作(zuo)系統得到(dao)了來自(zi)全國(guo)嵌入式開發工程(cheng)(cheng)師的(de)(de)鼎(ding)力支(zhi)持,為RT-Thread添磚加(jia)瓦,現在它不僅(jin)僅(jin)是(shi)一款高效(xiao)、穩定的(de)(de)實(shi)時(shi)核心(xin),也是(shi)一套面向嵌入式系統的(de)(de)軟件(jian)平臺,覆蓋了全搶占的(de)(de)實(shi)時(shi)操(cao)作(zuo)系統內核,小巧而(er)與底層具體實(shi)現無關的(de)(de)文件(jian)系統,輕型的(de)(de)TCP/IP協議棧以及(ji)輕型的(de)(de)多(duo)窗口多(duo)線程(cheng)(cheng)圖(tu)形用戶界面。
RT-Thread是(shi)一(yi)個平臺,您(nin)可以(yi)把您(nin)的(de)創(chuang)意匯(hui)聚(ju)在一(yi)起,小平臺大社區,RT-Thread的(de)開發人(ren)員就在您(nin)的(de)身邊。
1、誕生
一切東西還得從頭談起。
RT-Thread RTOS,Kernel部分(fen)完(wan)(wan)成(cheng)于2006年(nian)上半年(nian),其IPC部分(fen)甚至是(shi)年(nian)中時才具備相應的(de)雛形(xing)。最(zui)開始時是(shi)因為(wei)要為(wei)朋(peng)(peng)友(you)做(zuo)一(yi)個(ge)小型的(de)手持設備,而(er)我本(ben)人起初又是(shi)另一(yi)國內老牌RTOS:DOOLOO RTOS開發人員,但(dan)(dan)這個(ge)團隊在2005年(nian)底(di)已經解(jie)散。但(dan)(dan)朋(peng)(peng)友(you)的(de)系統(tong)要上,用ucos嗎,一(yi)不(bu)(bu)熟(shu)悉,二(er)看不(bu)(bu)上。答應朋(peng)(peng)友(you)的(de)事,總(zong)得有解(jie)決方法(fa)吧,即使是(shi)原(yuan)來的(de)DOOLOO RTOS,因為(wei)其仿VxWorks結(jie)構,導致它的(de)核心太(tai)大,包(bao)括太(tai)多(duo)不(bu)(bu)必(bi)要的(de)東西(一(yi)套完(wan)(wan)整(zheng)的(de)libc庫),這些(xie)方案都否決了(le)。怎么辦(ban)?當時朋(peng)(peng)友(you)那邊也不(bu)(bu)算太(tai)急,先自己寫一(yi)套內核吧。這個(ge)就是(shi)源頭!(后來雖然朋(peng)(peng)友(you)的(de)項目夭折了(le),但(dan)(dan)這套OS則(ze)保留下來了(le),并開源了(le),萬幸)
當(dang)然(ran)RT-Thread和(he)原(yuan)來的(de)(de)DOOLOO RTOS差別(bie)還是(shi)(shi)很大的(de)(de)。DOOLOO RTOS是(shi)(shi)一(yi)種類VxWorks風(feng)格的(de)(de),而RT-Thread則是(shi)(shi)一(yi)種類NucluesPlus風(feng)格的(de)(de),小型(xing)、實(shi)時、可(ke)剪裁。這三(san)個方面RT-Thread可(ke)以驕傲的(de)(de)說做(zuo)得比DOOLOO RTOS都(dou)要好很多,小型(xing):RT-Thread核心(xin)能夠小到(dao)4K ROM,1K RAM;實(shi)時:線程調度核心(xin)是(shi)(shi)完全(quan)bitmap方式,計算時間是(shi)(shi)完全(quan)固定的(de)(de);可(ke)剪裁性,配置文件rtconfig.h包含多種選(xuan)項,對Kernel細節進行精(jing)細調整,對各種組件(文件系(xi)統,使用EFSL、ELM FatFs;網(wang)絡協議棧,finsh shell)進行可(ke)選(xuan)配置。
2、艱(jian)難的(de)發展(zhan)期
在(zai)第一個(ge)(ge)(ge)(ge)公開(kai)板發(fa)布后(hou)(0.1),RT-Thread意識到(dao)了一個(ge)(ge)(ge)(ge)問題(ti),光有(you)核心不(bu)行。別人如何(he)使用:雖然采用了doxygen風格的(de)(de)(de)(de)注釋,并自動產生相應的(de)(de)(de)(de)API文檔,但(dan)能(neng)(neng)夠(gou)使用的(de)(de)(de)(de)人寥(liao)寥(liao),有(you)這(zhe)個(ge)(ge)(ge)(ge)功底(di)的(de)(de)(de)(de)人不(bu)見得(de)認可你的(de)(de)(de)(de)系統(tong),沒相應功底(di)的(de)(de)(de)(de)人也(ye)玩不(bu)轉你的(de)(de)(de)(de)系統(tong)。所以下一個(ge)(ge)(ge)(ge)系列,考(kao)慮如何(he)讓(rang)系統(tong)能(neng)(neng)夠(gou)支持更多(duo)的(de)(de)(de)(de)平(ping)臺。首選ARM,為(wei)什(shen)么?應為(wei)ARM正處于(yu)發(fa)展(zhan)的(de)(de)(de)(de)前期,使用的(de)(de)(de)(de)人也(ye)廣泛(fan),而RT-Thread第一個(ge)(ge)(ge)(ge)支持的(de)(de)(de)(de)平(ping)臺就是(shi)(shi)(shi)s3c4510,這(zhe)個(ge)(ge)(ge)(ge)是(shi)(shi)(shi)lumit開(kai)源(yuan)項目贈(zeng)送的(de)(de)(de)(de)平(ping)臺。在(zai)其后(hou),支持了包括(kuo)s3c44b0,AT91SAM7S64,AT91SAM7X256,s3c2410,AT91SAM9200,coldfire,x86等(deng)一系列平(ping)臺,編譯(yi)器統(tong)一使用GCC,這(zhe)個(ge)(ge)(ge)(ge)時期無疑(yi)是(shi)(shi)(shi)最艱(jian)難(nan)的(de)(de)(de)(de)時期(真的(de)(de)(de)(de)艱(jian)難(nan)嗎?呵(he)呵(he),但(dan)肯定(ding)是(shi)(shi)(shi)迷茫的(de)(de)(de)(de)),這(zhe)個(ge)(ge)(ge)(ge)就是(shi)(shi)(shi)0.2.0、0.2.1、0.2.3、0.2.4版本等(deng),不(bu)同(tong)的(de)(de)(de)(de)版本支持不(bu)同(tong)的(de)(de)(de)(de)平(ping)臺。
猜猜我這段時(shi)間是(shi)干什么工(gong)作的(de)?不知道(dao)大家對這個領域是(shi)否熟悉,手機2G,3G協(xie)議棧開發。每天都和(he)協(xie)議棧打交道(dao),而(er)且最痛苦(ku)(ku)的(de)是(shi)上(shang)千頁的(de)25.331 RRC協(xie)議,都是(shi)英文的(de),所以RT-Thread算(suan)做是(shi)工(gong)作之外的(de)苦(ku)(ku)中作樂(le)吧(ba)。而(er)也正(zheng)是(shi)這個時(shi)候,shaolin同學出現了(le),幫助完成了(le)RT-Thread/x86的(de)移植,他(ta)當時(shi)還是(shi)學生。
這其(qi)中還(huan)有(you)(you)一件郁悶(men)的(de)(de)事,當(dang)(dang)(dang)時(shi)RT-Thread團隊還(huan)有(you)(you)幾(ji)個人,只不過主要是(shi)(shi)shaolin和我。當(dang)(dang)(dang)0.2.3發布時(shi),我建議開(kai)始微內(nei)核的(de)(de)道(dao)路,嗯,可能(neng)很(hen)(hen)多(duo)人還(huan)比較困惑,RT-Thread后(hou)面跟著(zhu)的(de)(de)為(wei)什么是(shi)(shi)“啟動下一代(dai)RTOS演化”,當(dang)(dang)(dang)時(shi)就是(shi)(shi)因它而(er)感慨:把(ba)微內(nei)核引入進來(lai),把(ba)內(nei)核態和用(yong)戶態分開(kai)來(lai),并且(qie)建立一個類似于L4的(de)(de)微內(nei)核。當(dang)(dang)(dang)然(ran)最(zui)重要的(de)(de)是(shi)(shi),其(qi)中有(you)(you)一個強實時(shi)核心。而(er)且(qie)L4實際(ji)上是(shi)(shi)把(ba)頁表操作(zuo)放到內(nei)核之外的(de)(de),如果內(nei)核是(shi)(shi)一個強實時(shi)內(nei)核將對整個系統的(de)(de)實時(shi)性提(ti)升很(hen)(hen)大,而(er)因為(wei)微內(nei)核的(de)(de)緣故(gu),也(ye)(ye)能(neng)夠運(yun)行linux的(de)(de)應用(yong)程(cheng)序,并且(qie)當(dang)(dang)(dang)時(shi)RT-Thread也(ye)(ye)提(ti)出了(le)一種,線(xian)程(cheng)即IPC的(de)(de)概念。。。只是(shi)(shi),最(zui)后(hou)的(de)(de)提(ti)案被大家(jia)否決了(le)。團隊開(kai)始有(you)(you)數(shu)人,只是(shi)(shi)能(neng)夠堅持(chi)的(de)(de)沒幾(ji)個。
3、一(yi)年增加0.0.1
本(ben)人(ren)很早就接觸了Linux,算(suan)是國內資深的(de)Linux接觸者(早期也算(suan)一個(ge)Linux開發(fa)人(ren)員(yuan)吧),KDE 1.0幾乎(hu)是看著發(fa)展起來的(de)(大(da)(da)家(jia)有(you)誰(shui)用過(guo)RedHat 5.1?)。個(ge)人(ren)算(suan)是很多方面有(you)一些自由軟件的(de)習慣:軟件的(de)版(ban)本(ben)號(hao)是非(fei)常重要的(de)一個(ge)標志(zhi),寧愿增加一個(ge)細微的(de)版(ban)本(ben)號(hao)也不輕易的(de)增加一個(ge)大(da)(da)的(de)版(ban)本(ben)號(hao),因為大(da)(da)的(de)版(ban)本(ben)號(hao)是需要對用戶負責(ze)的(de)。1.0版(ban)本(ben)更代(dai)表了系統的(de)穩定性(xing),健全性(xing)。例(li)如mplayer到1.0版(ban)本(ben)就經歷眾(zhong)多小(xiao)版(ban)本(ben),0.99的(de)beta版(ban)本(ben)亦無(wu)數(shu)。
RT-Thread也(ye)把這(zhe)點體現得(de)淋漓盡(jin)致,0.2.2到0.2.3一(yi)(yi)個(ge)版本(ben)的增(zeng)(zeng)加(jia),整(zheng)整(zheng)花了一(yi)(yi)年多的時間。但這(zhe)個(ge)小版本(ben)號的增(zeng)(zeng)加(jia),卻帶(dai)來(lai)了開源(yuan)社區(qu)嵌(qian)入式(shi)環(huan)境中最(zui)完(wan)善的TCP/IP協(xie)議棧:LwIP。當然,開始時并(bing)(bing)不算穩定。在這(zhe)幾個(ge)版本(ben)中,RT-Thread也(ye)終于從迷茫(mang)中走出來(lai),RT-Thread需要自己的特(te)色,一(yi)(yi)個(ge)單獨的RTOS Kernel沒太大的用(yong)處,因為(wei)你(ni)并(bing)(bing)沒有(you)上(shang)層應(ying)用(yong)代碼(ma)的積累(lei),并(bing)(bing)且(qie)一(yi)(yi)些基礎組件(jian)也(ye)非(fei)常(chang)重(zhong)要,有(you)這(zhe)些基礎組件(jian)基本(ben)上(shang)意味(wei)著,在這(zhe)個(ge)平臺上(shang)寫代碼(ma),這(zhe)些代碼(ma)就是你(ni)的,甚(shen)至是你(ni)哪(na)天也(ye)可以把它(ta)放到另外一(yi)(yi)個(ge)硬件(jian)平臺上(shang)運行。
同樣,0.2到0.3版本號的(de)(de)變更,花費的(de)(de)時間(jian)會更長(chang)^-^版本號的(de)(de)長(chang)短,是(shi)和計劃(hua)的(de)(de)feature實現是(shi)密切相關的(de)(de),沒(mei)到設定的(de)(de)目標如何可能(neng)進行發布呢?
4、Cortex-M3的變革
RT-Thread的(de)(de)(de)(de)變革因為(wei)Cortex-M3而來(lai),因為(wei)ST的(de)(de)(de)(de)STM32使用的(de)(de)(de)(de)人太廣了(le),當(dang)(dang)然(ran)還有(you)非常重(zhong)要的(de)(de)(de)(de)一點。RT-Thread已經(jing)開始支持Keil MDK,armcc了(le)。GNU GCC確實好,并且也由衷(zhong)的(de)(de)(de)(de)推崇(chong)它(ta)(ta),使用它(ta)(ta),只是(shi)調試確實麻煩,阻礙了(le)更多(duo)人使用它(ta)(ta)(ARM平臺上)。當(dang)(dang)RT-Thread+Cortex-M3+Keil MDK碰撞在(zai)一起的(de)(de)(de)(de)時候,火(huo)花因它(ta)(ta)而生,越來(lai)越多(duo)人使用RT-Thread了(le),當(dang)(dang)然(ran)這(zhe)和RT-Thread厚積薄發(fa)(fa)是(shi)離不(bu)開的(de)(de)(de)(de),因為(wei)這(zhe)個(ge)時候,RT-Thread已經(jing)有(you)一個(ge)穩定的(de)(de)(de)(de)內核(he),shell方式的(de)(de)(de)(de)調試利器finsh,DFS虛(xu)擬設備文件(jian)系(xi)統(tong),以(yi)及LwIP協議棧(zhan)。而RT-Thread/GUI則在(zai)密集的(de)(de)(de)(de)移植到CM3上,RT-Thread/GUI成型于2008年(nian)底(di),但為(wei)了(le)Cortex-M3分(fen)支,這(zhe)個(ge)組件(jian)停下來(lai)很多(duo),但這(zhe)種停留是(shi)值(zhi)得(de)的(de)(de)(de)(de)。另外(wai)就是(shi)特別感謝UET贈送(song)的(de)(de)(de)(de)STM32開發(fa)(fa)板了(le),RT-Thread/STM32的(de)(de)(de)(de)分(fen)支都是(shi)在(zai)UET贈送(song)的(de)(de)(de)(de)STM32開發(fa)(fa)板上驗證的(de)(de)(de)(de)。
5、RT-Thread為什么是(shi)對象(xiang)化的設(she)計方法
可(ke)能這個話題太偏(pian)技術化了,說說其他,呵呵。
面向對(dui)象編(bian)程有它的(de)(de)好處,例(li)如繼承。可以(yi)讓具備相同(tong)父類(lei)的(de)(de)子類(lei)共享使用父類(lei)的(de)(de)方法(fa),基本(ben)可以(yi)說是不(bu)(bu)用寫代(dai)碼就(jiu)憑空多出(chu)了很多函數,何樂而不(bu)(bu)為呢。另外,對(dui)象的(de)(de)好處在(zai)于封裝。當一個(ge)對(dui)象封裝好了以(yi)后,并測(ce)試完成后,基本(ben)上就(jiu)代(dai)表(biao)這個(ge)類(lei)是健全的(de)(de),從這個(ge)類(lei)派生(sheng)的(de)(de)子類(lei)不(bu)(bu)需(xu)要過多考慮(lv)父類(lei)的(de)(de)不(bu)(bu)穩定(ding)性(xing)。
這里著重提提另(ling)外一個(ge)人,我工作后的(de)第三年,曾(ceng)向(xiang)當(dang)時的(de)同事也是好友,L.Huray學(xue)習面(mian)向(xiang)對象(xiang)(xiang)的(de)實(shi)時設(she)計方(fang)法:Octpus II。深(shen)刻(ke)體(ti)會到了(le)面(mian)向(xiang)對象(xiang)(xiang)設(she)計的(de)好處(需求分析,體(ti)系結(jie)構設(she)計,子系統分析,子系統設(she)計,測試,實(shi)時性(xing)分析),但鑒于(yu)嵌入式系統中(zhong)C++的(de)不確定性(xing),所(suo)以個(ge)人更(geng)偏向(xiang)于(yu)使用C來實(shi)現(xian)。所(suo)以,L.Huray算是我的(de)老(lao)師了(le),一直希(xi)(xi)望(wang)能夠有時間把他老(lao)人家(jia)的(de)思想更(geng)進一步的(de)發(fa)揚光(guang)大,希(xi)(xi)望(wang)以后有這個(ge)機會。(Octpus I最(zui)初起(qi)源于(yu)Nokia,然后由(you)M.Award, L.Huray發(fa)展(zhan)成Octpus II,現(xian)在幾乎見不到蹤影(ying)了(le),唉)。
(作者原文:實時線(xian)程操作系統(RT-Thread)4年開(kai)發(fa)歷程樂與苦(ku))
1、任務管理及調度:
RT-Thread-32/256可選優先級搶占式調度,線(xian)程(cheng)(cheng)數不限,相同優先級線(xian)程(cheng)(cheng)時間片輪轉調度;支持動態創建/銷毀線(xian)程(cheng)(cheng)。
uCOS-256優(you)先級搶占式調度,不(bu)允許相同優(you)先級任務存在
2、同步/通信機制:
RT-Thread-支持semaphore, mutex, mailbox, message queue, event。mailbox可存(cun)儲多條消息,任務等待(dai)可按(an)優先級進行排隊。
uCOS -semaphore,mutex, mailbox, message queue, event。mailbox只(zhi)能存放(fang)1條消(xiao)息
3、內存管理:
RT-Thread-固定分區內(nei)存(cun)管理(li),小(xiao)內(nei)存(cun)系統(tong)動(dong)態(tai)內(nei)存(cun)管理(li),大內(nei)存(cun)系統(tong)SLAB內(nei)存(cun)管理(li)
uCOS-固定大小內存塊管理
4、定時器:
RT-Thread-掛接到(dao)系統(tong)OS定時(shi)器(qi)的硬定時(shi)器(qi)
uCOS - 只能使用OSTimeDly進行時間間隔處理
5、中斷嵌套:
RT-Thread - 允許
uCOS - 允許(xu)
6、源(yuan)碼許(xu)可證:
RT-Thread - 遵(zun)循GPLv2+許可(ke)證。可(ke)用(yong)于商業產(chan)品(只需要(yao)注明(ming)使用(yong)了(le)RT-Thread)
uCOS - 商(shang)業(ye)收費
發布時間:11/04/2014
RT-Thread 2.0.0發布(bu)候(hou)選(xuan)版(ban)本(release candidate),同時發布(bu)v1.2.3穩定版(ban)本
隨著RT-Thread功能越來越多,如(ru)何發(fa)(fa)布版(ban)(ban)本(ben)也(ye)成為一件(jian)頭疼(teng)的(de)(de)事情(qing),因為需要(yao)仔細對比(bi)最近三個(ge)月(yue)來的(de)(de)修改記錄。這次的(de)(de)發(fa)(fa)布距離上一次beta版(ban)(ban)本(ben)依然(ran)是三個(ge)月(yue)的(de)(de)時(shi)間,但按照發(fa)(fa)布計劃(hua)已(yi)然(ran)推(tui)遲了(le)一個(ge)月(yue)進行(xing)發(fa)(fa)布。
在這三個月中,開源社區上也發生了很多有趣的事情:
阿嘉的(de)使用RT-Thread的(de)四(si)軸飛行器畢業(ye)設計驚艷亮相,采(cai)用了1個STM32F4 + 8個STM32F1進(jin)(jin)行飛行控(kong)制,總計9個MCU的(de)另類(lei)實現方(fang)式;沿循四(si)軸飛行器的(de)路(lu)線,與(yu)國(guo)內匿名團(tuan)隊合(he)作,采(cai)用RW009 Wi-Fi控(kong)制的(de)迷你四(si)軸飛行器也在(zai)穩步推(tui)進(jin)(jin)過程中。
RT-Thread做為一個開源(yuan)組織參與(yu)的(de)CSDN開源(yuan)夏(xia)令(ling)營(ying)結出了豐碩的(de)果實:
由hduffddybz參與(yu)的IPv6協(xie)議棧(zhan)移(yi)植(zhi)(最新版本(ben)的lwIP-head版本(ben)移(yi)植(zhi))在這次發布中(zhong)已(yi)經包括進來,從而(er)能夠在使用RT-Thread的小型設(she)備上實現TCP/IP v4/v6雙棧(zhan)的支(zhi)持;
由wzyy2參與的(de)GDB stub實現,也完美的(de)支持BeagleBoneBlack開發板和(he)STM32F4平臺;
CSDN開源(yuan)夏(xia)令營(ying)其他的(de)成(cheng)果,例如bluedroid移(yi)植也有(you)了初步的(de)成(cheng)果,希(xi)望(wang)能夠在后續(xu)的(de)版本(可(ke)能會(hui)是(shi)(shi)2.1.0系(xi)列(lie)版本?)包含進來(lai)。CSDN開源(yuan)夏(xia)令營(ying)是(shi)(shi)一次(ci)非常(chang)棒的(de)活(huo)動(dong),能夠讓學生提前進入實戰,了解軟件開發的(de)初步知(zhi)識。對開源(yuan)社(she)區(qu)來(lai)說,也是(shi)(shi)一次(ci)非常(chang)有(you)益(yi)的(de)社(she)區(qu)互動(dong)活(huo)動(dong)。希(xi)望(wang)這個(ge)活(huo)動(dong)可(ke)以(yi)繼續(xu),關注RT-Thread、嵌入式開發的(de)同學可(ke)以(yi)關注動(dong)向。
當前智能化設備是一個備受關注的領域,針對這一領域的特點,RT-Thread也相應的做出了積極的響應,所以這個版本開始加入sensor的應用框架(APP/算法<-->sensor framework<-->RT-Thread device driver<-->硬件外(wai)設)。希望在(zai)小型化(hua)的(de)(de)RT-Thread操作(zuo)系(xi)統(tong)(tong)基(ji)礎上(shang)融合智能(neng)化(hua)相關的(de)(de)技術,讓(rang)RT-Thread成(cheng)為這(zhe)方面(mian)可(ke)選的(de)(de)OS系(xi)統(tong)(tong)之一。RT-Thread操作(zuo)系(xi)統(tong)(tong)的(de)(de)sensor框架也(ye)嘗試新(xin)的(de)(de)實現(xian)方式,即采用C++的(de)(de)方式來實現(xian)(當然也(ye)會(hui)考慮(lv)C方面(mian)的(de)(de)兼(jian)容,無疑C++的(de)(de)面(mian)向對象特性會(hui)更好(hao),所(suo)以(yi)最終選擇了C++),在(zai)這(zhe)個基(ji)礎上(shang)也(ye)可(ke)能(neng)融合其他的(de)(de)一些(xie)生態(tai)技術,例如ARM mbed平臺上(shang)的(de)(de)一些(xie)社區組件技術。所(suo)以(yi)這(zhe)個發(fa)布版(ban)本中(zhong)既包括sensor框架,也(ye)包括了C++底(di)層的(de)(de)一些(xie)基(ji)礎支撐。
這個版(ban)(ban)(ban)本是RT-Thread 2.0.0系列(lie)正式(shi)(shi)版(ban)(ban)(ban)本的(de)候選版(ban)(ban)(ban)本,正式(shi)(shi)版(ban)(ban)(ban)本預計(ji)(ji)會在年(nian)底正式(shi)(shi)發布,距離正式(shi)(shi)版(ban)(ban)(ban)本還會加入更完善的(de)一些支撐(例如各(ge)種傳感器驅動)。也計(ji)(ji)劃2014年(nian)11月(yue)22日,在上海浦東舉行RT-Thread嵌入式(shi)(shi)系統沙龍活動,歡(huan)(huan)迎大家關注并(bing)參與進行RT-Thread方方面(mian)面(mian)的(de)技術(shu)交流。具體時間、地點再另(ling)行通(tong)知,歡(huan)(huan)迎關注@RT-Thread微博獲得最新(xin)的(de)消息。
記錄下RT-Thread0.3.x的成長
先解釋幾個常見問題:
1.RT-Thread從哪里(li)而來?
RT-Thread RTOS,Kernel部分完(wan)成于(yu)2006年(nian)上半(ban)年(nian),創始人源于(yu)國內一(yi)老(lao)牌(pai)RTOS:DOOLOO RTOS,甚至是(shi)BSP一(yi)些結構都源于(yu)DOOLOO RTOS。但與DOOLOO RTOS明顯(xian)不同(tong)的是(shi),Kernel完(wan)全重新編(bian)寫,突出的是(shi)實時(shi)性和小而靈活,并且引(yin)入了(le)內核(he)的對象模型以(yi)摒(bing)棄內核(he)對象的與動態內存(cun)管理器無關化。
2.RT-Thread用(yong)于商(shang)業產(chan)品(pin)&工程,版權如何(he)界定(ding)?
RT-Thread RTOS內核部分完(wan)全由我們編寫,無其(qi)他版權(quan)問(wen)題,可以放心在商業(ye)產(chan)(chan)品&工程中(zhong)使(shi)(shi)用(yong)(yong)(yong)。對于把RT-Thread使(shi)(shi)用(yong)(yong)(yong)于商業(ye)產(chan)(chan)品中(zhong),我們承(cheng)(cheng)諾(nuo)永久不收費(使(shi)(shi)用(yong)(yong)(yong)人擁有使(shi)(shi)用(yong)(yong)(yong)權(quan),使(shi)(shi)用(yong)(yong)(yong)用(yong)(yong)(yong)途責任請自行承(cheng)(cheng)擔)。另外有兩(liang)點需要注意:
- RT-Thread RTOS代(dai)碼原始版(ban)權屬(shu)于RT-Thread所有。
-在商業產品(pin)&工程中使(shi)用RT-Thread RTOS,請在產品(pin)說明(ming)書上明(ming)確(que)說明(ming)使(shi)用了RT-Thread,如有(you)串(chuan)口輸出,請在系統啟動顯示RT-Thread的版本(ben)信息。如使(shi)用了RT-Thread RTGUI,請保留RT-Thread LOGO。
3.RT-Thread RTOS由誰開發,由誰維(wei)護?
目前RT-Thread RTOS由國內RT-Thread工作室開發及維護
4.RT-Thread RTOS是否已(yi)經在產品中使用?穩定度&BUG情況如何?
目前已經有(you)數家公司(si)使用RT-Thread RTOS做為他們的(de)系統(tong)平臺(tai),在(zai)上面進(jin)行(xing)產(chan)品開發,穩定性表現不錯。
就(jiu)如(ru)同沒有100%的(de)完美(mei)事物一樣,BUG是存在的(de),反(fan)饋上來我(wo)們會努(nu)力盡快修正(zheng)。
5.我(wo)能加入到(dao)RT-Thread的開發者隊伍中(zhong)嗎?
能!
我們歡迎任何(he)對(dui)RTOS感興(xing)趣的人,不管你是學生或資深(shen)嵌入(ru)式系統開發工(gong)程師(shi)。RT-Thread的開發人員通常(chang)依賴于論壇、郵件、GTalk進行(xing)(xing)聯系交流,由(you)于目前上海(hai)的開發人員比較多一些(xie),所以會不定期(qi)的在上海(hai)舉行(xing)(xing)開發者聚會。
6. RT-Thread依靠(kao)什么持續發(fa)展下去,能夠盈利嗎(ma)?
目前RT-Thread的(de)(de)發(fa)展(zhan)(zhan)主要(yao)依賴于(yu)大(da)(da)家(jia)的(de)(de)興趣(qu)愛好,大(da)(da)多數都是(shi)在(zai)業余時(shi)(shi)間(jian)進(jin)行開(kai)發(fa)的(de)(de)。以后會(hui)通(tong)過技(ji)術支持(chi)(chi)、組(zu)(zu)件(jian)(jian)(jian)定制、組(zu)(zu)件(jian)(jian)(jian)開(kai)發(fa)、輔助(zhu)工(gong)具(ju)等方式進(jin)行盈利。從幾大(da)(da)開(kai)源(yuan)軟(ruan)件(jian)(jian)(jian)來看,商(shang)業支持(chi)(chi)是(shi)軟(ruan)件(jian)(jian)(jian)持(chi)(chi)續發(fa)展(zhan)(zhan)不(bu)可或(huo)缺的(de)(de)一部分,所以我們希望能夠有(you)更多的(de)(de)公(gong)(gong)司(si)選擇RT-Thread RTOS做為系統平臺,這個對(dui)于(yu)公(gong)(gong)司(si)、對(dui)于(yu)整個RT-Thread社區(qu)都是(shi)雙(shuang)贏(ying)的(de)(de)局面。對(dui)于(yu)公(gong)(gong)司(si),能夠獲得免費(fei)的(de)(de)RTOS套件(jian)(jian)(jian),同(tong)時(shi)(shi)也能夠推動著(zhu)這個RTOS套件(jian)(jian)(jian)不(bu)斷的(de)(de)朝著(zhu)穩定的(de)(de)方向發(fa)展(zhan)(zhan)。對(dui)于(yu)我們,有(you)公(gong)(gong)司(si)支持(chi)(chi)的(de)(de)發(fa)展(zhan)(zhan)無疑會(hui)令RT-Thread的(de)(de)發(fa)展(zhan)(zhan)更上一層樓,當然也意味著(zhu)以后的(de)(de)支持(chi)(chi)費(fei)用有(you)著(zhu)落啦(la)。
=========
問題完了(le)(le),開始進入(ru)0.3.x系列(lie)的(de)主題。在(zai)對外發(fa)(fa)(fa)布(bu)(bu)上,相信大家已(yi)(yi)經看到了(le)(le),RT-Thread已(yi)(yi)經進入(ru)了(le)(le)0.3.x的(de)密集發(fa)(fa)(fa)布(bu)(bu)周期。RT-Thread/STM32F103VB已(yi)(yi)經發(fa)(fa)(fa)布(bu)(bu)了(le)(le)0.3.0系列(lie)的(de)3個(ge)beta版(ban)本(ben),RT-Thread/STM32F103ZE已(yi)(yi)經發(fa)(fa)(fa)布(bu)(bu)了(le)(le)0.3.0系列(lie)的(de)2個(ge)beta版(ban)本(ben),RT-Thread/LPC2148已(yi)(yi)經發(fa)(fa)(fa)布(bu)(bu)了(le)(le)一個(ge)0.3.0系列(lie)的(de)beta版(ban)本(ben)。接下來會考(kao)慮發(fa)(fa)(fa)布(bu)(bu)RT-Thread/LM3S的(de)第一個(ge)beta版(ban)本(ben)(汗一個(ge),剛發(fa)(fa)(fa)過了(le)(le)的(de)板子(zi)有些硬件問題,返修了(le)(le))...
這些版本,大多數上會包含:Kernel + FinSH shell + Filesystem + LwIP等。
0.3.0系列,RT-Thread還(huan)包(bao)括兩大內容:
-編程指南文檔
- RTGUI圖(tu)形(xing)界面系統
編(bian)程指(zhi)(zhi)南一(yi)(yi)直在修訂,比較遺憾文(wen)筆(bi)有限,所以文(wen)檔還請大家不(bu)(bu)要(yao)太挑剔,有什么(me)建議歡迎大家提(ti)出(chu)來。關于編(bian)程指(zhi)(zhi)南,還要(yao)提(ti)一(yi)(yi)句的(de)是(shi)(shi),這(zhe)份文(wen)檔是(shi)(shi)一(yi)(yi)份編(bian)程的(de)指(zhi)(zhi)南,在RT-Thread上(shang)編(bian)程需要(yao)考慮的(de)地方都會(hui)提(ti)出(chu)來。但(dan)是(shi)(shi),它(ta)并(bing)不(bu)(bu)是(shi)(shi)一(yi)(yi)份代碼(ma)分析的(de)文(wen)檔,雖然它(ta)可能會(hui)提(ti)到內部的(de)一(yi)(yi)些大致結構(gou)框架,但(dan)它(ta)不(bu)(bu)會(hui)對代碼(ma)進行(xing)一(yi)(yi)行(xing)行(xing)分析,所以請大家多(duo)多(duo)注意。
另外的(de)(de)RTGUI組件(jian),會是以(yi)后的(de)(de)重(zhong)點任(ren)務(wu),目前的(de)(de)打算是在現(xian)有的(de)(de)STM32F103ZE開(kai)發板上實現(xian)一套可用的(de)(de)手(shou)持(chi)終端設備(bei),當(dang)然(ran)也依然(ran)延(yan)續RT-Thread的(de)(de)習慣(guan),這(zhe)套東西會以(yi)開(kai)源(yuan)的(de)(de)形式(shi)釋放(fang)出來(lai)。在s3c2410/2440上,這(zhe)套GUI表現(xian)得是相當(dang)不錯的(de)(de),面向對(dui)(dui)象的(de)(de)設計,獨立的(de)(de)控件(jian)對(dui)(dui)象模(mo)型,留(liu)給了(le)用戶最大的(de)(de)可擴展性。
其他的,caoxulong的x86分(fen)支(zhi)(zhi)在整(zheng)理完畢后也會放到0.3.0這(zhe)個(ge)(ge)分(fen)支(zhi)(zhi)上(shang)(shang)來,通過這(zhe)個(ge)(ge)分(fen)支(zhi)(zhi)大家可(ke)以(yi)(yi)完全摒(bing)棄(qi)開發(fa)(fa)板,在PC或VMWare/QEMU上(shang)(shang)體驗RT-Thread。LPC系(xi)列分(fen)支(zhi)(zhi),苦于目前開發(fa)(fa)板不(bu)足(zu),所以(yi)(yi)進展慢一(yi)些,上(shang)(shang)次發(fa)(fa)布的RT-Thread /LPC2148 0.3.0 beta1也只能包含SD卡、以(yi)(yi)太網口驅動框(kuang)架,這(zhe)個(ge)(ge)系(xi)列會把(ba)wyoujtg/風城少主的LPC2106的移植合并進來。
文件(jian)系統這塊現在(zai)代碼已經發(fa)布出(chu)來了,其實里面還包括另外一個(ge)分(fen)支(zhi)的(de):DFS-FAT,這個(ge)分(fen)支(zhi)就(jiu)如同DFS一樣(yang),是我們自己(ji)編寫(xie)的(de),也能夠支(zhi)持NandFlash等介質上的(de)壞(huai)塊管理,寫(xie)了很多個(ge)測(ce)試(shi)例(li)子在(zai)測(ce),等通過壓力(li)測(ce)試(shi)后會取代目前的(de)DFS-EFSL發(fa)布出(chu)來。