《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業界動態 > μC/OS-II內核在FPGA上的硬件化設計與實現

μC/OS-II內核在FPGA上的硬件化設計與實現

2009-06-19
作者:張 濤1,廖力清1,王 頌2

  摘 要: 針對操作系統內核占用系統資源的問題,提出了一種新的實時操作系統設計與實現方法。在仔細研究了μC/OS-II后,改進了原μC/OS-II的TCB模塊,配合多任務調度狀態機構成的硬件調度系統替代了軟調度系統,提高了多任務調度性能并將改進的系統內核在FPGA上硬件化。通過修改51內核,設計了多任務映射的堆棧區,解決了51系列微控制器堆棧過小無法運行多任務的問題。
  關鍵詞: μC/OS-II;實時操作系統;FPGA

?

  隨著現代信息技術突飛猛進的發展,軟件模塊化技術也有了廣泛提高。為了更好地發揮微控制器的性能以及滿足更多的功能,使軟硬件能夠更好地結合和展示,在微控制器中移植嵌入式操作系統已經成為一種趨勢。目前,嵌入式系統的應用范圍非常廣泛,不同領域有不同要求。通常有非實時系統和實時系統,而實時系統中又分硬實時和軟實時系統。在要求苛刻的系統中,一般需要硬實時操作系統。本文涉及飛行器剎車控制系統,必須使用硬實時操作系統。
1 項目產生背景
  某軍用機型的航空剎車控制系統原使用微控制器80C31,外擴ROM、RAM及其他外設。軟件為前后臺系統,圖1為原系統連接示意圖。

?


  當新機型的剎車系統控制要求升級后,系統控制對象增多,控制算法復雜度增大,原有系統已完全不能勝任現在的要求。因此,需要尋求新解決方案來滿足新系統要求。
  為了保證能夠向下兼容原系統,在原有系統基礎上能夠最大限度升級改進,仍選用51內核的微控制器。經過論證,決定選用FPGA構造新系統,在FPGA系統中內嵌8051 IP核。這是在Oregano Systems公司提供的免費8051 IP核的基礎上根據系統的需要而定制的。僅保留51的內核部分,并對內核進行一定的改造以適應需要的操作系統的移植。通過Verilog語言編寫多個可編程外設數字模塊掛接在系統總線上,功能遠遠超越一般的51方案。將各種數字器件通過編程和IP核的方式集成在FPGA中,這極大地提高了單芯片功能,減少了元器件數量,從而簡化了整個系統設計,降低了系統故障率,縮短了循環開發周期,大幅度減少了電路板面積和系統總成本。
  新系統中的軟件部分舍棄了前后臺系統,使用實時操作系統。這樣,軟件系統可以很方便地分成多個在開發和運行上獨立而又具有一定聯系的小任務,便于多人員參與開發。系統中的各種硬件被看成獨立的資源,由各任務來調用。設計者希望創新性地將實時操作系統的內核部分的功能硬件化至FPGA中,從而進一步加強系統的硬實時特性。因為操作系統產生的負載都將由硬件來承擔。而此時操作系統對于軟件編程員來說幾乎是透明的,如同使用一塊操作系統芯片,只要將編寫的任務編譯好直接載入Flash,系統啟動后程序初始化操作系統的各控制寄存器填入各任務入口地址即可開始運行。系統采用免費公開源代碼的μC/OS-II實時操作系統,并在其基礎上根據新系統的硬件條件進行修改,量身定做一個合適的硬件實時操作系統。
  改進后的新系統示意框圖如圖2所示。


2 改進的任務調度機制的設計
  作為實時系統最為關鍵的組成部分——實時操作系統內核,其主要功能有:事件管理、時間管理、中斷服務、實時調度等[1],如圖3所示?,F階段主要針對內核的調度機和事件管理功能進行硬件化改進,并對51 IP內核結構進行相應改進。


2.1 任務控制塊(TCB)的改進
  基于μC/OS-II的思想,每個任務在建立后都有一個TCB來管理該任務。TCB是一個數據結構,當任務的CPU使用權被剝奪時,μC/OS-II用它來保存該任務的狀態。新系統中,TCB修改后其數據結構占用13 B,其中參數如下所示:

typedef struct os_tcb
{
?  INT8U??OSTCBStkPtr;
  OS_EVENT?*OSTCBEVENTPtr;
??? void???*OSTCBMsg;
  void???*OSTCBTaskPtr;
  INT8U??OSTCBId;
  INT8U??OSTCBPrio;
  INT8U??OSTCBCntInitVlu;
  INT8U??OSTCBCnt
  INT16U??OSTCBDly;
  INT8U??OSTCBStat;
  BOOLEAN?OSTCBDelReq;
};
  該數據結構刪減了原有TCB的部分參數,保留原有TCB部分參數意義不變,具體請見參考文獻[2]。被修改的TCB參數意義表述如下:
  OSTCBStkPtr為任務堆棧指針,占1 B,其保存的是51堆棧指針SP的值;
??? *OSTCBTaskPtr為任務函數入口地址指針,其保存的是該任務的入口地址;
  OSTCBId為任務ID號,參數取值為0~63,任意任務的ID值不允許相同,其為每個任務唯一識別碼;
  OSTCBPrio為任務優先級,參數取值為0~63,0為最高優先級,63為最低優先級,各個任務的優先級允許相同;
  OSTCBCntInitVlu為任務剩余時間片初始化值,取值從255~0;
  OSTCBCnt為任務剩余時間片,取值從255~0;
  OSTCBStat為任務當前狀態及控制寄存器。讀寄存器,則會返回當前任務的狀態,例如運行或者就緒態;寫寄存器,則控制當前任務自動進入某狀態,例如寫入掛起信號,則調度系統狀態機自動將當前任務掛起。
  這些參數中,最重要的改動是OSTCBPrio和OSTCBCnt,由此系統改進成支持時間片輪番調度的可剝奪型內核。創建任務時,任務的OSTCBId被賦唯一初值,OSTCBPrio被賦予合適的優先級,其允許和其他任務同等優先級,OSTCBCnt被賦予合適的任務執行時間。任務執行過程中,OSTCBId和OSTCBPrio不允許改變,而在一個系統節拍過后,當前任務的OSTCBCnt將減1,在任務執行過程中OSTCBCnt將隨系統節拍不斷減小,直至為0。當就緒態中同種優先級的所有任務的OSTCBCnt全部減為0時,重新將各個任務的OSTCBCntInitVlu的值載入至OSTCBCnt。
  任務的調度規則是:
  (1)OSTCBPrio越小,則越優先執行;
  (2)OSTCBPrio相等,則OSTCBCnt越大的越優先執行;
  (3)OSTCBPrio和OSTCBCnt都相等,則OSTCBId越小越優先執行。
  任務調度執行示意圖如圖4所示。


  在原μC/OS-II系統中,內核通過一個“就緒表”完成對系統的就緒態最高優先級任務的調度。系統內核基本工作是任務調度,系統運行中,將會有一定的資源消耗在調度上,大約占用CPU資源的2%~5%。這對于51內核來說,可能占用的CPU資源更多。
  本系統改進的目的,是要盡量用硬件完成系統的調度,釋放調度占用的CPU資源。因此改進后的系統去掉了“就緒表”,而使用一個有限狀態機完成對系統的調度。
  在一個系統節拍中,狀態機將遍歷所有任務的OSTCBId、OSTCBPrio、OSTCBCnt和OSTCBStat參數,找到STCBStat處于就緒態的任務,且按照上文中所述的調度規則進行搜尋。找到最合適規則的任務ID號即OSTCBId值,首先將其寫到任務調度緩沖區TaskIdBuf,之后等待,準備在恰當的時機寫入調度寄存器TaskId,進行任務切換。
2.2 任務堆棧區(STK)的改進
  51系列單片機的內部直接尋址范圍00H~7FH,CPU復位后,堆棧指針SP復位為07H,堆棧向上增長,顯然堆棧最大深度為120 B,而且00H~1FH段為4組通用寄存器區,20H~2FH為位尋址區,如果需要使用這些區域,堆棧的深度則縮減為80 B,這對于多任務處理顯然是極其有限的。
  μC/OS-II移植最關鍵的是堆棧設計,這里有兩個最重要的問題:模擬多任務堆棧結構和51系列單片機堆棧較小缺陷的解決。
  解決問題的方法是修改8051的IP核源代碼,將51核內部直接尋址區修改成如圖5所示的尋址區。


  通過內部地址映射管理器的映射,將FPGA的RAM中的80 B映射到直接尋址區的30H~7FH的任務堆棧區中,這80 B的數據都作為同一個任務的堆棧,這對于一般能在51系統上運行的任務已足夠,能夠解決堆??臻g較小的問題。本系統最多支持64個任務,因此,在RAM中有連續64個80 B的STK區塊可以映射到直接尋址區的STK區塊上,同時,映射管理器將RAM中連續的64個13 B的TCB區塊映射到FPGA控制寄存器區的TCB寄存器區塊上。如此,當任務調度寄存器TaskId中填入的任務ID號改變時,直接尋址區的STK的數據和FPGA控制寄存器區TCB的數據將隨之而改變,映射所指向的區塊由調度寄存器TaskId來決定。當調度系統決定要開始一次新的任務調度時,由如下步驟來完成:
  (1)給51內核1個INT0外部0號中斷信號,通知需要進入系統調度狀態;
  (2)中斷服務程序將當前任務使用寄存器入棧;
  (3)中斷服務程序將當前任務SP的內容保存到當前任務TCB的OSTCBStkPtr;
  (4)中斷服務程序發信號至FPGA的調度系統狀態機,狀態機自動將任務調度緩沖區TaskIdBuf的數據寫入調度寄存器TaskId,切換STK和TCB;
  (5)中斷服務程序將切換后的任務TCB的OSTCBStkPtr寫入51內核的SP;
  (6)中斷服務程序將切換后的任務使用寄存器出棧;
  (7)退出中斷,切換后的任務開始繼續運行。
  如此修改后,任務切換中軟件需要完成的工作就極其簡單了,這極大降低了軟件系統對任務切換進行控制所消耗的成本,這些工作由硬件系統在任務運行的同時并行完成。這樣,即使將系統時鐘節拍頻率設定得比較高,系統的額外負載也不會過重。系統硬件對STK和TCB的物理映射,也同時保證了一個任務對其他任務的STK和TCB的不可見性,保護了其他任務的STK和TCB數據不受該任務的影響,從而一定程度上保證了任務運行的安全。
  本文提出一個新的思想和嘗試方法進行操作系統的設計。其創新點主要體現在:
  (1)將操作系統硬件化。以往的操作系統屬于在應用系統上運行的軟件的一部分,需要占用應用系統中CPU的部分資源。而操作系統硬件化后,在任務運行的同時,硬件操作系統并行地完成了任務調度的準備工作,只需要運行中的任務完成保存現場數據至堆棧的工作,操作系統將立即切換任務。任務切換所需要的時間遠遠小于傳統軟件操作系統。
  (2)各任務在RAM區的STK映射到51內核的直接尋址區的STK中,解決了51系列微控制器堆棧區過小的問題,并使得各個任務的堆棧區都是獨立的。而編寫任務程序時,則是相對于同一個空間地址進行操作,且任務堆棧切換無需軟件控制,避免了程序上出錯造成的影響。同樣使用映射技術的還有TCB區和ECB區,此處不再贅述。
  該改進方案已基本在FPGA系統上實現,目前仍處于性能測試階段,不足之處有待改進。


?

