📄 rtos.h
字号:
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 + -