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

📄 ja_libr.h

📁 MicroChip等单片机开发的专业RTOS,源代码
💻 H
字号:
#ifndef _JA_LIBR_H
#define _JA_LIBR_H

#ifndef OS_LIB
  #include <jacnfg.h>
#else
  #define OS_OPTI_SEM
  #define OS_OPTI_SEMT
  #define OS_OPTI_MSG
  #define OS_OPTI_MSGT
  #define OS_OPTI_FLAGS
  #define OS_OPTI_DELAY
#endif

#ifndef OS_Lib_Type

  #ifndef OS_MEM_MODEL
    #define OS_MEM_MODEL COMPACT
  #endif

#else

  #define OSL_NOOPT    0x8000L
  #define OSL_TIMER    0x0010L
  #define OSL_EVENT    0x0020L
  #define OSL_TIMEOUT  0x0040L
  #define OSL_NOPRIO   0x0080L
  #define OSL_TIMER16  0x0100L
  #define OSL_MSG16    0x0200L
  #define OSL_SEM16    0x0400L
  #define OSL_SH_LOCK  0x0001L			// S
  #define OSL_EV_FORG  0x0002L			// Event in foreground
  #define OSL_EV_BACKG 0x0004L			// Event in background
  #define OSL_WORKSPC  0x0008L			
  #define OSL_NOIDLE   0x0800L

  #define OSL_COMPACT  4
  #define OSL_SMALL    2
  #define OSL_NORMAL   1

  #define OS_ntl  OSL_NOOPT + OSL_SH_LOCK //OSL_NOIDLE +
  #define OS_ntln OSL_NOOPT + OSL_SH_LOCK + OSL_NOPRIO //OSL_NOIDLE +
  #define OS_ctl  OSL_NOOPT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG + OSL_SH_LOCK
  #define OS_cil  OSL_NOOPT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG + OSL_EV_FORG + OSL_SH_LOCK
  #define OS_dtl  OSL_NOOPT + OSL_TIMER + OSL_EV_BACKG + OSL_SH_LOCK
  #define OS_dil  OSL_NOOPT + OSL_TIMER + OSL_EV_BACKG + OSL_EV_FORG + OSL_SH_LOCK
  #define OS_etl  OSL_NOOPT + OSL_EVENT + OSL_EV_BACKG + OSL_SH_LOCK
  #define OS_eil  OSL_NOOPT + OSL_EVENT + OSL_EV_BACKG + OSL_EV_FORG + OSL_SH_LOCK
  #define OS_ttl  OSL_NOOPT + OSL_TIMEOUT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG + OSL_SH_LOCK
  #define OS_til  OSL_NOOPT + OSL_TIMEOUT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG + OSL_EV_FORG + OSL_SH_LOCK
  #define OS_ctln OSL_NOOPT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG + OSL_SH_LOCK + OSL_NOPRIO
  #define OS_ciln OSL_NOOPT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG + OSL_EV_FORG + OSL_SH_LOCK + OSL_NOPRIO
  #define OS_dtln OSL_NOOPT + OSL_TIMER + OSL_EV_BACKG + OSL_SH_LOCK + OSL_NOPRIO
  #define OS_diln OSL_NOOPT + OSL_TIMER + OSL_EV_BACKG + OSL_EV_FORG + OSL_SH_LOCK + OSL_NOPRIO
  #define OS_etln OSL_NOOPT + OSL_EVENT + OSL_EV_BACKG + OSL_SH_LOCK + OSL_NOPRIO
  #define OS_eiln OSL_NOOPT + OSL_EVENT + OSL_EV_BACKG + OSL_EV_FORG + OSL_SH_LOCK + OSL_NOPRIO
  #define OS_ttln OSL_NOOPT + OSL_TIMEOUT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG + OSL_SH_LOCK + OSL_NOPRIO
  #define OS_tiln OSL_NOOPT + OSL_TIMEOUT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG + OSL_EV_FORG + OSL_SH_LOCK + OSL_NOPRIO

  #define OS_ctl2 OSL_NOOPT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG + OSL_SH_LOCK + OSL_MSG16 + OSL_SEM16 + OSL_TIMER16
  #define OS_cil2 OSL_NOOPT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG + OSL_EV_FORG + OSL_SH_LOCK + OSL_MSG16 + OSL_SEM16 + OSL_TIMER16
  #define OS_etl2 OSL_NOOPT + OSL_EVENT + OSL_EV_BACKG + OSL_SH_LOCK + OSL_MSG16 + OSL_SEM16 + OSL_TIMER16
  #define OS_eil2 OSL_NOOPT + OSL_EVENT + OSL_EV_BACKG + OSL_EV_FORG + OSL_SH_LOCK + OSL_MSG16 + OSL_SEM16 + OSL_TIMER16
  #define OS_ttl2 OSL_NOOPT + OSL_TIMEOUT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG + OSL_SH_LOCK + OSL_MSG16 + OSL_SEM16 + OSL_TIMER16
  #define OS_til2 OSL_NOOPT + OSL_TIMEOUT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG + OSL_EV_FORG + OSL_SH_LOCK + OSL_MSG16 + OSL_SEM16 + OSL_TIMER16
  #define OS_ctln2 OSL_NOOPT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG + OSL_SH_LOCK + OSL_NOPRIO + OSL_MSG16 + OSL_SEM16 + OSL_TIMER16
  #define OS_ciln2 OSL_NOOPT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG + OSL_EV_FORG + OSL_SH_LOCK + OSL_NOPRIO + OSL_MSG16 + OSL_SEM16 + OSL_TIMER16
  #define OS_etln2 OSL_NOOPT + OSL_EVENT + OSL_EV_BACKG + OSL_SH_LOCK + OSL_NOPRIO + OSL_MSG16 + OSL_SEM16 + OSL_TIMER16
  #define OS_eiln2 OSL_NOOPT + OSL_EVENT + OSL_EV_BACKG + OSL_EV_FORG + OSL_SH_LOCK + OSL_NOPRIO + OSL_MSG16 + OSL_SEM16 + OSL_TIMER16
  #define OS_ttln2 OSL_NOOPT + OSL_TIMEOUT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG + OSL_SH_LOCK + OSL_NOPRIO + OSL_MSG16 + OSL_SEM16 + OSL_TIMER16
  #define OS_tiln2 OSL_NOOPT + OSL_TIMEOUT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG + OSL_EV_FORG + OSL_SH_LOCK + OSL_NOPRIO + OSL_MSG16 + OSL_SEM16 + OSL_TIMER16

  #define OS_ntu  OSL_NOOPT //OSL_NOIDLE
  #define OS_ntun OSL_NOOPT + OSL_NOPRIO //OSL_NOIDLE +
  #define OS_ctu  OSL_NOOPT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG
  #define OS_ciu  OSL_NOOPT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG + OSL_EV_FORG
  #define OS_dtu  OSL_NOOPT + OSL_TIMER + OSL_EV_BACKG
  #define OS_etu  OSL_NOOPT + OSL_EVENT + OSL_EV_BACKG
  #define OS_eiu  OSL_NOOPT + OSL_EVENT + OSL_EV_BACKG + OSL_EV_FORG
  #define OS_ttu  OSL_NOOPT + OSL_TIMEOUT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG
  #define OS_tiu  OSL_NOOPT + OSL_TIMEOUT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG + OSL_EV_FORG
  #define OS_ctun OSL_NOOPT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG  + OSL_NOPRIO
  #define OS_ciun OSL_NOOPT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG + OSL_EV_FORG  + OSL_NOPRIO
  #define OS_dtun OSL_NOOPT + OSL_TIMER + OSL_EV_BACKG  + OSL_NOPRIO
  #define OS_etun OSL_NOOPT + OSL_EVENT + OSL_EV_BACKG  + OSL_NOPRIO
  #define OS_eiun OSL_NOOPT + OSL_EVENT + OSL_EV_BACKG + OSL_EV_FORG  + OSL_NOPRIO
  #define OS_ttun OSL_NOOPT + OSL_TIMEOUT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG  + OSL_NOPRIO
  #define OS_tiun OSL_NOOPT + OSL_TIMEOUT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG + OSL_EV_FORG  + OSL_NOPRIO

  #define OS_ctu2 OSL_NOOPT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG   + OSL_MSG16 + OSL_SEM16 + OSL_TIMER16
  #define OS_ciu2 OSL_NOOPT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG + OSL_EV_FORG   + OSL_MSG16 + OSL_SEM16 + OSL_TIMER16
  #define OS_dtu2 OSL_NOOPT + OSL_TIMER + OSL_EV_BACKG + OSL_TIMER16
  #define OS_etu2 OSL_NOOPT + OSL_EVENT + OSL_EV_BACKG   + OSL_MSG16 + OSL_SEM16 + OSL_TIMER16
  #define OS_eiu2 OSL_NOOPT + OSL_EVENT + OSL_EV_BACKG + OSL_EV_FORG   + OSL_MSG16 + OSL_SEM16 + OSL_TIMER16
  #define OS_ttu2 OSL_NOOPT + OSL_TIMEOUT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG   + OSL_MSG16 + OSL_SEM16 + OSL_TIMER16
  #define OS_tiu2 OSL_NOOPT + OSL_TIMEOUT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG + OSL_EV_FORG   + OSL_MSG16 + OSL_SEM16 + OSL_TIMER16
  #define OS_ctun2 OSL_NOOPT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG  + OSL_NOPRIO + OSL_MSG16 + OSL_SEM16 + OSL_TIMER16
  #define OS_ciun2 OSL_NOOPT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG + OSL_EV_FORG  + OSL_NOPRIO + OSL_MSG16 + OSL_SEM16 + OSL_TIMER16
  #define OS_dtun2 OSL_NOOPT + OSL_TIMER + OSL_EV_BACKG  + OSL_NOPRIO + OSL_TIMER16
  #define OS_etun2 OSL_NOOPT + OSL_EVENT + OSL_EV_BACKG  + OSL_NOPRIO + OSL_MSG16 + OSL_SEM16 + OSL_TIMER16
  #define OS_eiun2 OSL_NOOPT + OSL_EVENT + OSL_EV_BACKG + OSL_EV_FORG  + OSL_NOPRIO + OSL_MSG16 + OSL_SEM16 + OSL_TIMER16
  #define OS_ttun2 OSL_NOOPT + OSL_TIMEOUT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG  + OSL_NOPRIO + OSL_MSG16 + OSL_SEM16 + OSL_TIMER16
  #define OS_tiun2 OSL_NOOPT + OSL_TIMEOUT + OSL_TIMER + OSL_EVENT + OSL_EV_BACKG + OSL_EV_FORG  + OSL_NOPRIO + OSL_MSG16 + OSL_SEM16 + OSL_TIMER16

  #undef  OS_USE_PRIO
  #ifndef OS_MAX_PRIO
    #if OS_Lib_Type & OSL_NOPRIO
      #define OS_MAX_PRIO 0
    #else
      #define OS_MAX_PRIO 1
      #define OS_USE_PRIO
    #endif
  #endif

  #undef  OS_DELAY_SIZE
  #if OS_Lib_Type & OSL_TIMER
    #if OS_Lib_Type & OSL_TIMER16
      #define OS_DELAY_SIZE 2
    #else
      #define OS_DELAY_SIZE 1
    #endif
  #else
    #define OS_DELAY_SIZE 0
  #endif

  #undef  OS_USE_TIMEOUT
  #if OS_Lib_Type & OSL_TIMEOUT
    #define OS_USE_TIMEOUT
  #endif

  #undef  OS_MSG_CVALIF
  #if OS_Lib_Type & OSL_MSG16
    #define OS_MSG_CVALIF OS_MSG_FAR
  #else
    #define OS_MSG_CVALIF OS_MSG_NEAR
  #endif

  #undef  OS_SEM_SIZE
  #if OS_Lib_Type & OSL_SEM16
    #define OS_SEM_SIZE 2
  #else
    #define OS_SEM_SIZE 1
  #endif


  #ifndef OS_MEM_MODEL
    #ifndef OS_LIB
      #define OS_MEM_MODEL COMPACT
    #else
      #if OS_LIB == OSL_COMPACT
        #define OS_MEM_MODEL COMPACT
      #elif OS_LIB == OSL_SMALL
        #define OS_MEM_MODEL SMALL
      #elif OS_LIB == OSL_SMALL + OSL_COMPACT
        #define OS_MEM_MODEL SMALL+COMPACT
      #elif OS_LIB == OSL_NORMAL
        #define OS_MEM_MODEL NORMAL
      #endif
    #endif
  #endif

  #undef  OS_SCHED_LOCKED
  #if OS_Lib_Type & OSL_SH_LOCK
    #define OS_SCHED_LOCKED TRUE
  #else
    #define OS_SCHED_LOCKED FALSE
  #endif

  #undef  OS_USE_IDLE_TASK
  #if OS_Lib_Type & OSL_NOIDLE
  #else
    #define OS_USE_IDLE_TASK
  #endif

  #undef  OS_FAST_CALL
  //#undef  OS_USE_SOFT_DELAY

  #undef  OS_USE_EV_EVRW
  #undef  OS_PROTECTION_DISABLE
  #if   (OS_Lib_Type & OSL_EV_FORG)
    #define OS_PROTECTION_DISABLE FALSE
    #define OS_USE_EV_EVRW
  #else
    #define OS_PROTECTION_DISABLE TRUE
  #endif

  #if OS_Lib_Type & OSL_NOIDLE
    #define OS_NO_EVENTS
  #endif

  #undef  OS_USE_CSEM
  #undef  OS_USE_BSEM
  #undef  OS_USE_MSG
  #undef  OS_USE_FLAGS
  #if OS_Lib_Type & OSL_EVENT
    #define OS_USE_CSEM
    #define OS_USE_BSEM
    #define OS_USE_MSG
    #define OS_USE_FLAGS
    #if (OS_PROTECTION_DISABLE == FALSE) && defined(OS_LIB)
      #undef  OS_USE_CSEM_I
      #undef  OS_USE_BSEM_I
      #undef  OS_USE_MSG_I
      #undef  OS_USE_FLAGS_I
      #define OS_USE_CSEM_I
      #define OS_USE_BSEM_I
      #define OS_USE_MSG_I
      #define OS_USE_FLAGS_I
    #endif
  #endif

  #undef  OS_READ_TASK_STATUS
  #define OS_READ_TASK_STATUS

  #undef  OS_USE_TASK_STOP
  #define OS_USE_TASK_STOP

  #undef  OS_USE_TASK_RESUME
  #define OS_USE_TASK_RESUME

  //#define OS_USE_SW_HOOK
  //#define OS_USE_RTN_HOOK


#endif //ifndef OS_Lib_Type

#endif // _JA_LIBR_H

⌨️ 快捷键说明

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