⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ros33.h

📁 最近在國外網站抓到的作業系統 以Arm為基礎去開發的
💻 H
字号:
/*************************************************************************
 *
 *  Copyright (C) SEIKO EPSON CORP. 1997
 *  All Rights Reserved
 *
 *  Filename : ros33.h
 *  Function : for C33 itron
 *  Revision :
 *          1997/08/01  H.Matsuoka  start
 *          1999/08/26  H.Matsuoka  Add message buffer function
 *          1999/10/18  H.Matsuoka  Add semapho count change function
 *          1999/11/25  H.Matsuoka  Add system call from interrupt handler
 *          2000/02/28  H.Matsuoka  Ver2.0
 *          2000/11/21  Y.Taka      Add Memory Pool Management
 *          2001/01/16  Y.Taka      Add tslp_tsk,twai_sem,twai_flg,trcv_msg
 *          2002/04/26  Pessia	Move INI_PSR to HAL header file
 ************************************************************************/
#include "itron.h"

/*
#if CHIP == EPSONC33209
#include "hardware\c33\epsonc33.h"
#endif

#if CHIP == DRAGONBALL_M68328
#include "hardware\drball\M68328.h"
#endif
*/

#include "M68328.h"

extern void release_dispatch( void );
extern void int_dispatch( void );
extern void schedule( void );
extern void ret_int( void );
extern void tmr_handler( void );
extern void ret_tmr( void );
extern void sys_clk( void );

extern ER is_slp_tsk(ID  tskid);

#define slp_tsk()  tslp_tsk(TMO_FEVR)

#define wai_sem(semid)  twai_sem(semid, TMO_FEVR)
#define preq_sem(semid) twai_sem(semid, TMO_POL)

#define wai_flg(p_flgptn,flgid,waiptn,wfmode) \
        twai_flg(p_flgptn,flgid,waiptn,wfmode,TMO_FEVR)
#define pol_flg(p_flgptn, flgid, waiptn, wfmode) \
        twai_flg(p_flgptn,flgid,waiptn,wfmode,TMO_POL)
#define snd_mbf(mbfid, msg, msgsz) tsnd_mbf(mbfid, msg, msgsz, TMO_FEVR)
#define psnd_mbf(mbfid, msg, msgsz) tsnd_mbf(mbfid, msg, msgsz, TMO_POL)
#define rcv_mbf(mbfid, msg, msgsz) trcv_mbf(mbfid, msg, msgsz, TMO_FEVR)
#define prcv_mbf(mbfid, msg, msgsz) trcv_mbf(mbfid, msg, msgsz, TMO_POL)
#define rcv_msg(ppk_msg, mbxid)     trcv_msg(ppk_msg, mbxid, TMO_FEVR)
#define prcv_msg(ppk_msg, mbxid)    trcv_msg(ppk_msg, mbxid, TMO_POL)
#define get_blk(p_blk, mplid, blksz)  tget_blk(p_blk, mplid, blksz, TMO_FEVR)
#define pget_blk(p_blk, mplid, blksz) tget_blk(p_blk, mplid, blksz, TMO_POL)
#define get_blf(p_blf, mpfid)         tget_blf(p_blf, mpfid, TMO_FEVR)
#define pget_blf(p_blf, mpfid)        tget_blf(p_blf, mpfid, TMO_POL)


// system call from interrupt handler 
extern ER   iwup_tsk( ID tskid );
extern ER   isig_sem( ID semid );
extern ER   iset_flg( ID flgid, UINT setptn );
extern ER   isnd_msg( ID mbxid, T_MSG *pk_msg );
extern ER   ipsnd_mbf( ID mbfid, VP msg, INT msgsz );
extern ER   ipget_blk( VP *p_blk, ID mplid, INT blksz );
extern ER   ipget_blf( VP *p_blf, ID mpfid );
extern ER   irel_blk( ID mplid, VP blk );
extern ER   irel_blf( ID mpfid, VP blf );


extern ER vcre_tsk( ID tskid, FP task, PRI tskpri, UW istkadr );
extern ER vcre_mbf( ID mbfid, VP  msgbuf, INT bufsz, INT maxmsz );
extern ER vcre_mpl( ID mplid, VP start_addr, VP end_addr );
extern ER vcre_mpf( ID mpfid, VP start_addr, VP end_addr, INT blfsz );
extern ER vchg_semcnt(ID semid, UB semcnt);
extern int vchk_timer(void);

extern void sys_clk(void);
extern void sys_sta(void);
extern void sys_ini(void);

extern ER ini_sem( ID semid, UH smphMax, UH smphCnt );

// If you change resource number please edit following.
#define TSK_NUM     48               // max task, 1 to 255 
#define SMPH_NUM    20              // max semaphore, 0 to 255
#define FLG_NUM     20               // max flag, 0 to 255
#define MLBX_NUM    (TSK_NUM+1)         // max mailbox, 0 to 255 
#define MSGBUF_NUM  1               // max masage buffer, 0 to 255 
#define MPLBLK_NUM 1               // max variable-memory pool block, 0 to 255 
#define MPFBLK_NUM  1               // max fixed-memory pool block, 0 to 255 

#define CYCHNDR_NUM  4              // max cyclic handler, 0 to 255 
#define ALMHNDR_NUM  1              // max alarm handler, 0 to 255 

#define MAX_TSKPRI  8               // max task priority, 1 to 9

#define SMPH_CNT    1               // semaphore count, 1 to 255
#define WUP_CNT     1               // max wakeup count 1 to 65535

 
#define INT_TIME    10               // timer interrupt time (msec)

// If you use global pointer please edit here
#ifdef USE_GP
#define GLOBAL_POINTER  0x00000000  // global pointer (%r8 value)
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -