?? spos.h
字號:
/******************************************
** Mini OS 1.5.0 head file **
** Author :Taylor Wang **
** Date :2003/1/22 **
*******************************************/
#ifndef __SPOS_H__
#define __SPOS_H__
#include "sposconfig.h"
#include "sysstruct.h"
#include "sposbody.h"
//define OS err value
#define OS_NO_ERR 0 //no err
#define OS_IN_ISR -1
#define OS_TIME_OUT -2
//Init------------------------------------------
#define OS_OVER_MAX -10
#define OS_UNDER_ONE -11
// Start
#define OS_NO_TASK -10
//Task----------------------------------------------
#define OS_PRIO_INVALID -5
#define OS_PRIO_EXIST -6
#define OS_PRIO_NULL -7
// TaskCreate
#define OS_NO_TCB -10
// TaskResume
#define OS_RESUME_SELF -10
#define OS_NO_SUSPEND -11
// time resume
#define OS_NO_TIMEDLY -10
//Event------------------------------------------
#define OS_PEVENT_NULL -5
#define OS_ECB_TYYPE_ERR -6
// MboxPost
#define OS_MBOX_FULL -10
// Qpost and Qpost Front
#define OS_QUEUE_FULL -10
// memory----------------------------------------
#define OS_MEM_HANDLE_NULL -5
#define OS_MEM_INV_ADDR -10
#define OS_MEM_INV_BLKS -11
#define OS_MEM_INV_SIZE -12
#define OS_MEM_NOMCB -13
// memory put
#define OS_MEM_PBLK_NULL -11
//Set vector-------------------------------------
#define OS_NO_IFT -10
// API function
// System initialize
extern int SpSInit(void);
extern int SpSStart(void);
// Task Api
extern void SpSSchedLock(void);
extern void SpSSchedUnLock(void);
extern int SpSTaskCreate(pTask function,void *pParameter,void *pStackTop,int iPrio);
extern int SpSTaskExit(void);
extern int SpSTaskDel(unsigned int iPrio);
extern int SpSTaskResume(int iPrio);
extern int SpSTaskSuspend(int iPrio);
extern void SpSTimeDly(unsigned int iTimeCount);
extern int SpSTimeDlyResume(int iPrio);
extern unsigned long int SpSGetTickCount(void);
extern int SpSGetPri(void);
// Event api
//semaphore
extern HEvent SpSSemCreate(unsigned int iValue);
extern int SpSSemPend(HEvent hEvent,unsigned int iTimeOut);
extern int SpSSemPost(HEvent hEvent);
extern int SpSSemAccept(HEvent hEvent);
//Mailbox
extern HEvent SpSMboxCreate(void* pMail);
extern void* SpSMboxPend(HEvent hEvent,unsigned int iTimeOut,int* err);
extern int SpSMboxPost(HEvent hEvent,void* pMail);
extern void* SpSMboxAccept(HEvent hEvent);
//Queue
extern HEvent SpSQCreate(void* pStart,unsigned int iSize);
extern void* SpSQPend(HEvent hEvent,unsigned int iTimeOut,int* err);
extern int SpSQPost(HEvent hEvent,void* pMsg);
extern int SpSQPostFront(HEvent hEvent,void* pMsg);
extern void* SpSQAccept(HEvent hEvent);
extern void SpSTimeTick(void);
//mm
extern HMem SpSMemCreate(void* pStart,unsigned int iBlock,unsigned int iSize,int *err);
extern void* SpSMemGet(HMem hMem);
extern void* SpSMemGetWait(HMem hMem,unsigned int iTimeOut,int *err);
extern int SpSMemPut(HMem hMem,void* pBlk);
//other
extern int SpSVersion(void);
//System macro define
#define SpFBreak() \
__asm__("break")
//Automatic test function prototype and macro
#ifdef _DEBUG
#include "SpTPErr.h"
extern int SpTPTaskCreate(pTask function,void *pParameter,void *pStackTop,int iPrio);
extern int SpTPTaskExit(void);
extern int SpTPTaskDel(unsigned int iPrio);
extern int SpTPTaskResume(int iPrio);
extern int SpTPTaskSuspend(int iPrio);
extern void SpTPTimeDly(unsigned int Time);
extern int SpTPTimeDlyResume(int iPrio);
extern int SpTPSemPend (HEvent hEvent, unsigned int Time);
extern int SpTPSemPost (HEvent hEvent);
extern void* SpTPMboxPend (HEvent hEvent,unsigned int Time,int* err);
extern int SpTPMboxPost(HEvent hEvent,void* pMail);
extern void* SpTPQPend(HEvent hEvent,unsigned int Time,int* err);
extern int SpTPQPost(HEvent hEvent,void* pMsg);
extern int SpTPQPostFront(HEvent hEvent,void* pMsg);
extern void* SpTPMemGetWait(HMem hMem,unsigned int Time,int *err);
extern int SpTPMemPut(HMem hMem,void* pBlk);
extern void SpSCheckStack(void* top,void* bottom);
#define SpSTaskCreate SpTPTaskCreate
#define SpSTaskExit SpTPTaskExit
#define SpSTaskDel SpTPTaskDel
#define SpSTaskResume SpTPTaskResume
#define SpSTaskSuspend SpTPTaskSuspend
#define SpSTimeDly SpTPTimeDly
#define SpSTimeDlyResume SpTPSTimeDlyResume
#define SpSSemPend SpTPSemPend
#define SpSSemPost SpTPSemPost
#define SpSMboxPend SpTPMboxPend
#define SpSMboxPost SpTPMboxPost
#define SpSQPend SpTPQPend
#define SpSQPost SpTPQPost
#define SpSQPostFront SpTPQPostFront
#define SpSMemGetWait SpTPMemGetWait
#define SpSMemPut SpTPMemPut
#else
#define SpSCheckStack(top,bottom) {}
#endif
// _DEBUG endif
#endif
//
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -