?? mexe_dsp.c
字號:
/* ------------------------------------------------------------------------ *//* Hyper Operating System V4 μITRON4.0慌屯 Real-Time OS *//* μカ〖ネル タスク擴告 *//* *//* Copyright (C) 1998-2002 by Project HOS *//* http://sourceforge.jp/projects/hos/ *//* ------------------------------------------------------------------------ */#include "mknl.h"#include "dsp_hok.h"/* タスクディスパッチの悸乖 */ER_UINT mknl_exe_dsp(void){ T_HOSPAC_CTXINF *ctxinf_top; T_HOSPAC_CTXINF *ctxinf_run; T_MKNL_TCB *mtcb_top; T_MKNL_TCB *mtcb_run; /* コンテキストチェック */ if ( mknl_ctx_stat & (MKNL_TSS_INDP | MKNL_TSS_DDSP | MKNL_TSS_DINT) ) { /* ディスパッチ悸乖材墻覺輪で痰ければ瘦偽する */ mknl_ctx_stat |= MKNL_TSS_DDLY; /* ディスパッチ覓變フラグをセット */ return E_OK; } /* 呵光庭黎刨の悸乖材墻タスクを玫す */ mtcb_top = mknl_srh_top(); mtcb_run = mknl_run_mtcb; /* 附哼のタスクをロ〖カルに鑼閏 */ /* 悸乖面タスクが票じなら部もしない(アイドルからアイドルも崔む∷ */ if ( mtcb_top == mtcb_run ) { if ( mtcb_run == NULL ) { return E_OK; } return mtcb_run->ercd; } /* アイドルタスク悸乖面でないかチェック */ if ( mtcb_run == NULL ) { /* アイドルならアイドルコンテキストを肋年 */ ctxinf_run = &mknl_idlctx; } else { /* 悸乖面のコンテキストを肋年 */ ctxinf_run = &mtcb_run->ctxinf; } /* 肌に悸乖するタスクがあるかどうかチェック */ if ( mtcb_top == NULL ) { /* 悸乖黎が痰ければアイドルコンテキストを肋年 */ mknl_run_mtcb = NULL; ctxinf_top = &mknl_idlctx; } else { /* 悸乖黎のタスクを悸乖面タスクとして判峽 */ mknl_run_mtcb = mtcb_top; mtcb_top->tskstat = TTS_RDY; /* 悸乖黎のコンテキストを肋年 */ ctxinf_top = &mtcb_top->ctxinf; } /* タスクコンテキストスイッチ悸乖 */ hospac_swi_ctx(ctxinf_run, ctxinf_top); _HOS_TSW_HOK(); /* コンテキストスイッチのフック */ if ( mtcb_run == NULL ) { return E_OK; } return mtcb_run->ercd;}/* ------------------------------------------------------------------------ *//* Copyright (C) 1998-2002 by Project HOS *//* ------------------------------------------------------------------------ */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -