|
|
|||||||||||||||||||||||||||||||||||
周期ハンドラ機能
説明静的API関数周期ハンドラの動作開始
参照先 base_time・CHECK_CYCID・CHECK_TSKCTX_UNL・cyclic_handler_control_block::cycinib・cyclic_handler_control_block::cycsta・cyclic_handler_initialization_block::cyctim・E_OK・get_cyccb・LOG_STA_CYC_ENTER・LOG_STA_CYC_LEAVE・t_lock_cpu()・t_unlock_cpu()・cyclic_handler_control_block::tmevtb・tmevtb_dequeue()・tmevtb_enqueue_cyc()・TRUE. 00125 { 00126 CYCCB *cyccb; 00127 ER ercd; 00128 00129 LOG_STA_CYC_ENTER(cycid); 00130 CHECK_TSKCTX_UNL(); 00131 CHECK_CYCID(cycid); 00132 cyccb = get_cyccb(cycid); 00133 00134 t_lock_cpu(); 00135 if (cyccb->cycsta) { 00136 tmevtb_dequeue(&(cyccb->tmevtb)); 00137 } 00138 else { 00139 cyccb->cycsta = TRUE; 00140 } 00141 tmevtb_enqueue_cyc(cyccb, base_time + cyccb->cycinib->cyctim); 00142 ercd = E_OK; 00143 t_unlock_cpu(); 00144 00145 exit: 00146 LOG_STA_CYC_LEAVE(ercd); 00147 return(ercd); 00148 }
関数の呼び出しグラフ: ![]() 周期ハンドラの動作停止
参照先 CHECK_CYCID・CHECK_TSKCTX_UNL・cyclic_handler_control_block::cycsta・E_OK・FALSE・get_cyccb・LOG_STP_CYC_ENTER・LOG_STP_CYC_LEAVE・t_lock_cpu()・t_unlock_cpu()・cyclic_handler_control_block::tmevtb・tmevtb_dequeue(). 00159 { 00160 CYCCB *cyccb; 00161 ER ercd; 00162 00163 LOG_STP_CYC_ENTER(cycid); 00164 CHECK_TSKCTX_UNL(); 00165 CHECK_CYCID(cycid); 00166 cyccb = get_cyccb(cycid); 00167 00168 t_lock_cpu(); 00169 if (cyccb->cycsta) { 00170 cyccb->cycsta = FALSE; 00171 tmevtb_dequeue(&(cyccb->tmevtb)); 00172 } 00173 ercd = E_OK; 00174 t_unlock_cpu(); 00175 00176 exit: 00177 LOG_STP_CYC_LEAVE(ercd); 00178 return(ercd); 00179 }
関数の呼び出しグラフ: ![]()
Copyright © 2006 by TAKAGI Nobuhisa. Copyright © 2006 by Kijineko Inc.. このページは Mon Dec 18 17:23:36 2006 に Doxygen によって生成されました。 データ入力からプログラム開発まで!様々なスキルを持ったメンバーが登録しています【@SOHO】 |
|||||||||||||||||||||||||||||||||||