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

📄 core_b.h

📁 摩托罗拉MMC2107在ucosII的移植代码
💻 H
📖 第 1 页 / 共 3 页
字号:
        CORE_B_ERR_INVALID_VECTOR_OFFSET :                             \
    (vectorValue == 0) ?                                               \
        CORE_B_ERR_INVALID_VECTOR_VALUE :                              \
    CORE_B_InitVectorEntry_f( (vectorBasePtr),                         \
                              (vectorOffset),                          \
                              (vectorValue) )                          \
  )                                                                    \
  :                                                                    \
    CORE_B_InitVectorEntry_f( (vectorBasePtr),                         \
                              (vectorOffset),                          \
                              (vectorValue) )                          \
) /* End of CORE_B_InitVectorEntry Macro */


/**********************************************************************/
/* Macro:   CORE_B_SetProcessorStatus                                 */
/*                                                                    */
/* Purpose:     Call CORE_B_SetProcessorStatus_f function with        */
/*              optional parameter checking.                          */
/*                                                                    */ 
/* Input:                                                             */
/*   traceMode         : Processor trace mode                         */
/*   exceptionControl  : Enable or disable exceptions                 */
/*   instrBoundaryMode : Interrupt on instruction boundaries or       */
/*                       interrupt within instruction                 */ 
/*   interruptControl  : Enable or disable interrupts                 */
/*                                                                    */ 
/* Output:                                                            */
/*   CORE_B_ERR_NONE                  : No error                      */
/*   CORE_B_ERR_INVALID_TRACE_MODE    : Trace mode is not valid       */
/*   CORE_B_ERR_INVALID_EXCEPTION_CONTROL : Exception control         */
/*                                          selection is not valid    */
/*   CORE_B_ERR_INVALID_INSTRUCTION_BOUNDARY : Interrupt instruction  */
/*                                             boundary mode is       */
/*                                             invalid                */
/*   CORE_B_ERR_INVALID_INTERRUPT_CONTROL : Interrupt control         */
/*                                          selection is not valid    */
/**********************************************************************/
#define CORE_B_SetProcessorStatus( traceMode,                          \
                                   exceptionControl,                   \
                                   instrBoundaryMode,                  \
                                   interruptControl )                  \
(                                                                      \
  (CORE_B_PARAM_CHECKING) ?                                            \
  (                                                                    \
    (((traceMode) < CORE_B_TRACE_NORMAL) ||                            \
     ((traceMode) > CORE_B_TRACE_CHANGE_OF_FLOW)) ?                    \
       CORE_B_ERR_INVALID_TRACE_MODE :                                 \
    (((exceptionControl) < CORE_B_EXCEPTION_DISABLE) ||                \
     ((exceptionControl) > CORE_B_EXCEPTION_ENABLE)) ?                 \
       CORE_B_ERR_INVALID_EXCEPTION_CONTROL :                          \
    (((instrBoundaryMode) <                                            \
                      CORE_B_INTERRUPT_ON_INSTRUCTION_BOUNDARIES) ||   \
     ((instrBoundaryMode) > CORE_B_INTERRUPT_WITHIN_INSTRUCTION)) ?    \
       CORE_B_ERR_INVALID_INSTRUCTION_BOUNDARY :                       \
    (((interruptControl) < CORE_B_INTERRUPT_DISABLE) ||                \
     ((interruptControl) > CORE_B_INTERRUPT_ENABLE_FAST_AND_NORMAL)) ? \
       CORE_B_ERR_INVALID_INTERRUPT_CONTROL :                          \
    CORE_B_SetProcessorStatus_f( (traceMode),                          \
                                 (exceptionControl),                   \
                                 (instrBoundaryMode),                  \
                                 (interruptControl) )                  \
  )                                                                    \
  :                                                                    \
    CORE_B_SetProcessorStatus_f( (traceMode),                          \
                                 (exceptionControl),                   \
                                 (instrBoundaryMode),                  \
                                 (interruptControl) )                  \
)  /* End of CORE_B_SetProcessorStatus Macro */



