📄 itron.h
字号:
typedef struct t_ver {
UH maker; /* maker */
UH id; /* id */
UH spver; /* specification version */
UH prver; /* production version */
UH prno[4]; /* production number */
UH cpu; /* CPU information */
UH var; /* variation */
} T_VER;
/*------------------ t_trccb (trace buffer control block) ------------------*/
typedef struct t_trccb {
VP tr_trbtop; /* top address of trace buffer */
VP tr_trbbtm; /* bottom address of trace buffer */
VP tr_trbins; /* insert address of trace entry */
UW tr_trbsts; /* trace buffer status */
} T_TRCCB;
/*------------------ t_trcent (trace buffer entry block) -------------------*/
typedef struct t_trcent {
UH te_attr; /* attribute */
ID te_tskid; /* task id of call svc */
UW te_ltime; /* system time */
W te_event; /* event (r0 register) */
VW te_par1; /* parameter 1 (r4 register) */
VW te_par2; /* parameter 2 (r5 register) */
VW te_par3; /* parameter 3 (r6 register) */
VW te_par4; /* parameter 4 (r7 register) */
UW te_pc; /* pc register */
UW te_sr; /* sr register */
} T_TRCENT;
/****************************************************************************/
/* */
/* error code */
/* */
/****************************************************************************/
#define E_OK 0x0 /* normal end */
#define E_TNOSPT (-0x613) /* timer no support */
#define E_RSFN (-0x614) /* reserved function code number */
#define E_RSID (-0x617) /* reserved id number */
#define E_PAR (-0x721) /* parameter error */
#define E_ILADR (-0x722) /* illegal address */
#define E_IDOVR (-0x723) /* ID over */
#define E_TPRI (-0x726) /* illegal task priority */
#define E_ILTIME (-0x727) /* illegal time */
#define E_ILMSG (-0x729) /* illegal message type */
#define E_IMS (-0x72b) /* illegal imask */
#define E_SELF (-0x831) /* tskid is self */
#define E_EXS (-0x833) /* object exist */
#define E_NOEXS (-0x834) /* object non existent */
#define E_DMT (-0x835) /* task is dormant status */
#define E_NODMT (-0x836) /* task isn't dormant status */
#define E_NOSUS (-0x838) /* task isn't suspend status */
#define E_ILBLK (-0x83b) /* illegal momory block */
#define E_NOWAI (-0x83e) /* task isn't wait status */
#define E_OBJ (-0x83f) /* object status error */
#define E_CTX (-0xa45) /* context error */
#define E_QOVR (-0xb49) /* queuing over flow */
#define E_TMOUT (-0xd55) /* time out */
#define E_RLWAI (-0xd56) /* wait status forced release */
#define E_PLFAIL (-0xe59) /* polling fail */
/****************************************************************************/
/* */
/* error code of setup table check */
/* */
/****************************************************************************/
#define ES_KMSKLVL 0x01 /* illegal kernel mask level of */
/* interrupt */
#define ES_INSTNUM 0x02 /* illegal nest number of interrupt */
#define ES_MTSKID 0x03 /* illegal max task id */
#define ES_MTSKPRI 0x04 /* illegal max task priority */
#define ES_ITSKNUM 0x05 /* illegal number of initial task */
#define ES_ITSKSP 0x06 /* illegal initial task stack */
/* pointer */
#define ES_ITSKID 0x07 /* illegal initial task id */
#define ES_ITSKPRI 0x08 /* illegal initial task priority */
#define ES_ITSKADR 0x09 /* illegal initial task start */
/* address */
#define ES_MFLGID 0x0a /* illegal max event flag id */
#define ES_MSEMID 0x0b /* illegal max semaphore id */
#define ES_MMBXID 0x0c /* illegal max mail box id */
#define ES_MMPLID 0x0d /* illegal max memory pool id */
#define ES_MPLADR 0x0e /* illegal memory pool top address */
#define ES_BLKSIZ 0x0f /* illegal memory block size */
#define ES_BLKCNT 0x10 /* illegal memory block count */
#define ES_MPLARA 0x11 /* illegal memory pool area */
#define ES_IHDRADR 0x12 /* illegal initial handler address */
#define ES_MSVCFCD 0x13 /* illegal max function code of */
/* extended SVC */
#define ES_SVCADR 0x14 /* illegal extended SVC handler */
/* address */
#define ES_TRCADR 0x15 /* illegal trace buffer top address */
#define ES_TRCCNT 0x16 /* illegal trace count */
#define ES_TRCARA 0x17 /* illegal trace buffer area */
/****************************************************************************/
/* */
/* sys_clk SVC declaration */
/* */
/****************************************************************************/
#define sys_clk() trapa(60) /* sys_clk SVC */
/****************************************************************************/
/* */
/* prototype declaration */
/* */
/****************************************************************************/
ER cre_tsk(ID tskid, TASKP stadr, TPRI itskpri);
ER sta_tsk(ID tskid);
ER ista_tsk(ID tskid);
ER del_tsk(ID tskid);
void ext_tsk(void);
void exd_tsk(void);
ER ter_tsk(ID tskid);
ER chg_pri(ID tskid, TPRI tskpri);
ER ichg_pri(ID tskid, TPRI tskpri);
ER rot_rdq(TPRI tskpri);
ER irot_rdq(TPRI tskpri);
ER rel_wai(ID tskid);
ER irel_wai(ID tskid);
ER get_tid(ID *p_tskid);
ER tsk_sts(UH *p_tskstat, TPRI *p_tskpri, ID tskid);
ER sus_tsk(ID tskid);
ER isus_tsk(ID tskid);
ER rsm_tsk(ID tskid);
ER irsm_tsk(ID tskid);
ER slp_tsk(void);
ER wai_tsk(TMO tmout);
ER wup_tsk(ID tskid);
ER iwup_tsk(ID tskid);
ER can_wup(W *p_wupcnt, ID tskid);
ER set_flg(ID flgid, UW setptn);
ER iset_flg(ID flgid, UW setptn);
ER clr_flg(ID flgid, UW clrptn);
ER wai_flg(UW *p_flgptn, ID flgid, UW waiptn, UW wfmode);
ER pol_flg(UW *p_flgptn, ID flgid, UW waiptn, UW wfmode);
ER flg_sts(ID *p_wtskid, UW *p_flgptn, ID flgid);
ER sig_sem(ID semid);
ER isig_sem(ID semid);
ER wai_sem(ID semid);
ER preq_sem(ID semid);
ER sem_sts(ID *p_wtskid, W *p_semcnt, ID semid);
ER snd_msg(ID mbxid, void *pk_msg);
ER isnd_msg(ID mbxid, void *pk_msg);
ER rcv_msg(void **ppk_msg, ID mbxid);
ER prcv_msg(void **ppk_msg, ID mbxid);
ER mbx_sts(ID *p_wtskid, void **ppk_msg, ID mbxid);
ER chg_ims(SR imask);
ER ims_sts(SR *p_imask);
ER get_blk(VP *p_blk, ID mplid);
ER pget_blk(VP *p_blk, ID mplid);
ER rel_blk(ID mplid, VP blk);
ER mpl_sts(ID *p_wtskid, W *p_frbcnt, ID mplid);
ER set_tim(T_TIM *pk_tim);
ER get_tim(T_TIM *pk_tim);
ER get_ver(T_VER *pk_ver);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -