www.pudn.com > hos-v4_os.rar > knl_cyc.h
/* ------------------------------------------------------------------------ */
/* Hyper Operating System V4 μITRON4.0仕様 Real-Time OS */
/* カーネル依存情報定義ヘッダ 周期ハンドラ */
/* */
/* Copyright (C) 1998-2002 by Project HOS */
/* http://sourceforge.jp/projects/hos/ */
/* ------------------------------------------------------------------------ */
#ifndef __HOS_V4__knl_cyc_h__
#define __HOS_V4__knl_cyc_h__
#include "knl_hos.h"
#include "knl_tim.h"
/* ------------------------------------------ */
/* 定数定義 */
/* ------------------------------------------ */
/* IDの範囲 */
#define KERNEL_TMIN_CYCID TMIN_CYCID /* 周期ハンドラIDの最小値 */
#define KERNEL_TMAX_CYCID (KERNEL_TMIN_CYCID + kernel_cyccb_cnt - 1)
/* 周期ハンドラIDの最大値 */
/* ------------------------------------------ */
/* 型定義 */
/* ------------------------------------------ */
/* 周期ハンドラコントロールブロック(ROM部) */
typedef struct t_kernel_cyccb_rom
{
ATR cycatr; /* 周期ハンドラ属性 */
VP_INT exinf; /* 周期ハンドラの拡張情報 */
FP cychdr; /* 周期ハンドラの起動番地 */
RELTIM cyctim; /* 周期ハンドラの起動周期 */
} T_KERNEL_CYCCB_ROM;
/* 周期ハンドラコントロールブロック(RAM部) */
typedef struct t_kernel_cyccb_ram
{
T_KERNEL_TIM timobj; /* タイマオブジェクトを継承 */
RELTIM lefttim; /* 周期ハンドラのを次に起動する時刻までの時間 */
const T_KERNEL_CYCCB_ROM *cyccb_rom; /* 周期ハンドラコントロールブロックROM部へのポインタ */
} T_KERNEL_CYCCB_RAM;
/* ---------------------------------- */
/* グローバル変数宣言 */
/* ---------------------------------- */
/* 周期ハンドラ */
extern T_KERNEL_CYCCB_RAM *kernel_cyccb_ram_tbl[]; /* 周期ハンドラコントロールブロックテーブル */
extern const INT kernel_cyccb_cnt; /* 周期ハンドラコントロールブロック個数 */
#define KERNEL_CYCID_TO_CYCCB_RAM(cycid) (kernel_cyccb_ram_tbl[(cycid) - KERNEL_TMIN_CYCID])
/* 周期ハンドラIDからCYCCB RAMアドレスを取得 */
/* ------------------------------------------ */
/* 関数宣言 */
/* ------------------------------------------ */
#ifdef __cplusplus
extern "C" {
#endif
/* 周期ハンドラ */
void kernel_ini_cyc(void); /* 周期ハンドラの初期化 */
void kernel_cyc_hdr(T_KERNEL_TIM *timobj, RELTIM tic); /* 周期ハンドラのタイマハンドラ */
ER sta_cyc(ID cycid); /* 周期ハンドラの動作開始 */
ER stp_cyc(ID cycid); /* 周期ハンドラの動作停止 */
#ifdef __cplusplus
}
#endif
#endif /* __HOS_V4__knl_cyc_h__ */
/* ------------------------------------------------------------------------ */
/* Copyright (C) 1998-2002 by Project HOS */
/* ------------------------------------------------------------------------ */