/**********************************************************************/
/* Macro:   CORE_B_SetVectorBase                                      */
/*                                                                    */
/* Purpose:     Call CORE_B_SetVectorBase_f function with optional    */
/*              parameter checking.                                   */
/*                                                                    */ 
/* Input:                                                             */
/*   VectorBasePtr   : Base address of the vector table.              */
/*                                                                    */ 
/* Output:                                                            */
/*   CORE_B_ERR_NONE                : No error                        */
/*   CORE_B_ERR_INVALID_VECTOR_BASE : Vector base not on a 1KB        */
/*                                    boundary                        */
/**********************************************************************/
#define CORE_B_SetVectorBase( VectorBasePtr )                          \
(                                                                      \
  (CORE_B_PARAM_CHECKING) ?                                            \
  (                                                                    \
    ((((UINT32)(VectorBasePtr) % VECTOR_ADDR_BOUNDARY ) != 0) ||       \
     (VectorBasePtr == 0)) ?                                           \
        CORE_B_ERR_INVALID_VECTOR_BASE :                               \
    CORE_B_SetVectorBase_f( (VectorBasePtr) )                          \
  )                                                                    \
  :                                                                    \
    CORE_B_SetVectorBase_f( (VectorBasePtr) )                          \
)  /* End of CORE_B_SetVectorBase Macro */



/**********************************************************************/
/* Macro:   CORE_B_SetRegister                                        */    
/*                                                                    */
/* Purpose:     Call CORE_B_SetRegister_f function with optional      */
/*              parameter checking.                                   */
/* Input:                                                             */
/*   registerSwitch : Selects which MCORE control register to write   */
/*   registerValue  : The value written to the register.              */
/*                                                                    */ 
/* Output:                                                            */
/*   CORE_B_ERR_NONE             : No error                           */
/*   CORE_B_ERR_INVALID_REGISTER : Invalid Register                   */
/*                                                                    */
/**********************************************************************/
#define CORE_B_SetRegister( registerSwitch,                            \
                            registerValue )                            \
(                                                                      \
  (CORE_B_PARAM_CHECKING) ?                                            \
  (                                                                    \
    (((registerSwitch) < CORE_B_PSR) ||                                \
     ((registerSwitch) > CORE_B_GCR)) ?                                \
       CORE_B_ERR_INVALID_REGISTER :                                   \
    CORE_B_SetRegister_f( (registerSwitch),                            \
                          (registerValue) )                            \
  )                                                                    \
  :                                                                    \
    CORE_B_SetRegister_f( (registerSwitch),                            \
                          (registerValue) )                            \
)  /* End of CORE_B_SetRegister Macro */


/**********************************************************************/
/* Macro:   CORE_B_GetRegister                                        */    
/*                                                                    */
/* Purpose:     Call CORE_B_GetRegister_f function with optional      */
/*              parameter checking.                                   */
/* Input:                                                             */
/*   registerSwitch : Selects which MCORE control register to read    */
/*   registerValuePtr  : The value read from the register.            */
/*                                                                    */ 
/* Output:                                                            */
/*   CORE_B_ERR_NONE             : No error                           */
/*   CORE_B_ERR_BAD_RESULT_ADDR  : result address is NULL             */
/*   CORE_B_ERR_INVALID_REGISTER : Invalid register                   */
/**********************************************************************/
#define CORE_B_GetRegister( registerSwitch,                            \
                            registerValuePtr )                         \
(                                                                      \
  (CORE_B_PARAM_CHECKING) ?                                            \
  (                                                                    \
    ((registerValuePtr) == NULL) ?                                     \
       CORE_B_ERR_BAD_RESULT_ADDR :                                    \
    (((registerSwitch) < CORE_B_PSR) ||                                \
     ((registerSwitch) > CORE_B_GSR)) ?                                \
       CORE_B_ERR_INVALID_REGISTER :                                   \
    CORE_B_GetRegister_f( (registerSwitch),                            \
                          (registerValuePtr) )                         \
  )                                                                    \
  :                                                                    \
    CORE_B_GetRegister_f( (registerSwitch),                            \
                          (registerValuePtr) )                         \
)  /* End of CORE_B_GetRegister Macro */



/**********************************************************************/
/* Macro:   CORE_B_Reset                                              */    
/*                                                                    */
/* Purpose:     Call CORE_B_Reset_f function with optional            */
/*              parameter checking.                                   */
/* Input:                                                             */
/*   NONE.                                                            */ 
/* Output:                                                            */
/*   CORE_B_ERR_NONE             : No error                           */
/**********************************************************************/
#define CORE_B_Reset( )                                                \
(                                                                      \
  (CORE_B_PARAM_CHECKING) ?                                            \
  (                                                                    \
    CORE_B_Reset_f( )                                                  \
  )                                                                    \
  :                                                                    \
    CORE_B_Reset_f( )                                                  \
)  /* End of CORE_B_Reset Macro */


#endif /* end of ifndef _CORE_B_H */


⌨️ 快捷键说明

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