《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 根據μc/Os-Ⅱ就緒表算法在ARM架構上的改動
根據μc/Os-Ⅱ就緒表算法在ARM架構上的改動
摘要:  μc/Os-Ⅱ的就緒表設置、清除、查找算法,是高效的、跨平臺的程序。它使用了兩個查找數組OSMapTbl[8]和OSUnMapTbl[256],以提高查找就緒表的速度,盡快獲取就緒任務的最高優先級。
Abstract:
Key words :

  μc/Os-Ⅱ的就緒表設置、清除、查找算法,是高效的、跨平臺的程序。它使用了兩個查找數組OSMapTbl[8]和OSUnMapTbl[256],以提高查找就緒表的速度,盡快獲取就緒任務的最高優先級。

  Cortex-M3" title="Cortex-M3">Cortex-M3是ARM公司較新的一種架構版本,主要應用在單片機領域?;谒a的32位芯片日益增多;cortex-M3只支持Thumb-2指令集,在效能和代碼密度間能取得更佳的表現。
  1  在ARM上改動算法的因由利弊
  由于就緒表操作是在關中斷狀態下運行的,其執行影響到系統的中斷響應時間,因此就緒表操作算法的效率是衡量實時操作系統優劣的基準之一。
  在Cortex-M3所用的指令集中,一些指令功能不可小覷,如前導零計數clz、字內位反轉rbit、位清除bic。其中的clz和bic為μc/Os就緒表的高優先級獲取算法指出了另一條道路。
  (1)改動后的優勢
 ?、俟澥〈鎯臻g。不再使用查找數組OSMapTbl[8]和OSUnMapTbl[256]。設立這兩個數組的目的,是為了提高查找就緒表的效率。
 ?、谔嵘檎倚省lz是單周期指令,使用帶移位的加法指令,大幅縮短運算時間。
 ?、墼黾恿?mu;c/Os-Ⅱ支持的任務數量,從64提升到了1 024(2.84版支持的任務數量已經到了256,不過效率有所下降)。
  (2)存在的不足
 ?、賀ealview MDK(這里使用的是3.20版及其指令模擬器)尚不支持在C語言程序中使用Thumb-2指令內聯匯編。使用內嵌匯編函數時,函數的調用(跳轉返回)降低了執行效率。
 ?、贑語言對clz指令的支持尚有不足,故新算法跨平臺性差。但鑒于ARM芯片應用廣泛,指令又被ARM9之后的芯片廣泛兼容,所以應用空間還算廣闊。
  2  μc/Os-Ⅱ就緒表算法" title="就緒表算法">就緒表算法介紹與具體改動
  μc/Os-Ⅱ就緒表是一個數組,數組元素一位的值(1或0)對應了一個任務就緒與否,該位在數組中的位置表示任務的優先級。當需要調度已就緒的最高優先級任務運行時,就在就緒表中查找該任務。
  2.1  μc/Os-Ⅱ就緒表算法簡介
  一種解決方法是,對數組各項依次判斷是否為0:若>O,進入該項查找最小權的置1位位置;若=0,優先級加一個基數,查下一項,直至查到該優先級。
  μc/Os-Ⅱ技高一籌,設置了一個對就緒表各項判斷是否為0的變量,稱之為就緒表組。就緒表組一位為0或1,對應就緒表一項的值是否為0。通過查找就緒表組最小權位的置1位位置,就確定了對應首個>0的就緒表項的下標,從而避免了循環,大幅度提高了效率。
  2.2改動方式與源碼
  clz算法接受了μc/Os-Ⅱ的思路,再通過使用clz指令來進行優化。不同的是,clz是從右往左查,二進制的高權位對應高優先級,而μc/Os-Ⅱ優先級以值小為高。
  考慮到有時用不到很多任務,這時用數組作就緒表不免浪費。因此當任務總數小于32時,就用32位無符號整數變量作就緒表。注意,此時就緒表組變量OSRdyGrp被當作就緒表使用。
  常量OS_LES_TSK表示是否使用較小任務數,0表示使用最多32個任務,1表示使用最多1 024個任務。
  常量RdySt是將32位整數的最高權位置1,以便移位使用。
  2.3  C語言實現
  以下算法利用內嵌clz指令的函數編寫,實現了指定優先級任務在就緒表的設置、清除,在就緒表中查找就緒任務的最高優先級。
 
 
  程序中的bx r14,有些資料上要求必須寫,不過查看反匯編代碼,編譯程序已經給加上了??磥硎蔷幾g程序已升級,會不會出錯要看使用的編譯器,建議還是按規范寫上。由于內嵌函數調用返回耗時,查找算法未能充分發揮,需改進編譯后的匯編代碼以實現更高的效率,或使用匯編代碼重寫這部分程序。

