[發明專利]一種嵌入式操作系統定時保護的實現方法無效
| 申請號: | 201110181685.0 | 申請日: | 2011-06-30 |
| 公開(公告)號: | CN102339029A | 公開(公告)日: | 2012-02-01 |
| 發明(設計)人: | 李允;高嵊昊;陳麗蓉 | 申請(專利權)人: | 電子科技大學 |
| 主分類號: | G05B19/048 | 分類號: | G05B19/048 |
| 代理公司: | 成都行之專利代理事務所(普通合伙) 51220 | 代理人: | 溫利平 |
| 地址: | 611731 四川省成*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 嵌入式 操作系統 定時 保護 實現 方法 | ||
1.一種嵌入式操作系統定時保護的實現方法,其特征在于,包括以下步驟:
(1)、在任務控制塊中,增加任務剩余執行時間元素以及任務上次激活時刻元素;在任務控制塊中任務配置信息表指針指向的任務配置信息表中,增加任務執行預算時間以及任務到達預算時間間隔,任務剩余執行時間的初始值等于任務執行預算時間;
在中斷控制塊中,增加中斷剩余執行時間元素以及中斷上次激活時刻元素;在中斷控制塊中中斷配置信息表指針指向的中斷配置信息表中,增加中斷執行預算時間以及中斷到達預算時間間隔,中斷剩余執行時間的初始值等于中斷執行預算時間;
(2)、執行的定時保護
選擇系統時鐘模塊的一個通道作為執行的定時保護通道:
2.1)對于任務,在任務即將進入運行態之前,將該任務的任務控制塊中記錄任務剩余執行時間與定時保護通道中計數器的計數值相加,并存入定時保護通道的比較寄存器中,開始執行的定時保護監測:
任務在執行過程中,計數器以遞增的方式計數,當計數器的計數值與比較寄存器中暫存的數值相同時,該任務的執行預算時間到達,定時保護通道產生中斷,在該產生中斷的服務程序中進行用戶所需要的保護處理操作;
如果任務在其執行預算時間到之前正常執行完畢,說明該任務并沒有超過其執行預算時間,則恢復該任務控制塊中的任務剩余執行時間為其任務配置信息表中靜態配置的任務執行預算時間;
如果任務在其執行過程中被搶占,由運行態切換到就緒態時,則將定時保護通道比較寄存器中的數值減去計數器的計數值,得到任務剩余執行時間,并存入該任務的任務控制塊中的任務剩余執行時間元素中;
2.2)對于中斷,當中斷觸發并且處理器響應中斷后,首先進入操作系統的中斷服務程序,在跳轉到具體對應的中斷服務程序之前,將該中斷的中斷控制塊中記錄中斷剩余執行時間與定時保護通道中計數器的計數值相加,并存入定時保護通道的比較寄存器中,開始執行的定時保護監測:
中斷在執行過程中,計數器以遞增的方式計數,當計數器的計數值與比較寄存器中暫存的數值相同時,該中斷的執行預算時間到達,定時保護通道產生中斷,該產生中斷的優先級高于當前正在執行的中斷并且搶占后者,在該產生中斷的服務程序中進行用戶所需要的保護處理操作;
如果中斷在其執行預算時間到之前正常執行完畢,說明該中斷并沒有超過其執行預算時間,則恢復該中斷控制塊中的中斷剩余執行時間為其中斷配置信息表中靜態配置的中斷執行預算時間;
如果中斷在其執行過程中被搶占,由運行態切換到就緒態時,則將定時保護通道比較寄存器中的數值減去計數器的計數值,得到中斷剩余執行時間,并存入該中斷的中斷控制塊中的中斷剩余執行時間元素中;
(3)、任務和中斷的到達時間間隔的定時保護
在任務或中斷就緒或到達時,對本次就緒或到達時間減去任務控制塊或中斷控制塊中上次激活時刻,得到本次到達時間間隔,并與任務配置信息表或中斷配置信息表中的任務或中斷到達預算時間間隔進行比較,如果小于任務或中斷到達預算時間間隔,則阻止該任務或中斷就緒。
2.根據權利要求1所述的嵌入式操作系統定時保護的實現方法,其特征在于,定時保護通道產生中斷時,還要進行以下步驟:
1)、首先進入中斷派發程序,中斷派發程序根據中斷向量號跳轉到定時保護通道的中斷服務程序中,該服務程序除了清除該通道的中斷標志還獲取用戶對該超時現象所希望采取的動作。
2)、再返回到中斷派發程序中,根據需要終止的任務或中斷的類型來完成終止操作:
2.1)如果是非FIT上下文中的任務,則需要釋放任務所持有的所有資源,終止任務并進行重新調度。
2.2)如果是FIT上下文中的任務,則在釋放任務所持有的所有資源,終止任務后不進行重調度,而是回到FIT的派發程序中,完成返回到FIT搶占的實體上下文中。
2.3)如果是中斷,則需要釋放中斷所持有的所有資源,并返回到中斷之前的上下文中。
3.根據權利要求1所述的嵌入式操作系統定時保護的實現方法,其特征在于,所述的任務或中斷運行的先后順序用ID棧來記錄:
ID棧的實現采取的是靜態數組的方式,在編譯時就已確定其大小,ID棧的大小是系統中所有任務激活次數的和再加上中斷個數的和,而棧頂指針始終指向當前的空閑位置;入棧操作時,先對棧頂指針所指位置的內容進行修改,將入棧任務或中斷的ID加入,再將棧頂指針加1;出棧操作時則先將棧頂指針減1,再對棧頂指針現在所指位置內容清零。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于電子科技大學,未經電子科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110181685.0/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:精餾塔優化控制方法
- 下一篇:一體化融合完成靶場飛行器遙測與測距的方法





