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

📄 salvolib.h

📁 嵌入式操作系统Salvo 在单片机C8051F350上的移植
💻 H
📖 第 1 页 / 共 3 页
字号:
#define OSENABLE_TIMEOUTS               TRUE

/*                                                          */
/* tiny (bundled-only version) libraries                    */
/*                                                          */
#elif (OSLIBRARY_CONFIG == OSY)

#define OSBYTES_OF_DELAYS               1
#define OSBYTES_OF_TICKS                0
#define OSDISABLE_TASK_PRIORITIES       TRUE
#define OSENABLE_BINARY_SEMAPHORES      TRUE
#define OSENABLE_CYCLIC_TIMERS          FALSE
#define OSENABLE_EVENT_FLAGS            FALSE
#define OSENABLE_IDLING_HOOK            TRUE
#define OSENABLE_MESSAGES               FALSE
#define OSENABLE_MESSAGE_QUEUES         FALSE
#define OSENABLE_SEMAPHORES             TRUE
#define OSENABLE_TIMEOUTS               FALSE


#else

#error salvolib.h: Unknown library configuration -- aborting.

#endif


/************************************************************/
/*                                                          */
/* OSLIBRARY_VARIANT settings --  OSCALL_OSXYZ settings     */
/*                                                          */
#if   (OSLIBRARY_VARIANT == OSA)


#if  (OSCOMPILER == OSHT_PICC) || (OSCOMPILER == OSHT_V8C) \
  || (OSCOMPILER == OSKEIL_C51)

#define OSCALL_OSCREATEEVENT            OSFROM_ANYWHERE
#define OSCALL_OSGETPRIOTASK            OSFROM_ANYWHERE
#define OSCALL_OSGETSTATETASK           OSFROM_ANYWHERE
#define OSCALL_OSMSGQCOUNT              OSFROM_ANYWHERE
#define OSCALL_OSMSGQEMPTY              OSFROM_ANYWHERE
#define OSCALL_OSRETURNEVENT            OSFROM_ANYWHERE
#define OSCALL_OSSIGNALEVENT            OSFROM_ANYWHERE
#define OSCALL_OSSTARTTASK              OSFROM_ANYWHERE

#endif


#elif (OSLIBRARY_VARIANT == OSB)

#if  (OSCOMPILER == OSHT_PICC) || (OSCOMPILER == OSHT_V8C)

#define OSCALL_OSCREATEEVENT            OSFROM_BACKGROUND
#define OSCALL_OSGETPRIOTASK            OSFROM_BACKGROUND
#define OSCALL_OSGETSTATETASK           OSFROM_BACKGROUND
#define OSCALL_OSMSGQCOUNT              OSFROM_BACKGROUND
#define OSCALL_OSMSGQEMPTY              OSFROM_BACKGROUND
#define OSCALL_OSRETURNEVENT            OSFROM_BACKGROUND
#define OSCALL_OSSIGNALEVENT            OSFROM_BACKGROUND
#define OSCALL_OSSTARTTASK              OSFROM_BACKGROUND

#elif (OSCOMPILER == OSKEIL_C51)

#define OSPRESERVE_INTERRUPT_MASK        FALSE

#endif    
    
                                        
#elif (OSLIBRARY_VARIANT == OSE)

#if   (OSCOMPILER == OSKEIL_C51)

#define OSPRESERVE_INTERRUPT_MASK        TRUE

#endif


#elif (OSLIBRARY_VARIANT == OSF) 

#if  (OSCOMPILER == OSHT_PICC) || (OSCOMPILER == OSHT_V8C)

#define OSCALL_OSCREATEEVENT            OSFROM_FOREGROUND
#define OSCALL_OSGETPRIOTASK            OSFROM_FOREGROUND
#define OSCALL_OSGETSTATETASK           OSFROM_FOREGROUND
#define OSCALL_OSMSGQCOUNT              OSFROM_FOREGROUND
#define OSCALL_OSMSGQEMPTY              OSFROM_FOREGROUND
#define OSCALL_OSRETURNEVENT            OSFROM_FOREGROUND
#define OSCALL_OSSIGNALEVENT            OSFROM_FOREGROUND
#define OSCALL_OSSTARTTASK              OSFROM_FOREGROUND

#endif

#elif (OSLIBRARY_VARIANT == OSI) 