關鍵字:μc Os-Ⅱ 就緒表算法 ARM架構" title="ARM架構">ARM架構

 
  2.4  THUMB-2匯編指令實現
  用匯編語言寫程序時的技巧:在最高優先級任務的設置、清除函數中,C語言運算符“︱=”對等匯編指令“orr”,“&=~”對等匯編指令“bic。這兩條指令都可以進行預移位操作,大幅提高執行效率??梢圆榭捶磪R編源碼,看C編譯器是否利用了這一便利。
  在查找函數中,可以省去C語言程序中的內嵌匯編調用,減少冗余指令。示意偽代碼如下:
  ldr rO,  =OsRdyGrp;加載就緒表組變量OSRdyGrp地址
 
  可以看出,除了數據加載指令外,查找的核心算法僅3條指令(使用<32個任務時,僅1條指令)。不過在實際設計算法的時候,還需要考慮指令流水線停頓,方能達到最佳的效果。
 
  2.5  μC/OS-Ⅱ2.84版相關源碼介紹
  以下是翻譯整理后的μC/OS-Ⅱ優先級查找算法源碼(2.84版),較長的注釋是添加的算法說明。
 
  clz最高優先級查找算法,與μC/OS-Ⅱ的新算法有所不同:返回的結果分別是8位、16位整數。這是因為8位已經不能表示>255的值;過程中clz算法更多地使用16或32位整數,以充分利用芯片性能。
  3  適用范圍
  等待任務列表使用了與就緒表操作相似的過程,注意要同時更改其數據類型和算法。算法雖然是在Cortex—M3上執行的,但適用于ARM9及其以后芯片。支持ARM指令集的芯片,可以在C語言中使用內嵌匯編,不必再編寫匯編查找函數。
  本文所敘述的算法適用于下述兩種情況。
 ?、偈褂?mu;C/OS-Ⅱ系統:
  ◆要求更多的任務優先級;
  ◆要求產品性能優越或是時間關鍵的應用,想進一
  步提高效率;
  ◆學習、研究或希望優化μC/OS-Ⅱ以擴展其應用范圍。
 ?、谖词褂?mu;C/OS-Ⅱ系統:
  ◆移植改造其他操作系統的就緒表算法;
  ◆編寫新操作系統或執行調度程序;
  ◆編程愛好者借鑒、改進編程方法。
 
  結  語
  Cortex-M3推出時,筆者就認定它是單片機過渡到ARM的有力工具,其小存儲量使得它更適合用小型實時系統。在學習μC/OS-Ⅱ的過程中,發現其就緒表操作算法經過改動或許更好,于是就做了本文所述的試驗。

 

 

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲综合999| 国产区日韩欧美| 亚洲一区精品电影| 欧美日韩精品| 在线国产日韩| 久久精品91久久香蕉加勒比| 亚洲无限乱码一二三四麻| 欧美伊久线香蕉线新在线| 亚洲欧美另类国产| 韩国av一区二区三区| 久久精品论坛| 久久久免费观看视频| 国产精品国产三级国产a| 欧美深夜影院| 午夜国产不卡在线观看视频| 欧美日韩另类国产亚洲欧美一级| 欧美日韩在线观看一区二区三区| 亚洲综合日韩| 国产一区二区中文字幕免费看| 国产偷自视频区视频一区二区| 国产精品免费视频观看| 欧美日本不卡视频| 国产精品视频福利| 午夜激情综合网| 国产一区二区三区无遮挡| 亚洲欧美日韩综合一区| 久久尤物视频| 亚洲欧美中文另类| 99精品热视频| 久久久久国产精品麻豆ai换脸| 欧美日韩三级电影在线| 激情久久五月| 久久精品视频在线| 亚洲国产精品v| 久久久久久免费| 亚洲女ⅴideoshd黑人| 免费在线看一区| 亚洲区一区二| 欧美丝袜第一区| 欧美激情第六页| 久久久久国产成人精品亚洲午夜| 日韩一二三在线视频播| 亚洲日韩欧美视频一区| 久久在线视频在线| 免费精品99久久国产综合精品| 亚洲欧美日韩国产综合在线| 国产精品美女久久久| 亚洲欧洲日产国码二区| 欧美午夜激情视频| 欧美韩国日本综合| 狠狠色噜噜狠狠狠狠色吗综合| 9色精品在线| 欧美一区二视频在线免费观看| 亚洲国产影院| 亚洲激情成人在线| 亚洲中午字幕| 国产精品综合视频| 欧美亚洲在线播放| 一区二区三区高清在线| 欧美色精品天天在线观看视频| 国内精品久久久久影院薰衣草| 美女成人午夜| 欧美精品一区二区蜜臀亚洲| 在线欧美一区| 亚洲精品三级| 欧美国产欧美亚州国产日韩mv天天看完整| 欧美日韩免费观看一区二区三区| 久久九九国产| 欧美一区二区三区播放老司机| 久久国产视频网站| 欧美日韩免费看| 国产精品日韩精品欧美精品| 亚洲国产精品精华液2区45| 亚洲国产欧美日韩精品| 久久国产99| 欧美性久久久| 免费不卡欧美自拍视频| 亚洲黄色片网站| 99精品国产在热久久下载| 中文av一区特黄| 久久精品国产999大香线蕉| 亚洲美女av在线播放| 亚洲欧美日韩国产中文在线| 国产精品女主播在线观看| 欧美视频一区二区三区四区| 欧美日韩18| 亚洲毛片视频| 午夜在线一区二区| 日韩系列欧美系列| 亚洲欧洲一区二区三区在线观看| 国产精品久久久久久久浪潮网站| 激情久久影院| 国产在线观看一区| 国产欧美日韩一区二区三区在线观看| 国产精品草草| 久久人人爽人人爽| 91久久视频| 欧美69视频| 亚洲综合999| 久久久午夜视频| 老妇喷水一区二区三区| 一区二区冒白浆视频| 欧美精品v国产精品v日韩精品| 国产精品二区三区四区| 免费观看成人www动漫视频| 国内精品久久久久久久影视麻豆| 夜夜嗨av一区二区三区中文字幕| 国产精品久久久久av免费| 欧美性猛交xxxx乱大交退制版| 久久久久久欧美| 久久久精品一区二区三区| 久久婷婷丁香| 欧美国产一区在线| 精品成人国产在线观看男人呻吟| 久久精品国产欧美激情| 久久久999精品| 欧美午夜精品电影| 久久久蜜臀国产一区二区| 久久精品国产一区二区三| 在线成人小视频| 亚洲精品视频免费| 亚洲国产精品一区二区第一页| 日韩午夜激情电影| 久久三级福利| 激情亚洲成人| 亚洲无亚洲人成网站77777| 日韩一级二级三级| 久久在线视频| 欧美视频在线观看一区二区| 国产日产高清欧美一区二区三区| 国产精品一区二区在线观看| 亚洲精品乱码久久久久久久久| 国产亚洲欧美激情| 欧美日本精品一区二区三区| 欧美色欧美亚洲另类七区| 亚洲综合久久久久| 国产精品美女主播在线观看纯欲| 欧美日本韩国一区| 国产欧美一区二区三区在线看蜜臀| 国产精品v一区二区三区| 亚洲素人一区二区| 性欧美xxxx大乳国产app| 欧美人与性动交α欧美精品济南到| 亚洲精品在线看| 亚洲韩国一区二区三区| 欧美韩国在线| 亚洲欧美变态国产另类| 国产精品香蕉在线观看| 亚洲品质自拍| 在线观看亚洲精品| 国产美女精品视频| 欧美精品免费视频| 麻豆精品91| 亚洲国产精品一区二区第一页| 亚洲国产天堂网精品网站| 国产精品乱子乱xxxx| 欧美v国产在线一区二区三区| 噜噜噜噜噜久久久久久91| 久久精品夜色噜噜亚洲a∨| 国产精品爱久久久久久久| 久久久女女女女999久久| 在线观看中文字幕亚洲| 国产亚洲精品高潮| 欧美成人精品一区二区三区| 欧美日韩精品欧美日韩精品一| 欧美喷潮久久久xxxxx| 久久五月激情| 欧美成人午夜免费视在线看片| 亚洲免费网站| 国产精品www| 久久精品国产免费观看| 美女爽到呻吟久久久久| 美女国内精品自产拍在线播放| 亚洲美女91| 99ri日韩精品视频| 欧美亚洲免费| 欧美日韩在线免费视频| 欧美视频一区二| 99re6热在线精品视频播放速度| 欧美亚洲自偷自偷| 夜夜嗨av一区二区三区免费区| 午夜一区在线| 国产亚洲欧美一区| 亚洲黄色在线观看| 欧美国产在线观看| 在线亚洲伦理| 欧美三级在线| 这里只有精品在线播放| 国产精品久久久久久久午夜片| 国内一区二区三区| 国产日本精品| 亚洲女女女同性video| 欧美在线播放| 久久中文字幕导航| 国产一区二区三区在线观看免费视频| 在线观看不卡av| 久久国产精品高清| 亚洲网站视频| 欧美综合国产精品久久丁香| 欧美激情一区二区三区在线| 国语自产在线不卡| 最新国产の精品合集bt伙计| 久久人人超碰| 亚洲综合精品自拍| 亚洲美女av电影| 国产免费成人av| 亚洲视频在线观看一区| 欧美va亚洲va日韩∨a综合色| 国产午夜精品视频| 欧美精品99| 欧美日本国产在线| 国产女人水真多18毛片18精品视频| 国产在线播精品第三| 国产亚洲一区二区三区在线观看| 欧美成人激情视频免费观看| 国产亚洲一二三区| 性欧美办公室18xxxxhd| 欧美一区二区国产| 中日韩高清电影网| 欧美母乳在线| 麻豆成人91精品二区三区| 国产在线精品成人一区二区三区| 国产一区二区三区四区三区四| 中文无字幕一区二区三区| 欧美日韩一区二区国产| 国产综合色一区二区三区| 久久久久国产一区二区三区四区| 欧美精品色综合| 在线一区二区视频| 99综合在线| 亚洲欧美另类在线| 欧美国产欧美亚州国产日韩mv天天看完整| 国产情人节一区| 亚洲午夜黄色| 亚洲一区二区3| 午夜视频久久久久久| 国产欧美精品va在线观看| 亚洲视频欧美视频| 国产麻豆一精品一av一免费| 亚洲国产精品电影| 亚洲欧美日韩精品久久奇米色影视| 一区二区三区四区五区视频| 欧美日一区二区三区在线观看国产免| 亚洲国产精品一区二区尤物区| 欧美裸体一区二区三区| 亚洲黄色免费网站| 久久理论片午夜琪琪电影网| 欧美精品自拍| 一本色道久久综合狠狠躁的推荐| 亚洲精品在线三区| 性欧美激情精品| 在线观看亚洲| 亚洲乱码视频| 亚洲欧美激情精品一区二区| 欧美日韩成人在线播放| 欧美日韩国产天堂| 久久精选视频| 欧美视频成人| 99视频一区二区| 欧美日韩国产麻豆| 欧美精品成人91久久久久久久| 国产精品久久久久免费a∨| 国产一区二区三区免费观看| 欧美激情在线狂野欧美精品| 99精品国产福利在线观看免费| 欧美午夜女人视频在线| 欧美一区免费视频| 久久在线免费视频| 亚洲二区免费| 欧美精品一区二区三区一线天视频| 狠狠做深爱婷婷久久综合一区| 久久精品一区二区国产| 老**午夜毛片一区二区三区| 激情欧美一区二区三区| 99精品久久久| 亚洲人精品午夜在线观看| 一本色道久久综合狠狠躁篇怎么玩| 国产精品不卡在线| 中文av字幕一区| 在线精品视频一区二区三四| 国产一区成人| 久久综合色综合88| 欧美日本久久| 亚洲精品网址在线观看| 久久中文欧美| 中文高清一区| 亚洲丰满少妇videoshd| 欧美日一区二区三区在线观看国产免| 一区在线电影| 中国女人久久久| 国产欧美精品xxxx另类| 亚洲电影在线免费观看| 国产一区二区福利| 亚洲美女福利视频网站| 久久免费视频在线| av72成人在线| 精品成人一区二区三区四区| 亚洲网站视频福利| 欧美电影免费观看网站| 亚洲大胆av| 午夜亚洲影视| 国产一区二区毛片| 欧美日韩精品综合| 亚洲午夜久久久久久久久电影网| 久久综合九色九九| 精品91久久久久| 国产精品二区二区三区| 亚洲激情在线观看| 精品动漫3d一区二区三区免费版| 国产农村妇女精品一区二区| 亚洲日本va午夜在线影院| 久久久精品午夜少妇| 狠狠狠色丁香婷婷综合激情| 免费日韩av电影| 激情成人av| 亚洲一区二三| 亚洲精品日韩一| 久久久一本精品99久久精品66| 久久九九精品| 久久精品国产99国产精品澳门| 欧美与黑人午夜性猛交久久久| 午夜精品久久久99热福利| 国产精品嫩草久久久久| 在线看欧美日韩| 久久精品一区二区三区四区| 国产日韩久久| 一区二区三区在线观看视频| 亚洲欧美制服另类日韩|