欧美aⅴ在线,国产手机精品一区二区,日韩国产欧美一区二区三区,精品视频在线观看视频免费视频,欧美在线小视频,精品一区视频

咨詢熱線:021-80392549

用協處理器提高IJLC/OSn,Il的實時性

放大字體  縮小字體 發布日期:2014-10-21     來源:[標簽:出處]     作者:[標簽:作者]     瀏覽次數:86
核心提示:
引 言
   
μC/OS-II最多支持63個任務,并支持信號量、郵箱、消息隊列等多種進程間通信機制;同時,用戶可以根據需求對內核中的功能模塊進行裁剪。將μC/OS-II應用到嵌入式系統中,對于提高產品的質量、縮短開發周期和降低成本都有重要的意義。
    為了保證系統的實時性,μC/OS-II采用查表策略,使優先級最高的任務一旦進入就緒態就立刻可以運行。這種查表算法與應用系統的任務數目無關,執行時間是固定值,從而保證了系統的硬實時性。μC/OS-II實時內核中唯一一個執行時間受任務數目影響的函數是時鐘節拍,時鐘節拍的中斷服務子程序需要遍歷所有使用延遲函數的任務,故執行時間與任務數目有關,為非固定值。此外,時鐘節拍的頻率也不能太高,否則會因為CPU頻繁加載中斷服務子程序,導致加重了CPU負荷,影響μC/OS-II的實時性。
    Freescale公司的16位HCS12X(簡稱“S12X”)系列單片機引入了一個協處理器,名為“XGATE”。與普通意義上的浮點協處理器不同,這個協處理器主要用來處理中斷。如果采用協處理器來處理μC/OS-II時鐘節拍的中斷,那么主CPU無需頻繁加載中斷服務子程序,從而保證μC/OS-II內核的所有函數執行時間都為固定值。這樣,μC/OS-II的實時性就得到了保證,還能以提高時鐘節拍中斷頻率的方法提高應用系統定時的精度。


1 單片機中的協處理器
   
HCS12X系列單片機中的XGATE協處理器是精簡指令集(RISC)結構的處理器,它的工作時鐘頻率是S12X主CPU的2倍。主CPU初始化系統時可決定使用或禁用XGATE。若使用,則XGATE在初始化后就獨立地運行,并通過雙端口RAM與CPU交換數據,必要時向主CPU發中斷請求。
    XGATE處理完所有的中斷后進入休眠態,停止運行,直到下一次中斷發生。XGATE比較適合響應的中斷主要是加載頻率高的中斷,或不帶通信緩沖區的I/O中斷,例如SCI發送或接收中斷、PWM輸出中斷等。而對于本身帶發送、接收緩沖區的中斷(如CAN中斷、USB中斷等),采用協處理器處理中斷優勢不明顯。
    μC/OS-II的時鐘節拍中斷是一個頻繁發生的中斷,所以很適合采用XGATE來響應。以下重點介紹如何用XGATE協處理器響應μC/0S—II的時鐘節拍中斷。


2 用XGATE實現μC/OS-II的時鐘節拍
   
μC/0S-11的時鐘節拍中斷可以采用單片機的實時中斷(Real-Time Interrupt,RTI)來實現。當然也可以使用定時器中的計數器來產生時鐘節拍,原理相同,方法近似。使用XGATE來響應RTI中斷,實現時鐘節拍時,XGATE協處理器和主CPU的分工如表1所列。

    XGATE負責響應RTI中斷,實現時鐘節拍,并完成任務延時計數;在任務延時完成后,通知CPU進行任務調度。另外,XGATE還用來響應其他中斷,在需要任務調度時通知CPU。主CPU則只負責運行任務(包括系統任務)和任務調度,只有在需要任務調度時才會加載中斷服務子程序。使用XGATE來實現時鐘節拍的具體設置步驟如下所述。
2.1 將RTI中斷的控制權交給XGATE
   
為了將RTI中斷交由XGATE來處理,系統初始化時需要設置S12X單片機中RTI中斷對應的中斷控制寄存器。中斷控制寄存器組成如下:

    在S12X單片機中,每一個I/O中斷都有一個中斷控制寄存器與之對應。中斷控制寄存器控制相應的中斷是由S12X CPU響應還是由XGATE來響應,以及該中斷的優先級。
    中斷控制寄存器中,RQST位為1時,中斷由XGATE來響應;為0時,中斷由S12X CPU響應。為了使用XGATE來響應RTI中斷,需要將RTI中斷對應的中斷控制寄存器的RQST位置1。PRIOLVL[2:0]保存的是對應中斷的優先級,值越大,對應中斷的優先級越高。如果這3位均為0,那么對應中斷會被禁用。
    設置中斷控制寄存器可以調用編譯器提供的一個函數ROUTE_INTERRUPT。這個函數需要的參數是對應中斷的中斷向量相對中斷向量表基址(0xFF00)的偏移量,以及中斷控制寄存器的值。設置RTI中斷控制寄存器的代碼如下:
    RUUTE_INTERRUPT (0xF0,0x81);
    其中,0xF0是RTI中斷向量相對中斷向量表基址的偏移量,0x81是要設置的中斷控制寄存器的值。
2.2 XGATE與S12X CPU的數據共享
   
XGATE實現μC/OS-II的時鐘節拍和S12X CPU實現任務調度,都需要訪問與系統的任務控制塊鏈表相關的變量,因此這些變量需要聲明為XGATE和S12X CPU的共享變量。共享變量的聲明需要加上“volatile”類型聲明,并使用“#pragma”預處理命令將其放在共享內存中。

    S12 CPU的程序中聲明如下:


    在XGATE的程序中,需要使用extern聲明這些變量,具體語句如下:

工博士工業品商城聲明:凡資訊來源注明為其他媒體來源的信息,均為轉載自其他媒體,并不代表本網站贊同其觀點,也不代表本網站對其真實性負責。您若對該文章內容有任何疑問或質疑,請立即與商城(www.lmelshi.com)聯系,本網站將迅速給您回應并做處理。
聯系電話:021-31666777
新聞、技術文章投稿QQ:3267146135  投稿郵箱:syy@gongboshi.com

主站蜘蛛池模板: 国产在线成人一区二区三区| 亚洲日本韩国欧美| 亚洲资源最新版在线观看| 欧美大片在线观看成人| 亚洲天码中文字幕第一页| h网站在线观看| 青青青青青操| 5x社区未满十八在线视频| 色天天综合色天天天天看大| 大香伊人中文字幕精品| 亚洲一区二区三区免费视频| 国产综合成人观看在线| 久久成人综合| 青青青免费观看在线视频高清| 日本亚州视频在线八a| 欧美高清第一页| 草草在线免费视频| 国产精品入口麻豆免费| 韩国电影午夜三级不卡| 99www| 国产第一页在线观看| 亚洲日本精品va中文字幕| 5566精品资源在线播放| 看看日日麻批40分钟免费视频| a视频免费在线观看| 青青草国产| 精精国产www视频在线观看免费| gif动态图试看120秒| 亚洲视频中文字幕在线| 成人免费观看国产高清| 制服丝袜久久| 99热r| 最新欧美日韩| 三级完整在线观看高清视频| 青青青青青国产免费手机看视频| 欧美大片在线观看| 欧美1314视频在线观看| 97久久综合九色综合| 国产成人亚洲综合欧美一部| 久草青青在线| 成人欧美视频在线观看|