/* nothing doing here -- used by IAR MSP430 C compiler, */
/*  among others ...                                    */

#elif (OSLIBRARY_VARIANT != OSNONE)

#error salvolib.h: Unknown library variant -- aborting.

#endif


/************************************************************/
/*                                                          */
/* OSLIBRARY_GLOBALS settings --  compiler-dependent        */
/*                                                          */
#if   (OSCOMPILER == OSMPLAB_C18)
    #if   (OSLIBRARY_GLOBALS == OSN)
    #define OSMPLAB_C18_LOC_ALL_NEAR        TRUE
    #elif (OSLIBRARY_GLOBALS == OSF)
    #define OSMPLAB_C18_LOC_ALL_NEAR        FALSE
    #else
    #error salvolib.h: Unknown library memory type -- aborting.
    #endif /* #if OSLIBRARY_GLOBALS ... */


#elif (OSCOMPILER == OSKEIL_C51)
    #if   (OSLIBRARY_GLOBALS == OSD)
    #define OSLOC_ALL                        data
    #elif (OSLIBRARY_GLOBALS == OSI)
    #define OSLOC_ALL                        idata
    #elif (OSLIBRARY_GLOBALS == OSX)
    #define OSLOC_ALL                        xdata
    #else
    #error salvolib.h: Unknown library memory type -- aborting.
    #endif /* #if OSLIBRARY_GLOBALS ... */


#elif (OSCOMPILER == OSHT_8051C)
    #if   (OSLIBRARY_GLOBALS == OSD)
    #define OSLOC_ALL                        near
    #elif (OSLIBRARY_GLOBALS == OSI)
    #define OSLOC_ALL                        idata
    #elif (OSLIBRARY_GLOBALS == OSX)
    #define OSLOC_ALL                        far
    #else
    #error salvolib.h: Unknown library memory type -- aborting.
    #endif /* #if OSLIBRARY_GLOBALS ... */
    
    
#elif ( (OSCOMPILER == OSIAR_ICC) && (OSTARGET == OSPIC18 ) )
    #if   (OSLIBRARY_GLOBALS == OSN)
    #define OSLOC_ALL                        __bank0
    #elif (OSLIBRARY_GLOBALS == OSF)
    #define OSLOC_ALL                        __bank
    #else
    #error salvolib.h: Unknown library memory type -- aborting.
    #endif /* #if OSLIBRARY_GLOBALS ... */
    
#endif /* #if OSCOMPILER ... */


/************************************************************/
/************************************************************/
/*                                                          */
/* task and event limits for all libraries. These limits    */
/*  have no effect if OSSET_LIMITS is FALSE.                */
/*                                                          */
/* tiny and SE don't support event flags or message queues  */
/*                                                          */
#if (OSTARGET == OSPIC16) \
 || (OSTARGET == OSPIC17) \
 || (OSTARGET == OSPIC18) \
 || (OSTARGET == OSVAV8) \
 || (OSTARGET == OSM68HC11) \
 || (OSTARGET == OSI8051) \
 || (OSTARGET == OSAVR) \
 || (OSTARGET == OSMSP430) \
 || (OSTARGET == OSEZ8) \
 || (OSTARGET == OSTMS320C24X) \
 || (OSTARGET == OSTMS320C28X) 

#define OSLIBRARY_EVENTS                5
#define OSLIBRARY_TASKS                 3

#if (OSLIBRARY_CONFIG == OSS) \
 || (OSLIBRARY_CONFIG == OSY) 
#define OSLIBRARY_EVENT_FLAGS           0
#define OSLIBRARY_MESSAGE_QUEUES        0
#else
#define OSLIBRARY_EVENT_FLAGS           1
#define OSLIBRARY_MESSAGE_QUEUES        1
#endif

#elif (OSTARGET == OSPIC12)

#define OSLIBRARY_EVENTS                4
#define OSLIBRARY_TASKS                 3
#define OSLIBRARY_EVENT_FLAGS           1
#define OSLIBRARY_MESSAGE_QUEUES        0

#elif (OSTARGET == OSIX86) 

#define OSLIBRARY_EVENTS                25
#define OSLIBRARY_TASKS                 25
#define OSLIBRARY_EVENT_FLAGS           25
#define OSLIBRARY_MESSAGE_QUEUES        25

#endif

#define OSLIB_SE_EVENTS_LIMIT           12
#define OSLIB_SE_TASKS_LIMIT            7




