久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

UCOS/RTX/FreeRTOS性能對比

 guitarhua 2019-05-05

         大家好,,感謝社區(qū)提供的板卡,。這次的使用對象是安富萊的STM32-V6板卡。由于之前用過安富萊的V4板卡,,所以安富萊給我留下了很深的印象,,他們開發(fā)板的資料很過硬,,售后完善,,線上QQ技術(shù)支持也很給力,,作為學(xué)習(xí),確實(shí)是一款很不錯的板卡,。唯一的是,,安富萊很少出視頻,其主要是編寫PDF教學(xué)手冊和程序例程,。

         另外他們的按鍵檢測代碼,,很緊湊,有單發(fā),、連發(fā),、長按、短按,、上升沿觸發(fā),、下降沿觸發(fā)等功能,是我見到最棒的按鍵檢測代碼,。

11.jpg

         STM32-V6是一款基于STM32F429單片機(jī)的開發(fā)板,,整板采用4層板設(shè)計(jì),本次選擇它的目的,,除了測試其能做常用外設(shè)開發(fā)驅(qū)動,,安富萊還對它做了一個示波器的例程。雖然示波器的性能不強(qiáng),,但是去十分有意思,。另外其支持VNC虛擬屏幕功能。開發(fā)者可以不用LCD顯示屏幕,,直接使用PC屏幕作為自己的開發(fā)板屏幕,,十分方便。所以這個板子真的很強(qiáng)大,。22.jpg

         拿到板子,,在我查看他們的網(wǎng)絡(luò)示波器例程后,發(fā)現(xiàn)安富萊只做了基于RTX的例程,,并沒有做基于uCOS,、FreeRTOS的例程,這樣我感到很奇怪,。因?yàn)榘哺蝗R的每個例程都會做三個OS版本,,唯獨(dú)這個例程卻只制作了一個基于RTX的。他們的技術(shù)支持回復(fù)是:“FreeRTOS的性能不行,,所以對這個網(wǎng)絡(luò)示波器的的應(yīng)用來說,,沒有制作這方面的例程”,這讓我感到很疑惑,F(xiàn)reeRTOS作為一款開源RTOS,,性能真有這么差么,?到底他們之間的差距又有多大?

         所以才有這次做UCOS-II,、UCOS-III,、FreeRTOS、RTX系統(tǒng)性能對比測試,,本次我只是站在一個使用者的角度,,測試四個RTOS單一的系統(tǒng)調(diào)度性能。盡量使4個RTOS處在同一水平上測試:

l  使用相同的硬件平臺和相同的資源

l  單片機(jī)都使用相同的主頻,,只是單片機(jī)的Uart資源

l  4個RTOS并非都裁剪到極致,,保留信號量、隊(duì)列,、消息等功能,。

l  都使用相同的時間片1mS、任務(wù)數(shù)量,、任務(wù)堆棧設(shè)置一樣大小,。

l  使用相同的編譯工具M(jìn)DK4.7,采用相同的優(yōu)化等級,。

l  測試任務(wù)代碼邏輯以及優(yōu)先級關(guān)系保持一致,。

本次測試的系統(tǒng)版本為:

RTX                   V4.73

FreeRTOS           V8.2.3

uCOS-II              V2.92.11

uCOS-III             V3.05.00

測試方法是,主要使用RTOS的信號量,,測試RTOS任務(wù)切換速度,。建立三個任務(wù)。

任務(wù)A:接收到任務(wù)B發(fā)的信號量B2A之后,,發(fā)送信號量A2B,;任務(wù)優(yōu)先級率高

任務(wù)B:接收到任務(wù)A發(fā)的信號量A2B之后,發(fā)送信號量B2A,,并計(jì)數(shù),;任務(wù)優(yōu)先級低

主任務(wù):初始化時,發(fā)送一次信號量B2A,,是AB任務(wù)開始循環(huán)執(zhí)行,。并計(jì)時1S,打印出任務(wù)切換次數(shù),。任務(wù)優(yōu)先級最高,。

由于我個人對uCOS和FreeRTOS比較熟悉,所以就先做了uCOS-II的測試,。

一,、uCOS-II任務(wù)信號量測試

         程序的移植過程就不在這里說了,,直接開始測試上代碼:33.jpg

建立任務(wù)堆棧和信號量,以及任務(wù)切換次數(shù)計(jì)數(shù)變量,。44.jpg

編寫起始任務(wù),,這個任務(wù)的優(yōu)先級最高。55.jpg

任務(wù)A,,任務(wù)優(yōu)先級略高。其中紅色框起來的代碼是測試時候使用的,。在任務(wù)B中也有類似的代碼,。66.jpg

任務(wù)B,任務(wù)優(yōu)先級低,,但是比系統(tǒng)空閑任務(wù)要高,。

         在任務(wù)AB中框起來的代碼主要是進(jìn)行驗(yàn)證程序?qū)懙臏?zhǔn)確性,如果將上文中紅色框中注釋掉的代碼恢復(fù),。按照1S的時間來算:A任務(wù)獲取到信號量,,延時100MS,在發(fā)送信號量給B,;任務(wù)B獲取到信號量,,延時100MS,在發(fā)信號給A,。AB任務(wù)循環(huán),,花掉大約是200MS的時間,最后主任務(wù)在1S的時間內(nèi),,計(jì)數(shù)應(yīng)該是5次才對,。77.jpg

實(shí)際程序也確實(shí)是5次,可以證明該例程無誤,,后面測試的OS調(diào)度能力的時候,,只需要去掉任務(wù)AB中的100MS的延時和printf打印即可。

同樣的程序,,我做了四份,,分別基于UCOS-II、UCOS-III,、FreeRTOS,、RTX這個四個RTOS系統(tǒng)88.jpg

測試代碼截圖:

99.jpg

a1.jpg

a2.jpg

注釋掉RTOS任務(wù)AB中的延時和串口打印,使用相同的優(yōu)化等級,,分別編譯燒錄測試代碼,,串口打印如下:

 a3.jpg

 a4.jpg

上圖都是在1秒的時間,AB任務(wù)調(diào)用的次數(shù):

 a5.jpg

         可以看到,,就任務(wù)切換速度而言,,在STM32單片機(jī)上RTX確實(shí)要快很多,RTX是Keil開發(fā)的一款RTOS,而Keil早在2005年就被ARM收購,,對ARM芯片的支持和優(yōu)化應(yīng)該也是被安排到日程的,。

         經(jīng)過這次測試,雖然RTX在任務(wù)切換上的速度上確實(shí)要優(yōu)秀很多,,但不能說RTX就是這四款RTOS中最優(yōu)秀的系統(tǒng),,本次測試也僅僅是單一的一個方面,我相信FreeRTOS以及其他的OS都有它自己的獨(dú)到優(yōu)勢,。

  我們作為開發(fā)使用者,,沒有必要去糾結(jié)哪個是最強(qiáng)的RTOS,我們只需要找到合適我們項(xiàng)目,,方便我們開發(fā)的RTOS即可,。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多