乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      UCOS/RTX/FreeRTOS性能對比

       guitarhua 2019-05-05

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

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

      11.jpg

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

               拿到板子,在我查看他們的網(wǎng)絡(luò)示波器例程后,發(fā)現(xiàn)安富萊只做了基于RTX的例程,并沒有做基于uCOS、FreeRTOS的例程,這樣我感到很奇怪。因為安富萊的每個例程都會做三個OS版本,唯獨這個例程卻只制作了一個基于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  單片機都使用相同的主頻,只是單片機的Uart資源

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

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

      l  使用相同的編譯工具MDK4.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,并計數(shù);任務(wù)優(yōu)先級低

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

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

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

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

      建立任務(wù)堆棧和信號量,以及任務(wù)切換次數(shù)計數(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中框起來的代碼主要是進行驗證程序?qū)懙臏蚀_性,如果將上文中紅色框中注釋掉的代碼恢復(fù)。按照1S的時間來算:A任務(wù)獲取到信號量,延時100MS,在發(fā)送信號量給B;任務(wù)B獲取到信號量,延時100MS,在發(fā)信號給A。AB任務(wù)循環(huán),花掉大約是200MS的時間,最后主任務(wù)在1S的時間內(nèi),計數(shù)應(yīng)該是5次才對。77.jpg

      實際程序也確實是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單片機上RTX確實要快很多,RTX是Keil開發(fā)的一款RTOS,而Keil早在2005年就被ARM收購,對ARM芯片的支持和優(yōu)化應(yīng)該也是被安排到日程的。

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

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

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多