日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

RT-thread国产实时操作系统概述

發(fā)布時(shí)間:2024/3/7 windows 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RT-thread国产实时操作系统概述 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

RT-Thread實(shí)時(shí)操作系統(tǒng)是一個(gè)分層的操作系統(tǒng),它包括了:

? 組件層components,這些是基于RT-Thread核心基礎(chǔ)上的外圍組件,把一些功能模塊劃分成獨(dú)立的一個(gè)個(gè)組件模塊,做到組件與組件之間的低耦合,組件內(nèi)部的高內(nèi)聚。

 例如文件系統(tǒng),命令行shell接口,lwIP輕型TCP/IP協(xié)議棧,GUI圖形用戶(hù)界面等。

? 硬實(shí)時(shí)內(nèi)核kernel,這層是RT-Thread的核心,包括了內(nèi)核系統(tǒng)中對(duì)象的實(shí)現(xiàn),例如多線(xiàn)程及其調(diào)度,信號(hào)量,郵箱,消息隊(duì)列,內(nèi)存管理,定時(shí)器等實(shí)現(xiàn)。

?分支接口porting,主要由libcpu以及不同硬件平臺(tái)的bsp構(gòu)成,即RT-Thread支持的一個(gè)個(gè)芯片移植,外設(shè)驅(qū)動(dòng)等


在官網(wǎng)http://www.rt-thread.org/下載RT-Thread v2.0.0正式版,解壓后:

bsp:?針對(duì)各個(gè)具體開(kāi)發(fā)板、平臺(tái)的目錄,其中包含相應(yīng)的Keil工程文件(如果包含了Keil MDK的移植)

components:各個(gè)組件,如dfs/drivers/finsh/gdb/libc/libdl/net/vbus/vmm等

documentation/examples:輔助文檔以及一些內(nèi)核、組件的測(cè)試實(shí)例

include:包含了RT-Thread內(nèi)核頭文件

libcpu:?面向各個(gè)芯片cpu移植的代碼

src:包含了RT-Thread內(nèi)核源文件

tools:支持各種集成開(kāi)發(fā)環(huán)境的python文件,如常見(jiàn)的iar.py/keil.py/sconsui.py/vs2012.py