/************************************************************/
/************************************************************/
/*                                                          */
/* this section differentiates between library generation   */
/*  and library usage (freeware or standard).               */
/*                                                          */
/* library generation -- use maximum allowed                */
/*                                                          */
#if OSMAKE_LIBRARY
                                            
#define OSTASKS                         OSLIBRARY_TASKS	 


#if (OSLIBRARY_CONFIG == OSA) \
 || (OSLIBRARY_CONFIG == OSE) \
 || (OSLIBRARY_CONFIG == OSS) \
 || (OSLIBRARY_CONFIG == OST) \
 || (OSLIBRARY_CONFIG == OSY)
 
#define OSEVENT_FLAGS                   OSLIBRARY_EVENT_FLAGS
#define OSEVENTS                        OSLIBRARY_EVENTS
#define OSMESSAGE_QUEUES                OSLIBRARY_MESSAGE_QUEUES
#else
#define OSEVENT_FLAGS                   0
#define OSEVENTS                        0
#define OSMESSAGE_QUEUES                0
#endif

/*                                                          */
/* library use -- override up to maximum allowed for        */
/*  freeware libraries, and allow full range of values for  */
/*  standard libraries.                                     */
/*                                                          */
#else /* #if OSMAKE_LIBRARY */

/*                                                          */
/* events can be overridden downwards, but not to 0.        */
/* event flags and message queues can be overriden down to  */
/*  0 when these event types aren't used.                   */
/*                                                          */
#if (OSLIBRARY_CONFIG == OSA) \
 || (OSLIBRARY_CONFIG == OSE) \
 || (OSLIBRARY_CONFIG == OSS) \
 || (OSLIBRARY_CONFIG == OST) \
 || (OSLIBRARY_CONFIG == OSY)

#if !defined(OSEVENTS)
#define OSEVENTS                        OSLIBRARY_EVENTS
#elif OSEVENTS == 0
#error salvolib.h: Library requires OSEVENTS >= 0 -- aborting.
#elif ( (OSEVENTS > OSLIBRARY_EVENTS) \
     && (OSLIBRARY_TYPE == OSF) ) 
#error salvolib.h: OSEVENTS exceeds freeware library limit -- aborting.
#elif ( (OSEVENTS > OSLIB_SE_EVENTS_LIMIT) \
     && ( (OSLIBRARY_TYPE == OSL) && (OSLIBRARY_CONFIG == OSS) ) )
#error salvolib.h: OSEVENTS exceeds SE library limit -- aborting.
#endif

/*                                                          */
/* note that these limits (event flags and message queues)  */
/*  are not "hard" in that there is not limit-checking on   */
/*  on particular event types -- only on all events. These  */
/*  limits are here mainly because the Salvo Lite apps would*/
/*  otherwise have too large a default RAM utilization in   */
/*  the mem.c module.                                       */ 
/*                                                          */           
#if !defined(OSEVENT_FLAGS)
#define OSEVENT_FLAGS                   OSLIBRARY_EVENT_FLAGS
#elif ( (OSEVENT_FLAGS > OSLIBRARY_EVENT_FLAGS) \
     && ( (OSLIBRARY_TYPE == OSF) ) )
#error salvolib.h: OSEVENT_FLAGS exceeds freeware library limit -- aborting.
#endif

#if !defined(OSMESSAGE_QUEUES)
#define OSMESSAGE_QUEUES                OSLIBRARY_MESSAGE_QUEUES
#elif ( (OSMESSAGE_QUEUES > OSLIBRARY_MESSAGE_QUEUES) \
     && ( (OSLIBRARY_TYPE == OSF) ) )
#error salvolib.h: OSMESSAGE_QUEUES exceeds freeware library limit -- aborting.
#endif

#else /* #if (OSLIBRARY_CONFIG ... */

#if !defined(OSEVENTS)
#define OSEVENTS                        0
#elif OSEVENTS > 0
#error salvolib.h: Library incompatible with OSEVENTS > 0 -- aborting.
#endif

#if !defined(OSEVENT_FLAGS)
#define OSEVENT_FLAGS                   0
#elif OSEVENT_FLAGS > 0
#error salvolib.h: Library incompatible with OSEVENT_FLAGS > 0 -- aborting.
#endif

⌨️ 快捷键说明

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