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