📄 globaltypes.h
字号:
RET_INVALID_OPERATION,
RET_POR_FAIL, /* Power on reset fail */
RET_READ_INTEG_FAIL, /* Read Integrity fail */
RET_READ_ONLY_FAIL, /* Read only fail */
RET_WRTIE_ONLY_FAIL, /* Write only fail */
RET_RE_UP_FAIL, /* Read exclusivity Up fail */
RET_RE_DOWN_FAIL, /* Read exclusivity Down fail */
RET_BUSY,
/* Add new error codes at end of above list */
RET_NUM_RET_CODES /* this should ALWAYS be LAST entry */
} ReturnCode_t, *pReturnCode_t;
/* ============================================================================
* EXPORTED VARIABLES
* =============================================================================
*/
/* ============================================================================
* EXPORTED FUNCTIONS/MACROS
* =============================================================================
*/
/* ----------------------------------------------------------------------------
* MACRO: RD_MEM_8, WR_MEM_8
*
* DESCRIPTION: 32 bit memory access macros
*
* -----------------------------------------------------------------------------
*/
#define RD_MEM_8(addr) ((UWORD8)(*((UWORD8 *)(addr))))
#define WR_MEM_8(addr, data) (*((UWORD8 *)(addr)) = (UWORD8)(data))
/* ----------------------------------------------------------------------------
* MACRO: RD_MEM_8_VOLATILE, WR_MEM_8_VOLATILE
*
* DESCRIPTION: 8 bit register access macros
*
* -----------------------------------------------------------------------------
*/
#define RD_MEM_8_VOLATILE(addr) ((UWORD8)(*((REG_UWORD8 *)(addr))))
#define WR_MEM_8_VOLATILE(addr, data) (*((REG_UWORD8 *)(addr)) = (UWORD8)(data))
/* ----------------------------------------------------------------------------
* MACRO: RD_MEM_16, WR_MEM_16
*
* DESCRIPTION: 16 bit memory access macros
*
* -----------------------------------------------------------------------------
*/
#define RD_MEM_16(addr) ((UWORD16)(*((UWORD16 *)(addr))))
#define WR_MEM_16(addr, data) (*((UWORD16 *)(addr)) = (UWORD16)(data))
/* ----------------------------------------------------------------------------
* MACRO: RD_MEM_16_VOLATILE, WR_MEM_16_VOLATILE
*
* DESCRIPTION: 16 bit register access macros
*
* -----------------------------------------------------------------------------
*/
#define RD_MEM_16_VOLATILE(addr) ((UWORD16)(*((REG_UWORD16 *)(addr))))
#define WR_MEM_16_VOLATILE(addr, data) (*((REG_UWORD16 *)(addr)) = (UWORD16)(data))
/* ----------------------------------------------------------------------------
* MACRO: RD_MEM_32, WR_MEM_32
*
* DESCRIPTION: 32 bit memory access macros
*
* -----------------------------------------------------------------------------
*/
#define RD_MEM_32(addr) ((UWORD32)(*((UWORD32 *)(addr))))
#define WR_MEM_32(addr, data) (*((UWORD32 *)(addr)) = (UWORD32)(data))
/* ----------------------------------------------------------------------------
* MACRO: RD_MEM_32_VOLATILE, WR_MEM_32_VOLATILE
*
* DESCRIPTION: 32 bit register access macros
*
* -----------------------------------------------------------------------------
*/
#define RD_MEM_32_VOLATILE(addr) ((UWORD32)(*((REG_UWORD32 *)(addr))))
#define WR_MEM_32_VOLATILE(addr, data) (*((REG_UWORD32 *)(addr)) = (UWORD32)(data))
#ifdef CHECK_RETURN_VALUES
/* ----------------------------------------------------------------------------
* MACRO: CHECK_RETURN_VALUE
*
* DESCRIPTION: Checks a return code and returns a specified value if code not
* as expected, also writes spy value if not as expected.
*
* NOTE: Can be disabled to save HW cycles.
*
* -----------------------------------------------------------------------------
*/
#define CHECK_RETURN_VALUE(actualValue, expectedValue, returnCodeIfMismatch, spyCodeIfMisMatch) \
if ((expectedValue) != (actualValue))\
{\
RES_Set((spyCodeIfMisMatch));\
return (returnCodeIfMismatch); \
}
/* ----------------------------------------------------------------------------
* MACRO: CHECK_RETURN_VALUE_RET
*
* DESCRIPTION: Checks a return code and returns a specified value if code not
* as expected, no spy value is written.
*
* NOTE: Can be disabled to save HW cycles.
*
* -----------------------------------------------------------------------------
*/
#define CHECK_RETURN_VALUE_RET(actualValue, expectedValue, returnCodeIfMismatch) \
if ((expectedValue) != (actualValue))\
{\
return (returnCodeIfMismatch); \
}
/* ----------------------------------------------------------------------------
* MACRO: CHECK_RETURN_VALUE_RES
*
* DESCRIPTION: Checks a return code and writes spy value if code not as
* expected.
*
* NOTE: Can be disabled to save HW cycles.
*
* -----------------------------------------------------------------------------
*/
#define CHECK_RETURN_VALUE_RES(actualValue, expectedValue, spyCodeIfMisMatch) \
if ((expectedValue) != (actualValue))\
{\
RES_Set((spyCodeIfMisMatch));\
}
/* ----------------------------------------------------------------------------
* MACRO: CHECK_RETURN_VALUE_RES_RET_VOID
*
* DESCRIPTION: Checks a return code and writes spy value if code not as
* expected and return void;
*
* NOTE: Can be disabled to save HW cycles.
*
* -----------------------------------------------------------------------------
*/
#define CHECK_RETURN_VALUE_RET_VOID(actualValue, expectedValue, spyCodeIfMisMatch) \
if ((expectedValue) != (actualValue))\
{\
RES_Set((spyCodeIfMisMatch));\
return; \
}
#else
#define CHECK_RETURN_VALUE(actualValue, expectedValue, returnCodeIfMismatch, spyCodeIfMisMatch)
#define CHECK_RETURN_VALUE_RET(actualValue, expectedValue, returnCodeIfMismatch)
#define CHECK_RETURN_VALUE_RES(actualValue, expectedValue, spyCodeIfMisMatch)
#define CHECK_RETURN_VALUE_RET_VOID(actualValue, expectedValue, spyCodeIfMisMatch)
#endif
#ifdef CHECK_INPUT_PARAMS
/* ----------------------------------------------------------------------------
* MACRO: CHECK_INPUT_PARAMS
*
* DESCRIPTION: Checks an input code and returns a specified value if code is
* invalid value, also writes spy value if error found.
*
* NOTE: Can be disabled to save HW cycles.
*
* -----------------------------------------------------------------------------
*/
#define CHECK_INPUT_PARAM(actualValue, invalidValue, returnCodeIfMismatch, spyCodeIfMisMatch) \
if ((invalidValue) == (actualValue))\
{\
RES_Set((spyCodeIfMisMatch));\
return (returnCodeIfMismatch); \
}
/* ----------------------------------------------------------------------------
* MACRO: CHECK_INPUT_PARAM_NO_SPY
*
* DESCRIPTION: Checks an input code and returns a specified value if code is
* invalid value, no spy value written.
*
* NOTE: Can be disabled to save HW cycles.
*
* -----------------------------------------------------------------------------
*/
#define CHECK_INPUT_PARAM_NO_SPY(actualValue, invalidValue, returnCodeIfMismatch) \
if ((invalidValue) == (actualValue))\
{\
return (returnCodeIfMismatch); \
}
/* ----------------------------------------------------------------------------
* MACRO: CHECK_INPUT_RANGE
*
* DESCRIPTION: Checks an input value and returns a specified value if not in
* specified range, also writes spy value if error found.
*
* NOTE: Can be disabled to save HW cycles.
*
* -----------------------------------------------------------------------------
*/
#define CHECK_INPUT_RANGE(actualValue, minValidValue, maxValidValue, returnCodeIfMismatch, spyCodeIfMisMatch) \
if (((actualValue) < (minValidValue)) || ((actualValue)>(maxValidValue)))\
{\
RES_Set((spyCodeIfMisMatch));\
return (returnCodeIfMismatch); \
}
/* ----------------------------------------------------------------------------
* MACRO: CHECK_INPUT_RANGE_NO_SPY
*
* DESCRIPTION: Checks an input value and returns a specified value if not in
* specified range, no spy value written if error found.
*
* NOTE: Can be disabled to save HW cycles.
*
* -----------------------------------------------------------------------------
*/
#define CHECK_INPUT_RANGE_NO_SPY(actualValue, minValidValue, maxValidValue, returnCodeIfMismatch) \
if (((actualValue) < (minValidValue)) || ((actualValue)>(maxValidValue)))\
{\
return (returnCodeIfMismatch); \
}
/* ----------------------------------------------------------------------------
* MACRO: CHECK_INPUT_RANGE_MIN0
*
* DESCRIPTION: Checks an input value and returns a specified value if not in
* specified range, also writes spy value if error found. The minimum
* value is 0.
*
* NOTE: Can be disabled to save HW cycles.
*
* -----------------------------------------------------------------------------
*/
#define CHECK_INPUT_RANGE_MIN0(actualValue, maxValidValue, returnCodeIfMismatch, spyCodeIfMisMatch) \
if ((actualValue)>(maxValidValue))\
{\
RES_Set((spyCodeIfMisMatch));\
return (returnCodeIfMismatch); \
}
/* ----------------------------------------------------------------------------
* MACRO: CHECK_INPUT_RANGE_NO_SPY_MIN0
*
* DESCRIPTION: Checks an input value and returns a specified value if not in
* specified range, no spy value written if error found. The minimum
* value is 0.
*
* NOTE: Can be disabled to save HW cycles.
*
* -----------------------------------------------------------------------------
*/
#define CHECK_INPUT_RANGE_NO_SPY_MIN0(actualValue, maxValidValue, returnCodeIfMismatch) \
if ((actualValue)>(maxValidValue))\
{\
return (returnCodeIfMismatch); \
}
#else
#define CHECK_INPUT_PARAM(actualValue,invalidValue,returnCodeIfMismatch,spyCodeIfMisMatch)
#define CHECK_INPUT_PARAM_NO_SPY(actualValue, invalidValue, returnCodeIfMismatch)
#define CHECK_INPUT_RANGE(actualValue, minValidValue, maxValidValue, returnCodeIfMismatch, spyCodeIfMisMatch)
#define CHECK_INPUT_RANGE_NO_SPY(actualValue, minValidValue ,maxValidValue, returnCodeIfMismatch)
#define CHECK_INPUT_RANGE_MIN0(actualValue, maxValidValue, returnCodeIfMismatch, spyCodeIfMisMatch)
#define CHECK_INPUT_RANGE_NO_SPY_MIN0(actualValue, maxValidValue, returnCodeIfMismatch)
#endif
#ifdef __cplusplus
}
#endif
#endif /* __GLOBALTYPES_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -