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

📄 globaltypes.h

📁 OMAP1030 处理器的ARM 侧硬件测试代码 OMAP1030 是TI的双核处理器
💻 H
📖 第 1 页 / 共 2 页
字号:
    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 + -