重囗另类BBWSeⅹHD,av狼论坛,精品一卡2卡三卡4卡乱码理论,体育生gv老师浪小辉3p警察

QK對中斷的特殊處理 -電腦資料

電腦資料 時間:2019-01-01 我要投稿
【www.ipr-jzsc.com - 電腦資料】

    1.QK的特性

    QK(Quntum Kernel)是一個搶占式、基于優先級實時微內核、一個多任務調度器;

    QK不同于傳統的RTOS,是非阻塞的,并且只用了一個stack;

    對QK中的任務來說,采用了IOC(好萊塢原則)方式(是callback的),而不同于傳統RTOS中任務的多線程或進程中的等待;

    傳統RTOS只有中斷后,才可能會有任務切換,而QK不只是中斷后,在post一個事件后,也可能會使任務切換;

    QK對事件的處理是RTC的;

    .......

    2.QK搶占方式

    QK有同步搶占(post event時)和異步搶占(中斷時)兩種方式,

QK對中斷的特殊處理

。而傳統RTOS不分搶占的方式,只能歸為異步搶占吧。

    在post一個事件到高優先級任務時,會調用QK_scheduler, 找到當前最高的優先級任務來執行,這是同步搶占;而異步搶占發生在中斷中,也會調用QK_scheduler。

    不管是什么搶占,在返回前都要檢查是不是有更高級的任務要執行--處理事件。

    3.QK的中斷處理 (偽代碼)

    static void interrupt ISR( ) {

    uint8_t pin; //用于暫存被中斷任務的優先級

    QK_ISR_ENTRY(pin, ISR_PRIO); //QK的特殊中斷進入處理,執行下面的3個動作:

    (1)保存當前優先級(被中斷任務的優先級)到pin中;

    (2)設置當前優先級為ISR_PRIO;

    (3)開中斷

    Do interrupt processingthat might include QF calls.//傳統中斷服務處理,其中可以調QF函數,

電腦資料

QK對中斷的特殊處理》(http://www.ipr-jzsc.com)。

    QK_ISR_EXIT(pin); //QK的特殊中斷退出,執行下面4個動作:

    (1)關中斷

    (2)寫結束EOI(End Of Interrupt) 到中斷控制器. 如8259。相當于中斷結束了,可以響應其它中斷了。

    (3)恢復當前優先級為pin

    (4)調用QK_scheduler ; //*!異步搶占可能在這里會發生。

    }//*!這里是中斷的真正返回。上邊的EOI只是表示本次中斷結束,但并沒返回。

    !!!這里的關鍵是對EOI的理解,當寫EOI時,表示當前中斷已經結束,可以響應所有的中斷,包括同級與低級。雖然當前中斷已經結束,但并沒有馬上中斷返回,在返回前會調用QK_scheculer, 如有更高任務,就執行,執行完才可能返回。

    這種處理是可以多層嵌套的,所有的過程只用了一個stack。

最新文章
主站蜘蛛池模板: 金昌市| 宜兰市| 岳普湖县| 疏勒县| 沛县| 昌邑市| 连州市| 嘉禾县| 长治县| 子长县| 扬州市| 石家庄市| 宽甸| 汕头市| 西藏| 上饶县| 错那县| 鹤岗市| 濮阳市| 弥渡县| 武安市| 湄潭县| 石嘴山市| 宝应县| 江都市| 上饶市| 弋阳县| 普兰店市| 伊川县| 嵊州市| 黄梅县| 正阳县| 汝南县| 长海县| 酉阳| 凤山市| 房产| 轮台县| 昌邑市| 鹿泉市| 宣威市|