參考文獻
[1] 徐惠民.基于VxWorks的嵌入式系統及實驗[M].北京:北京郵電大學出版社,2006.
[2] LABROSSE J J.The real-time kernel second edition[M].北京:北京航空航天大學出版社,2003.
[3] 張培仁.基于C語言編程MCS-51單片機原理與應用[M].北京:清華大學出版社,2003.
[4] 朱明程,熊元姣.ACTEL數字系統現場集成技術[M].北京:清華大學出版社,2004.
[5] 田志鑫,張雷.在51單片機上移植μC/OS-II關鍵問題的解決[A].微計算機信息,2007,23(12):56-58.
[6] 孫旭祥.淺析實時操作系統的任務調度[A].通信對抗,2005(12):47-50.
[7] 溫圣軍,王簡瑜.80C51原始IP核內部RAM的擴展方案[A].單片機與嵌入式應用,2008(2):64-66.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热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>
          韩国一区二区三区在线观看| 欧美一进一出视频| 免费在线观看成人av| 136国产福利精品导航| 亚洲黄色小视频| 美女黄毛**国产精品啪啪| 亚洲大片在线观看| 亚洲第一在线视频| 女生裸体视频一区二区三区| 极品少妇一区二区三区| 国产日韩精品一区二区浪潮av| 欧美影院视频| 国产日韩欧美在线一区| 欧美午夜美女看片| 欧美一区日本一区韩国一区| 国产日韩在线一区| 99在线精品免费视频九九视| 久久综合九色综合欧美就去吻| 亚洲视频在线观看一区| 久久国产精品72免费观看| 久久久精品动漫| 久久久99免费视频| 欧美人在线视频| 久久久久久久久久码影片| 久热综合在线亚洲精品| 国产人成一区二区三区影院| 亚洲国产老妈| 欧美一区二区三区免费大片| 欧美精品一区二区三区蜜桃| 亚洲国产精品一区二区三区| 日韩视频免费观看| 亚洲精品在线电影| 亚洲一二三区在线| 国产精品永久免费在线| 狠狠色丁香婷婷综合久久片| 亚洲视频一二三| 国产精品久久久久久久浪潮网站| 国产精品福利片| 国产亚洲美州欧州综合国| 国产一区二区三区成人欧美日韩在线观看| 亚洲精品你懂的| 亚洲第一在线综合网站| 欧美刺激午夜性久久久久久久| 亚洲成人资源| 欧美日韩免费看| 欧美一级免费视频| 蜜月aⅴ免费一区二区三区| 国产日韩av在线播放| 欧美专区在线观看| 亚洲女优在线| 久久免费黄色| 午夜性色一区二区三区免费视频| 亚洲激情国产| 欧美激情中文字幕在线| 一区二区日韩精品| 巨乳诱惑日韩免费av| 亚洲在线国产日韩欧美| 一本到高清视频免费精品| 欧美另类极品videosbest最新版本| 最新国产の精品合集bt伙计| 欧美一区日本一区韩国一区| 欧美日韩国产精品专区| 亚洲乱码国产乱码精品精天堂| 欧美视频中文字幕在线| 久久久久五月天| 亚洲精品一二三区| 亚洲一区久久| 欧美—级a级欧美特级ar全黄| 尤物精品在线| 久久久久免费| 欧美激情在线有限公司| 国产日韩欧美在线观看| 亚洲欧美日韩精品久久| 国产精品中文字幕在线观看| 亚洲自拍偷拍色片视频| 亚洲影院污污.| 日韩香蕉视频| 99国内精品久久| 亚洲欧美日韩成人高清在线一区| 午夜精品视频一区| 免费欧美在线| 欧美精品xxxxbbbb| 一本一本久久a久久精品综合麻豆| 亚洲高清一二三区| 国产精品久久久久久久久久久久久久| 亚洲欧美中文日韩在线| 欧美伦理影院| 国产亚洲综合在线| 欧美肥婆bbw| 欧美精品在线极品| 先锋影音一区二区三区| 篠田优中文在线播放第一区| 欧美伦理a级免费电影| 国产综合色产在线精品| 亚洲欧洲一区二区天堂久久| 国产精品一区二区久久| 麻豆精品在线视频| 国产精品成人在线| 亚洲另类在线一区| 久久综合久久美利坚合众国| 国产精品一区在线观看你懂的| 国产一区二区精品久久91| 国产精品久久国产精麻豆99网站| 亚洲第一页自拍| 久热国产精品视频| 久久se精品一区精品二区| 久久免费国产精品1| 亚洲在线中文字幕| 亚洲在线中文字幕| 国产日韩精品一区二区| 欧美一区二区大片| 欧美a级大片| 欧美日本一区二区三区| 欧美日韩一区二区精品| 欧美日韩一二三四五区| 欧美色欧美亚洲另类二区| 国内精品久久久久久久影视麻豆| 国产三区二区一区久久| 国产日韩在线不卡| 亚洲日本中文| 久久亚洲国产精品一区二区| 欧美日韩一区二区三区四区五区| 一区二区三区精品久久久| 国户精品久久久久久久久久久不卡| 日韩视频―中文字幕| 国产视频观看一区| 午夜精品一区二区三区在线视| 国产欧美日韩视频在线观看| 狠狠色丁香久久婷婷综合_中| 久久激情视频免费观看| 国产亚洲在线| 国产精品女人网站| 国产精品青草综合久久久久99| 午夜一区二区三视频在线观看| 国产精品自拍三区| 99精品视频免费观看视频| 亚洲一区二区综合| 亚洲精品在线视频| 在线免费观看欧美| 一区二区三区精品在线| 美女性感视频久久久| 欧美激情精品| 国产精品99久久久久久久久| 欧美一级专区| 亚洲欧美在线一区二区| 欧美色欧美亚洲高清在线视频| 性欧美videos另类喷潮| 欧美日韩一区二区三区高清| 国产日韩一区二区| 久久久国产91| 日韩亚洲一区二区| 黄色影院成人| 亚洲人成网站色ww在线| 老司机精品视频一区二区三区| 欧美一区二区三区在线观看| 亚洲一区二区视频在线观看| 国产在线一区二区三区四区| 午夜一级在线看亚洲| 国产主播一区二区三区四区| 在线免费高清一区二区三区| 亚洲激情影院| 蜜臀久久99精品久久久久久9| 国产欧美日本在线| 亚洲区一区二| 国产美女精品一区二区三区| 亚洲国产精品va在线看黑人| 国产一区二区三区无遮挡| 洋洋av久久久久久久一区| 久久久久国产精品一区三寸| 久久久爽爽爽美女图片| 欧美精品一区二区三区久久久竹菊| 久久精彩免费视频| 国产欧美日韩亚洲精品| 亚洲欧洲一区| 欧美一区二区播放| 亚洲视频综合在线| 激情综合中文娱乐网| 国产精品一区二区你懂得| 一区二区不卡在线视频 午夜欧美不卡在| 一本色道精品久久一区二区三区| 亚洲国产高清在线| 午夜在线精品偷拍| 久久久久久成人| 久久av最新网址| 亚洲天堂av高清| 国内欧美视频一区二区| 国产视频丨精品|在线观看| 99re成人精品视频| 中文精品在线| 国产精品视频在线观看| 午夜久久99| 国产日韩欧美电影在线观看| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲免费一区二区| 国产精品视频yy9299一区| 国产日韩欧美视频| 欧美视频一区二区在线观看| 欧美精品一区二区三区蜜桃| 欧美成人性生活| 国产视频精品xxxx| 亚洲乱码国产乱码精品精天堂| 国产欧美精品一区二区三区介绍| 欧美视频一区二区三区| 欧美顶级艳妇交换群宴| 国产亚洲欧美一区二区三区| 99re6热只有精品免费观看| 国产乱码精品1区2区3区| 亚洲风情在线资源站| 亚洲国产精品久久久久秋霞蜜臀| 国产午夜亚洲精品羞羞网站| 亚洲国产成人91精品| 国产在线精品成人一区二区三区| 欧美一级电影久久| 亚洲欧美日韩一区在线观看| 亚洲电影免费观看高清完整版| 欧美另类久久久品| 欧美二区在线| 在线日韩av永久免费观看| 欧美jizzhd精品欧美喷水| 亚洲专区免费| 亚洲人成小说网站色在线| 欧美日本久久| 美日韩丰满少妇在线观看| 亚洲激情图片小说视频| 激情久久久久| 亚洲综合好骚| 亚洲午夜一区二区| 欧美在线黄色| 亚洲国产中文字幕在线观看| 国产一区二区无遮挡| 国产精品ⅴa在线观看h| 亚洲夜晚福利在线观看| 欧美三级黄美女| 亚洲级视频在线观看免费1级| 欧美一区二区三区在线视频| 欧美在线视频a| 久久福利视频导航| 女女同性精品视频| 国产在线播放一区二区三区| 欧美一级专区免费大片| 欧美自拍偷拍午夜视频| 久久野战av| 久热精品视频在线观看| 国产精品美女主播在线观看纯欲| 久久在线播放| 久久久久九九九九| 久久久久久999| 亚洲精品国产精品乱码不99按摩| 亚洲人成网站精品片在线观看| 欧美高清在线精品一区| 亚洲欧美视频在线观看视频| 亚洲欧美日韩精品久久久| 国产精品腿扒开做爽爽爽挤奶网站| 欧美另类在线播放| 男女av一区三区二区色多| 1769国内精品视频在线播放| 欧美一区二区三区日韩视频| 国产永久精品大片wwwapp| 久久国产乱子精品免费女| 久久综合伊人77777| 亚洲精品一区二区三区四区高清| 亚洲视频在线观看网站| 免费人成网站在线观看欧美高清| 亚洲精品乱码久久久久久蜜桃麻豆| 久久av一区二区三区| 美女视频黄免费的久久| 樱花yy私人影院亚洲| 亚洲欧美变态国产另类| 欧美在线在线| 国产在线国偷精品产拍免费yy| 国产精品私房写真福利视频| 亚洲国产婷婷香蕉久久久久久99| 国产精品a久久久久久| 亚洲人成毛片在线播放| 亚洲国产精品一区二区www| 翔田千里一区二区| 欧美精品一区二区三区很污很色的| 欧美日韩亚洲国产精品| 91久久精品日日躁夜夜躁国产| 国产精品大片wwwwww| 久久超碰97中文字幕| 欧美一区二区国产| 国产精品国产馆在线真实露脸| 欧美护士18xxxxhd| 欧美视频专区一二在线观看| 国产一区二区三区自拍| 欧美国产日韩a欧美在线观看| 欧美日韩在线播放三区四区| 欧美一区二区三区播放老司机| 亚洲黄色精品| 午夜精彩视频在线观看不卡| 国产欧美日韩麻豆91| 日韩视频精品在线观看| 91久久精品日日躁夜夜躁国产| 欧美另类一区二区三区| 欧美成人一区二免费视频软件| 欧美午夜久久久| 欧美在线精品一区| 欧美国产一区视频在线观看| 欧美精品激情blacked18| 亚洲欧美国产一区二区三区| 在线免费观看视频一区| 一本色道久久| 国产精品系列在线播放| 国产欧美日韩视频在线观看| 久久夜色精品国产欧美乱| 欧美一二三区精品| 亚洲午夜免费福利视频| 国产精品久久久久久模特| 欧美岛国激情| 欧美在线电影| 激情欧美一区| 韩国v欧美v日本v亚洲v| 亚洲电影免费在线观看| 亚洲美女尤物影院| 久久久爽爽爽美女图片| 欧美日韩一区二区视频在线观看| 久久爱www| 亚洲国产人成综合网站| 午夜天堂精品久久久久| 91久久精品日日躁夜夜躁国产| 国产欧美 在线欧美| 欧美a级片一区| 久久婷婷人人澡人人喊人人爽| 亚洲一区二区精品在线观看| 韩国三级电影久久久久久| 在线观看日韩一区| 亚洲午夜精品一区二区|