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

📄 rtos.h

📁 这是一个富士通单片机调试软件
💻 H
📖 第 1 页 / 共 4 页
字号:
OS_DEFFUNC void OS__PutMail1           (OS_MAILBOX OS_DEFPTR * pMB, const char* pmail);
OS_DEFFUNC void OS__PutMail1_Trace     (OS_MAILBOX OS_DEFPTR * pMB, const char* pmail);
OS_DEFFUNC char OS__PutMailCond1       (OS_MAILBOX OS_DEFPTR * pMB, const char* pmail);
OS_DEFFUNC char OS__PutMailCond1_Trace (OS_MAILBOX OS_DEFPTR * pMB, const char* pmail);
OS_DEFFUNC void OS__GetMail1           (OS_MAILBOX OS_DEFPTR * pMB, char* Result);
OS_DEFFUNC void OS__GetMail1_Trace     (OS_MAILBOX OS_DEFPTR * pMB, char* Result);
OS_DEFFUNC char OS__GetMailCond1       (OS_MAILBOX OS_DEFPTR * pMB, char* Result);
OS_DEFFUNC char OS__GetMailCond1_Trace (OS_MAILBOX OS_DEFPTR * pMB, char* Result);
OS_DEFFUNC void OS__DeleteMB           (OS_MAILBOX OS_DEFPTR * pThis);
OS_DEFFUNC void OS__DeleteMB_Trace     (OS_MAILBOX OS_DEFPTR * pThis);


#if OS_DEBUG ==0
  #define OS_GetMessageCnt(pMB) (*pMB).nofMsg
#else
  OS_DEFFUNC int  OS_GetMessageCnt(OS_MAILBOX OS_DEFPTR *);   /* get no. of available Messages */
#endif

#if OS_TRACE
        #define OS_CreateMB     OS__CreateMB_Trace
        #define OS_ClearMB      OS__ClearMB_Trace
        #define OS_PutMail      OS__PutMail_Trace
        #define OS_PutMailCond  OS__PutMailCond_Trace
        #define OS_GetMail      OS__GetMail_Trace
        #define OS_GetMailCond  OS__GetMailCond_Trace
        #define OS_PutMail1     OS__PutMail1_Trace
        #define OS_PutMailCond1 OS__PutMailCond1_Trace
        #define OS_GetMail1     OS__GetMail1_Trace
        #define OS_GetMailCond1 OS__GetMailCond1_Trace
        #define OS_DeleteMB     OS__DeleteMB_Trace
#else
        #define OS_CreateMB     OS__CreateMB
        #define OS_ClearMB      OS__ClearMB
        #define OS_PutMail      OS__PutMail
        #define OS_PutMailCond  OS__PutMailCond
        #define OS_GetMail      OS__GetMail
        #define OS_GetMailCond  OS__GetMailCond
        #define OS_PutMail1     OS__PutMail1
        #define OS_PutMailCond1 OS__PutMailCond1
        #define OS_GetMail1     OS__GetMail1
        #define OS_GetMailCond1 OS__GetMailCond1
        #define OS_DeleteMB     OS__DeleteMB
#endif

/*********************************************************************
*
*                      Events
*
**********************************************************************
*/

OS_DEFFUNC char OS__ClearEvents           (OS_TASK OS_DEFPTR *);
OS_DEFFUNC char OS__ClearEvents_Trace     (OS_TASK OS_DEFPTR *);
OS_DEFFUNC char OS__GetEventsOccured      (OS_TASK OS_DEFPTR *);
OS_DEFFUNC void OS__SignalEvent           (char Event, OS_TASK OS_DEFPTR *);
OS_DEFFUNC void OS__SignalEvent_Trace     (char Event, OS_TASK OS_DEFPTR *);
OS_DEFFUNC char OS__WaitEvent             (char EventMask);
OS_DEFFUNC char OS__WaitEvent_Trace       (char EventMask);
OS_DEFFUNC char OS__WaitEventTimed        (char EventMask, int TimeOut);
OS_DEFFUNC char OS__WaitEventTimed_Trace  (char EventMask, int TimeOut);


#define OS_GetEvents          OS_MARKCALL() OS__GetEvents
#define OS_GetEventsOccured   OS_MARKCALL() OS__GetEventsOccured

#if OS_TRACE
  #define OS_ClearEvents        OS_MARKCALL() OS__ClearEvents_Trace
  #define OS_SignalEvent        OS_MARKCALL() OS__SignalEvent_Trace
  #define OS_WaitEvent          OS_MARKCALL() OS__WaitEvent_Trace
  #define OS_WaitEventTimed     OS_MARKCALL() OS__WaitEventTimed_Trace