v2.0.0版本相對(duì)v1.2.x版本,又加入眾多新功能,有些很有趣,有些很實(shí)用:
1. 設(shè)備驅(qū)動(dòng)框架在v2.0.0版本中進(jìn)一步完善。DeviceDriver在RT-Thread中類(lèi)似抽象的驅(qū)動(dòng)框架層,初衷是,向應(yīng)用層(或組件)提供標(biāo)準(zhǔn)統(tǒng)一的接口,向下(底層硬件)提供簡(jiǎn)化的編程模型,在v2.0.0版本中,新添加了:SPI NorFlash(ATMEL/SST/華邦等廠(chǎng)家),SPI ETH(ENC28J60),SPI WiFi(RW009)等的驅(qū)動(dòng),這些驅(qū)動(dòng)依賴(lài)于RT-Thread的SPI抽象模型,提供了抽象、無(wú)需修改的外設(shè)驅(qū)動(dòng)代碼;類(lèi)似的,建立在I2C驅(qū)動(dòng)框架上,v2.0.0版本也引入了sensor的驅(qū)動(dòng)框架,并提供了MPU6050、BMI055等傳感器的驅(qū)動(dòng);作為雜類(lèi)設(shè)備的嘗試,GPIO(IO pin)的抽象框架也終于在這個(gè)版本提出來(lái)了,以后點(diǎn)燈簡(jiǎn)單啦
2. 在1.x系列版本中,USB device/host框架支持得一般,不能說(shuō)非常棒,而在v2.0.0版本中,USB框架通過(guò)逐步的重構(gòu),也開(kāi)始走向成熟,在服務(wù)公司里也應(yīng)用到多個(gè)項(xiàng)目,多個(gè)處理器上
3. 為了方便的切換不同的編譯器平臺(tái),在v2.0.0版本中也把原來(lái)的minilibc/newlib/armlibc用統(tǒng)一的宏替換:RT_USING_LIBC。老版本的代碼遷移過(guò)來(lái),請(qǐng)注意下使用新的、統(tǒng)一的宏:RT_USING_LIBC。同時(shí)也加入了IAR的dlib,這樣當(dāng)配置中打開(kāi)LIBC時(shí),scons將會(huì)自動(dòng)根據(jù)你當(dāng)前使用的編譯器來(lái)自動(dòng)選擇不同libc庫(kù)的移植;
4. GDB stub,這部分是CSDN編程夏令營(yíng)活動(dòng)的成果之一,一直覺(jué)得類(lèi)似夏令營(yíng)的活動(dòng)很好,可以拉近學(xué)生和開(kāi)發(fā)者的距離。通過(guò)這個(gè)組件,終于可以讓RT-Thread可以進(jìn)行軟件方式的調(diào)試了,雖然是命令行方式的GDB,但它也有很多圖形化前端配合來(lái)進(jìn)行源碼級(jí)的調(diào)試仿真;
5. lwIP相關(guān)的更新。這個(gè)貌似有很多,引爆點(diǎn)應(yīng)該說(shuō)是一個(gè)很熱門(mén)的詞:物聯(lián)網(wǎng)。圍繞著這個(gè),v2.0.0版本中加入了RW009這樣的簡(jiǎn)單易用的Wi-Fi網(wǎng)卡驅(qū)動(dòng),IPv4/v6雙協(xié)議棧的支持,DHCP server,甚至是NAT這樣的地址轉(zhuǎn)換實(shí)現(xiàn),哦,用RT-Thread來(lái)做小路由,網(wǎng)關(guān)變成了可能。哦,RT-Thread的目標(biāo)并不是物聯(lián)網(wǎng),更重要的是它是一套基礎(chǔ)性的軟件平臺(tái)。
6. 隨著Linux/RT-Thread同時(shí)執(zhí)行的方式,相應(yīng)的VMM組件,VBUS組件也在這個(gè)版本上發(fā)布出來(lái)。VMM組件更多的側(cè)重于單核,Linux/RT-Thread雙系統(tǒng)并行執(zhí)行以獲得更好的實(shí)時(shí)性,而VBUS組件則解決了Linux/RT-Thread雙系統(tǒng)之間的數(shù)據(jù)通信問(wèn)題。兩者是相輔相成的。這兩個(gè)組件要求的技術(shù)性也更高,一般用于一些可靠性要求非常高的場(chǎng)合。在RT-Thread 2.0.0版本中也終于支持了LPC4357這樣的小異構(gòu)系統(tǒng)(LPC4357中包含了ARM Cortex M4/M0兩個(gè)異構(gòu)核心),實(shí)現(xiàn)了M4/M0上分別運(yùn)行RT-Thread系統(tǒng),兩者之間則通過(guò)VBUS進(jìn)行通信。所以,對(duì)多系統(tǒng)/VBUS感興趣的同學(xué)可以從LPC4357上入手。

在開(kāi)發(fā)的過(guò)程中也出現(xiàn)了一個(gè)附加品,QEMU/realview上模擬執(zhí)行RT-Thread(或者Linux/RT-Thread)的BSP,它可以讓未經(jīng)修改的標(biāo)準(zhǔn)QEMU,去軟件仿真模擬執(zhí)行RT-Thread,或更進(jìn)一步,執(zhí)行Linux/RT-Thread。

RT-Thread v2.1.0 roadmap
下一個(gè)版本應(yīng)該是一個(gè)小版本,不可能總是類(lèi)似原來(lái),每次都出大版本很多人來(lái)詢(xún)問(wèn)過(guò)下一個(gè)版本的計(jì)劃是什么。其實(shí)我想說(shuō),RT-Thread是一個(gè)開(kāi)源社區(qū),RT-Thread的后續(xù)發(fā)展在社區(qū),屬于每一個(gè)社區(qū)參與者,你想在里面加入什么樣的功能,做好哪部分的工作,關(guān)鍵在于每個(gè)社區(qū)的參與者。只要符合RT-Thread的東西(例如許可證上沒(méi)有沖突),我也沒(méi)理由不把它放到RT-Thread開(kāi)發(fā)主干上來(lái)。所以我下面提及的更多代表的是我個(gè)人的一些想法,社區(qū)還是需要更多的多樣性,社區(qū)是屬于你的,只要你參與進(jìn)去做!
1.?CloudIDE,這個(gè)是托管在http://lab.rt-thread.org/cloudide 上(可能因?yàn)閭浒傅膯?wèn)題暫時(shí)不通)的在線(xiàn)方式的集成開(kāi)發(fā)環(huán)境,嗯,有些類(lèi)似mbed但是希望有自己的特色,以及希望它是屬于國(guó)內(nèi)的Online IDE,速度能夠快些。這部分也在密集的進(jìn)行改版,演變成多標(biāo)簽頁(yè)編輯方式;配合Wi-Fi入門(mén)套件,進(jìn)行在線(xiàn)方式更新固件;加入開(kāi)發(fā)者間的代碼片段,組件分享功能;集成文檔幫助等信息等等;創(chuàng)建這個(gè)的初衷是希望新手入門(mén)能夠方便些,而不是受搭建開(kāi)發(fā)環(huán)境的困擾,需要的只是一個(gè)瀏覽器。Wi-Fi入門(mén)套件,暫時(shí)稱(chēng)為ART-wifi吧,簡(jiǎn)單的名字就是一個(gè)稱(chēng)呼,名字而已。
2. 去年12月份上海嵌入式沙龍活動(dòng)中,weety提到了POSIX兼容性的問(wèn)題,導(dǎo)致Linux的一些程序并不那么容易移植過(guò)來(lái)(或者說(shuō)后續(xù)的代碼一致性),這里主要問(wèn)題在于BSD socket接口是完全屬于lwIP協(xié)議棧,而和RT-Thread的文件接口沒(méi)關(guān)系,所以在RT-Thread上沒(méi)有socket/file descriptor/device間的select/poll/read/write等調(diào)用;另外一個(gè)隱含問(wèn)題是,POSIX實(shí)現(xiàn)也不是那么標(biāo)準(zhǔn),可能里面還有一些坑等。這個(gè)問(wèn)題是一個(gè)大問(wèn)題,因?yàn)殛P(guān)鍵點(diǎn)在于,大家既然選擇了開(kāi)源的系統(tǒng),那么他肯定也考慮到開(kāi)源生態(tài)很好,有很多的資源可以使用,可以左右逢源。。。所以,RT-Thread也需要以更開(kāi)放的姿態(tài)來(lái)解決這個(gè)問(wèn)題,使得它能夠更開(kāi)放,增強(qiáng)POSIX標(biāo)準(zhǔn)本身的親和力。相類(lèi)似的,它也應(yīng)該更好地支持一些C++標(biāo)準(zhǔn),基礎(chǔ)設(shè)施RT-Thread已經(jīng)提供了,后面如何去應(yīng)用,那么就看用戶(hù)的想法、創(chuàng)新性有多大了。
3.?一些重型平臺(tái)的支持,例如市場(chǎng)上新出的一些堆疊封裝了SDRAM/DDR的ARM9,Cortex-A8/9,MIPS32/64,甚至是x86,這個(gè)肯定也會(huì)逐步地演變成RT-Thread的目標(biāo)硬件平臺(tái),但是這個(gè)投入也會(huì)比較重。如果上面的第二項(xiàng)解決了,也不是不可能,首要解決的是底層驅(qū)動(dòng)的問(wèn)題,這樣后續(xù)就比較容易和上面的組件、應(yīng)用粘合起來(lái)。
好了,以下是想到的無(wú)責(zé)任feature list,感興趣的同學(xué)可以來(lái)認(rèn)領(lǐng):
* CloudIDE相關(guān)
- 完善NAT功能,把ART-wifi變成一個(gè)Wi-Fi中繼(路由)。
- 期待在CloudIDE上分享MQTT組件,CoAP組件;
- 期待把ART-wifi變成一個(gè)Wi-Fi/6LoWPAN網(wǎng)關(guān)。
- 期待把ART-wifi變成一個(gè)Wi-Fi/nRF51822 6LoWPAN網(wǎng)關(guān),Wi-Fi/nRF51822 BLE網(wǎng)關(guān);
- 期待把ART-wifi變成一個(gè)多軸飛控,并跑一些PX4的算法代碼;
- 期待在CloudIDE上分享樂(lè)聯(lián)網(wǎng)物聯(lián)網(wǎng)接入組件;
- 期待在CloudIDE上分享yeelink物聯(lián)網(wǎng)接入組件;
- 期待在CloudIDE上分享SSL組件;
- 期待在CloudIDE上分享阿里云,機(jī)智云,百度云,騰訊云等等接入組件;
- 更多的傳感器驅(qū)動(dòng),例如氣壓計(jì),溫度計(jì),光照,9軸傳感器等;
- 期待在CloudIDE上加載RealBoard 4088 APP開(kāi)發(fā)功能;
- 期待在CloudIDE上加入圖形用戶(hù)界面設(shè)計(jì)功能;
- 期待把CloudIDE變成本地化的桌面應(yīng)用程序;
* POSIX相關(guān)
- 針對(duì)lwIP實(shí)現(xiàn)DFS上相應(yīng)的lwIP fs接口,讓DFS的fd和lwIP socket關(guān)聯(lián)起來(lái);實(shí)現(xiàn)select/poll接口;
- 更好的把device接口和DFS devfs融合起來(lái);協(xié)同實(shí)現(xiàn)好select功能;
- 加入更多POSIX相關(guān)接口,包括但不限制于aio,signal等功能;
- 整理DeviceDriver框架,讓device接口,和各自設(shè)備驅(qū)動(dòng)接口分離開(kāi)來(lái)。應(yīng)用程序更多的傾向于使用device接口,固件開(kāi)發(fā)可以使用設(shè)備驅(qū)動(dòng)接口;
* 其它
- openbsd的TCP/IP協(xié)議棧移植;openbsd POSIX外圍接口移植;
- canopen組件;
- ARM Cortex-A8/A9 + M4/M3的多系統(tǒng)(硬件)平臺(tái);
- 其他一些硬件移植;

以上摘自http://www.rt-thread.org/phpBB3/topic3965.html


與v2.0.0RC版本相比,主要有以下改進(jìn):

內(nèi)核?
console以RT_DEVICE_FLAG_STREAM參數(shù)打開(kāi)字符設(shè)備;
在rt_memheap_free中加入更多的斷言檢查;

組件
更新RW009驅(qū)動(dòng)以支持Wi-Fi SoftAP模式(aozima);
修正sensor框架的一些問(wèn)題,并加入C API接口(睿賽德服務(wù)公司提供);
加入MPU6050 sensor的代碼(bernard, Coing);
加入BMI055 sensor的代碼(Coing);
當(dāng)未使能heap時(shí),修正finsh/msh中l(wèi)ist_memheap的問(wèn)題;
修正LIBC編譯的警告;
加入IAR dlib相關(guān)的移植,使得應(yīng)用能夠使用標(biāo)準(zhǔn)的API接口;
修正YMode握手時(shí)可能引起的競(jìng)爭(zhēng)問(wèn)題(grissiom);
更新FreeType版本到2.5.4
單獨(dú)把C++的全局對(duì)象初始化放到cplusplus_system_init函數(shù)中,并在初始化線(xiàn)程中調(diào)用;
finsh中以RT_DEVICE_FLAG_STREAM參數(shù)打開(kāi)字符設(shè)備;
添加VBUS組件用于Linux與RT-Thread系統(tǒng)之間,RT-Thread與RT-Thread系統(tǒng)之間通信(睿賽德服務(wù)公司捐贈(zèng));
增加lwIP/NAT組件,可以做多個(gè)網(wǎng)口間的地址轉(zhuǎn)換(Hicard);
增加lwIP/DHCP服務(wù)端,用于向客戶(hù)端分配IP地址(睿賽德服務(wù)公司提供);

BSP
修正LPC4357串口驅(qū)動(dòng)初始化時(shí)過(guò)早打開(kāi)中斷的問(wèn)題(nongxiaoming);
重寫(xiě)LPC4357串口驅(qū)動(dòng),并讓芯片上M4/M0核心分別都執(zhí)行RT-Thread系統(tǒng),兩核心之間以VBUS組件進(jìn)行系統(tǒng)間通信(睿賽德服務(wù)公司捐贈(zèng));
新增RX移植(limxuzheng);
新增NuMicro M051 Series移植,支持GCC、Keil MDK編譯器(bright-pan);
新增LPC54102移植(Coing);
移除STM32F4 BSP中不需要的RT_TIMER_TICK_PER_SECOND配置(pangweishen);
在Linux Clang編譯分析中,強(qiáng)制以32位模式進(jìn)行編譯(grissiom);
修正STM32F103中串口驅(qū)動(dòng)中斷過(guò)早打開(kāi)的問(wèn)題(armink);

工具
增加scons中的MD5支持(bright-pan);

以上摘自http://www.rt-thread.org/node/98

總結(jié)

以上是生活随笔為你收集整理的RT-thread国产实时操作系统概述的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。