#else
  #define OS_ClearEvents        OS_MARKCALL() OS__ClearEvents
  #define OS_SignalEvent        OS_MARKCALL() OS__SignalEvent
  #define OS_WaitEvent          OS_MARKCALL() OS__WaitEvent
  #define OS_WaitEventTimed     OS_MARKCALL() OS__WaitEventTimed
#endif

/*********************************************************************
*
*                      Timers
*
**********************************************************************
*/

OS_DEFFUNC void    OS__CreateTimer          (OS_TIMER OS_DEFPTR *, OS_TIMERROUTINE* Callback, OS_UINT Timeout);
OS_DEFFUNC void    OS__CreateTimer_Trace    (OS_TIMER OS_DEFPTR *, OS_TIMERROUTINE* Callback, OS_UINT Timeout);
OS_DEFFUNC void    OS__DeleteTimer          (OS_TIMER OS_DEFPTR *);
OS_DEFFUNC void    OS__DeleteTimer_Trace    (OS_TIMER OS_DEFPTR *);
OS_DEFFUNC int     OS__GetTimerPeriod       (OS_TIMER OS_DEFPTR *);
OS_DEFFUNC OS_U8   OS__GetTimerStatus       (OS_TIMER OS_DEFPTR *);
OS_DEFFUNC int     OS__GetTimerValue        (OS_TIMER OS_DEFPTR *);
OS_DEFFUNC void    OS__SetTimerPeriod       (OS_TIMER OS_DEFPTR *, OS_UINT Period);
OS_DEFFUNC void    OS__SetTimerPeriod_Trace (OS_TIMER OS_DEFPTR *, OS_UINT Period);
OS_DEFFUNC void    OS__StartTimer           (OS_TIMER OS_DEFPTR *);
OS_DEFFUNC void    OS__StartTimer_Trace     (OS_TIMER OS_DEFPTR *);
OS_DEFFUNC void    OS__StopTimer            (OS_TIMER OS_DEFPTR *);
OS_DEFFUNC void    OS__StopTimer_Trace      (OS_TIMER OS_DEFPTR *);
OS_DEFFUNC void    OS__RetriggerTimer       (OS_TIMER OS_DEFPTR *);
OS_DEFFUNC void    OS__RetriggerTimer_Trace (OS_TIMER OS_DEFPTR *);

#define OS_CREATETIMER(pTimer,c,d) \
        OS_CreateTimer(pTimer,c,d); \
        OS_StartTimer(pTimer);

#define OS_GetTimerPeriod OS_MARKCALL() OS__GetTimerPeriod
#define OS_GetTimerStatus OS_MARKCALL() OS__GetTimerStatus
#define OS_GetTimerValue  OS_MARKCALL() OS__GetTimerValue

#if OS_TRACE
  #define OS_CreateTimer    OS_MARKCALL() OS__CreateTimer_Trace
  #define OS_DeleteTimer    OS_MARKCALL() OS__DeleteTimer_Trace
  #define OS_RetriggerTimer OS_MARKCALL() OS__RetriggerTimer_Trace
  #define OS_SetTimerPeriod OS_MARKCALL() OS__SetTimerPeriod_Trace
  #define OS_StartTimer     OS_MARKCALL() OS__StartTimer_Trace
  #define OS_StopTimer      OS_MARKCALL() OS__StopTimer_Trace
#else
  #define OS_CreateTimer    OS_MARKCALL() OS__CreateTimer
  #define OS_DeleteTimer    OS_MARKCALL() OS__DeleteTimer
  #define OS_RetriggerTimer OS_MARKCALL() OS__RetriggerTimer
  #define OS_SetTimerPeriod OS_MARKCALL() OS__SetTimerPeriod
  #define OS_StartTimer     OS_MARKCALL() OS__StartTimer
  #define OS_StopTimer      OS_MARKCALL() OS__StopTimer
#endif

/*********************************************************************
*
*                      Info routines
*
**********************************************************************
*/

OS_DEFFUNC const char* OS_GetCPU(void);
OS_DEFFUNC const char* OS_GetLibMode(void);
OS_DEFFUNC const char* OS_GetModel(void);
OS_DEFFUNC const char* OS_GetLibName(void);
#define OS_GetVersion() ((unsigned int)OS_VERSION)
#define OS_GetType() OS_GetLibMode()

/*********************************************************************
*
*                      Timing support
*
**********************************************************************

 New in V3.04, but not yet documented to the end user. Great for
 run-time measurement.
*/

#define OS_TIMING OS_U32
void    OS_Timing_Start(OS_TIMING* pCycle);
void    OS_Timing_End(OS_TIMING* pCycle);
OS_U32  OS_Timing_Getus(OS_TIMING* pCycle);
#define OS_Timing_GetCycles(pPara) (*pPara)

/*********************************************************************
*
*                      Advanced profiling support
*
**********************************************************************
*/
#if OS_PROFILE >= 1
  void OS_EnableProfiling(int Period);
  #define OS_DisableProfiling() { OS_ProfilingOn=0; }
#else
  #define OS_EnableProfiling(Period);
  #define OS_DisableProfiling()
#endif

/*
   *********************************************
   *                                           *
   *       Configuration                       *
   *                                           *
   *********************************************
*/

#ifdef __RTOS_ALLOWFRACT__  /* For K0 only */
  #define OS_CONFIG(f, div) \
  OS_TicksPerMS  = f/1000; \
  OS_IntMSInc    = div*1000L/f; \
  OS_IntTicksInc =  div-(f/1000)*(div*1000L/f);
#else
  #define OS_CONFIG(f, div) \
  OS_IntMSInc    = div*1000L/f;
#endif

/*********************************************************************
*
*                      Trace support
*
**********************************************************************

Trace support is enabled by defining OS_TRACE 1.
This is automatically done, when OS_LIBMODE_T is defined.

*/

#if OS_TRACE
  void OS_TraceVoid (OS_U8 id);
  void OS_TracePtr  (OS_U8 id, void* p);
  void OS_TraceData (OS_U8 id, int v);
  void OS_TraceDataPtr (OS_U8 id, int v, void*p);
  void OS_TraceU32Ptr  (OS_U8 id, OS_U32 p0, void*p1);
  void OS_TraceEnable(void);
  void OS_TraceDisable(void);
  void OS_TraceEnableAll(void);
  void OS_TraceDisableAll(void);
  void OS_TraceEnableId(OS_U8 id);
  void OS_TraceDisableId(OS_U8 id);
  void OS_TraceEnableFilterId(OS_U8 FilterIndex, OS_U8 id);
  void OS_TraceDisableFilterId(OS_U8 FilterIndex, OS_U8 id);
#else
  #define OS_TraceVoid(id)
  #define OS_TracePtr(id, p)
  #define OS_TraceData(id, v)
  #define OS_TraceDataPtr(id, v, p)
  #define OS_TraceU32Ptr(id, p0, p1)
  #define OS_TraceEnable()
  #define OS_TraceDisable()
  #define OS_TraceEnableAll()
        #define OS_TraceDisableAll()
        #define OS_TraceEnableId(id)
  #define OS_TraceDisableId(id)
  #define OS_TraceEnableFilterId(FilterIndex, id)
  #define OS_TraceDisableFilterId(FilterIndex, id)
#endif  

/*
*********************************************
*
*              RTOS misc.
*
*********************************************
The routines declared below are available on all targets.

*/

/* Routines in RTOSInit.c */
void   OS_InitHW(void);
void   OS_Idle(void);
void   OS_COM_Init(void);
OS_U32 OS_ConvertCycles2us(OS_U32 Cycles);
OS_U32 OS_GetTime_Cycles(void);
void   OS_Error(int code);
OS_DEFFUNC void OS_ChangeTask(void);

/* Routines in library */
OS_ASM_FUNC void OS_Start(void);            /* in RTOS.ASM */
OS_ASM_FUNC void OS_Switch(void);           /* in RTOS.ASM */
OS_ASM_FUNC void OS_SwitchFromInt(void);    /* in RTOS.ASM */

void OS_InitKern(void);         /* in OSKern.c */
char OS_OnTx(void);             /* in OSOnCom.c Returns 1 on last byte */
void OS_OnRx(unsigned char c);  /* in OSOnCom.c */
void OS_Send1(OS_U8 c);
void OS_SendString(const char* s);
OS_RX_CALLBACK* OS_SetRxCallback(OS_RX_CALLBACK* cb);


/*
*********************************************
*
*              RTOS misc. (optional)
*
*********************************************
The routines declared below are available on some targets
only. (Because they do not make much sense on others)
*/

/* Timing routines. Their existance depends on the CPU. In general,
  8-bit CPUs require both routines, where 16-bit CPUs require one
  and 32-bit CPUs require none of these.
*/
#ifndef OS_GetTime
  OS_DEFPTR int OS_GetTime(void);
#endif
#ifndef OS_GetTime32
  OS_DEFPTR OS_I32 OS_GetTime32(void);
#endif

void OS__di(void);
void OS__ei(void);
void OS__SaveIPL(void);
void OS__RestIPL(void);
void OS_SIM_Init(void);
OS_TICK_FUNC void OS_TickHandler(void);

/* Routines for the PC-version running in native mode (non-windows) */
void OS_SetIntFreq(OS_UINT f);
void OS_Exit(int code);
void OS_UseDos(void);
void OS_UnuseDos(void);
int  OS_GetKey(void);
int  OS_WaitKey(void);


/*
   *********************************************
   *                                           *
   *       for compatibility with old version  *
   *                                           *
   *********************************************

Please note: If you do not need compatibility to versions prior to
V2.40, you may erase the following lines !

*/

#ifdef OS_COMPATIBLE_TO_OLDVERSION

#define Delay             OS_Delay
#define DelayUntil        OS_DelayUntil
#define Terminate         OS_Terminate
#define WakeTask          OS_WakeTask
#define GetState          OS_GetState

#define SignalEvent       OS_SignalEvent
#define WaitEvent         OS_WaitEvent
#define GetEventsOccured  OS_GetEventsOccured
#define ClearEvents       OS_ClearEvents

#define StopTimer         OS_StopTimer
#define StartTimer        OS_StartTimer
#define RefreshTimer      OS_RetriggerTimer
#define RetriggerTimer    OS_RetriggerTimer
#define GetTimer          OS_GetTimer
#define CREATETIMER       OS_CREATETIMER


#define SignalCSema      OS_SignalCSema
#define WaitCSema        OS_WaitCSema
#define GetCSemaValue    OS_GetCSemaValue
#define CREATECSEMA      OS_CREATECSEMA

#define Use              OS_Use
#define Unuse            OS_Unuse
#define Request          OS_Request
#define GetResourceOwner OS_ResourceOwner
#define CREATERSEMA      OS_CREATERSEMA
#define GetSemaValue     OS_GetUseCnt
#define OS_GetUseCnt     OS_GetSemaValue


#define EnterInterrupt   OS_EnterInterrupt
#define LeaveInterrupt   OS_LeaveInterrupt
#define EnterIntStack    OS_EnterIntStack
#define LeaveIntStack    OS_LeaveIntStack
#define EnterRegion      OS_EnterRegion
#define LeaveRegion      OS_LeaveRegion

#define CreateMB         OS_CreateMB
#define ClearMB          OS_ClearMB
#define PutMail          OS_PutMail
#define PutMailCond      OS_PutMailCond
#define GetMail          OS_GetMail
#define GetMailCond      OS_GetMailCond
#define PutMail1         OS_PutMail1
#define PutMailCond1     OS_PutMailCond1
#define GetMail1         OS_GetMail1
#define GetMailCond1     OS_GetMailCond1
#define DeleteMB         OS_DeleteMB
#define GetMsgCnt        OS_GetMsgCnt
#define GetMessageCnt    OS_GetMsgCnt
#define OS_CREATEMB      OS_CreateMB

#define TASK    OS_TASK
#define TIMER   OS_TIMER
#define RSEMA   OS_RSEMA
#define CSEMA   OS_CSEMA
#define MAILBOX OS_MAILBOX

#define SDI()    OS_IncDI()
#define RI()     OS_DecRI()
#define di()     OS_DI()
#define ri()     OS_RestoreI()
#define OS_di()  OS_DI()
#define OS_ri()  OS_RestoreI()
#define OS_RI()  OS_DecRI()
#define OS_SDI() OS_IncDI()
#define OS_DisableI()    { OS_DI(); }
#define OS_EnableI()     { OS_EI(); }

#define RTOS_Error  OS_Error
#define OS_GoHalt   OS_Idle
#define pCurrentTask OS_pCurrentTask


/* Compatibility with pre V2.72 versions */

#define OS_TimeMS OS_GetTime()
#define    TimeMS OS_GetTime()

/* Compatibility with pre V3.00 versions */
#define OS_STAT_GetMaxLatency(pTask) 0
#define OS_GetMsgCnt OS_GetMessageCnt 

#endif

/* Compatibility with manual */
#define OS_CREATEMB          OS_CreateMB
#define OS_GetUseCnt         OS_GetSemaValue     
#define OS_WaitCSema_Timed   OS_WaitCSemaTimed
#define OS_WaitEvent_Timed       OS_WaitEventTimed


#ifdef __cplusplus
  }
#endif


#endif /* RTOS_H_INCLUDED */

⌨️ 快捷键说明

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