📄 test_functions.h
字号:
* * Returns: * * Notes: The test performed is: if (( (Reg) & (Mask) ) != ( (Exp) & (Mask) )) *****************************************************************************/#define WREM8( Reg, WrData, ExpData, Mask ) \{ \ tBYTE tmp; \ /* write the reg */ \ *(volatile tBYTE *)(Reg)=(tBYTE)(WrData); \ /* read the reg */ \ tmp = (volatile tBYTE)(*(volatile tBYTE *)(Reg)); \ /* test the reg */ \ if (( (tBYTE)(tmp) & (tBYTE)(Mask) ) != ( (tBYTE)(ExpData) & (tBYTE)(Mask) )) { /* failed */ \ FAIL_5( (tWORD)( CPRINT_E_WREM8 ), (tWORD)( Reg ), (tWORD)( WrData ), (tWORD)( tmp ), (tWORD)( ExpData ), (tWORD)( Mask ) ); \ } \ else { \ SUCCESS_5( (tWORD)( CPRINT_S_WREM8 ), (tWORD)( Reg ), (tWORD)( WrData ), (tWORD)( tmp ), (tWORD)( ExpData ), (tWORD)( Mask ) ); \ } \} #define WREM16( Reg, WrData, ExpData, Mask ) \{ \ tHALF tmp; \ /* write the reg */ \ *(volatile tHALF *)(Reg)=(tHALF)(WrData); \ /* read the reg */ \ tmp = (volatile tHALF)(*(volatile tHALF *)(Reg)); \ /* test the reg */ \ if (( (tHALF)(tmp) & (tHALF)(Mask) ) != ( (tHALF)(ExpData) & (tHALF)(Mask) )) { /* failed */ \ FAIL_5( (tWORD)( CPRINT_E_WREM16 ), (tWORD)( Reg ), (tWORD)( WrData ), (tWORD)( tmp ), (tWORD)( ExpData ), (tWORD)( Mask ) ); \ } \ else { \ SUCCESS_5( (tWORD)( CPRINT_S_WREM16 ), (tWORD)( Reg ), (tWORD)( WrData ), (tWORD)( tmp ), (tWORD)( ExpData ), (tWORD)( Mask ) ); \ } \} #define WREM32( Reg, WrData, ExpData, Mask ) \{ \ tWORD tmp; \ /* write the reg */ \ *(volatile tWORD *)(Reg)=(tWORD)(WrData); \ /* read the reg */ \ tmp = (volatile tWORD)(*(volatile tWORD *)(Reg)); \ /* test the reg */ \ if (( (tWORD)(tmp) & (tWORD)(Mask) ) != ( (tWORD)(ExpData) & (tWORD)(Mask) )) { /* failed */ \ FAIL_5( (tWORD)( CPRINT_E_WREM32 ), (tWORD)( Reg ), (tWORD)( WrData ), (tWORD)( tmp ), (tWORD)( ExpData ), (tWORD)( Mask ) ); \ } \ else { \ SUCCESS_5( (tWORD)( CPRINT_S_WREM32 ), (tWORD)( Reg ), (tWORD)( WrData ), (tWORD)( tmp ), (tWORD)( ExpData ), (tWORD)( Mask ) ); \ } \} #define WAIT_REM8( Reg, ExpData, Mask, Timeout ) \{ \ tBYTE tmp; \ tHALF index = 0; \ /* read the reg */ \ tmp = (volatile tBYTE)(*(volatile tBYTE *)(Reg)); \ /* test the reg */ \ while ( (( (volatile tBYTE)(tmp) & (volatile tBYTE)(Mask) ) != \ ( (volatile tBYTE)(ExpData) & (volatile tBYTE)(Mask) )) && \ ( (volatile tHALF) (index) < (volatile tHALF) (Timeout)) ) \ { tmp = (volatile tBYTE)(*(volatile tBYTE *)(Reg)); \ index++; \ } \ if (index >= Timeout) { \ FAIL_5( (tWORD)( CPRINT_E_WAIT_REM8 ), (tWORD)( Reg ), (tWORD)( tmp ), (tWORD)( ExpData ), (tWORD)( Mask ), (tWORD)( Timeout ) ); \ } \ else { \ SUCCESS_5( (tWORD)( CPRINT_S_WAIT_REM8 ), (tWORD)( Reg ), (tWORD)( tmp ), (tWORD)( ExpData ), (tWORD)( Mask ), (tWORD)( Timeout ) ); \ } \}#define WAIT_REM16( Reg, ExpData, Mask, Timeout ) \{ \ tHALF tmp; \ tHALF index = 0; \ /* read the reg */ \ tmp = (volatile tHALF)(*(volatile tHALF *)(Reg)); \ /* test the reg */ \ while ( (( (volatile tHALF)(tmp) & (volatile tHALF)(Mask) ) != \ ( (volatile tHALF)(ExpData) & (volatile tHALF)(Mask) )) && \ ( (volatile tHALF) (index) < (volatile tHALF) (Timeout)) ) \ { tmp = (volatile tHALF)(*(volatile tHALF *)(Reg)); \ index++; \ } \ /* write the CPRINT */ \ if (index >= Timeout) { \ FAIL_5( (tWORD)( CPRINT_E_WAIT_REM16 ), (tWORD)( Reg ), (tWORD)( tmp ), (tWORD)( ExpData ), (tWORD)( Mask ), (tWORD)( Timeout ) ); \ } \ else { /* this means the test succeeded */ \ SUCCESS_5( (tWORD)( CPRINT_S_WAIT_REM16 ), (tWORD)( Reg ), (tWORD)( tmp ), (tWORD)( ExpData ), (tWORD)( Mask ), (tWORD)( Timeout ) ); \ } /* if test */ \}#define WAIT_REM32( Reg, ExpData, Mask, Timeout ) \{ \ tWORD tmp; \ tHALF index = 0; \ /* read the reg */ \ tmp = (volatile tWORD)(*(volatile tWORD *)(Reg)); \ /* test the reg */ \ while ( (( (volatile tWORD)(tmp) & (volatile tWORD)(Mask) ) != \ ( (volatile tWORD)(ExpData) & (volatile tWORD)(Mask) )) && \ ( (volatile tHALF) (index) < (volatile tHALF) (Timeout)) ) \ { tmp = (volatile tWORD)(*(volatile tWORD *)(Reg)); \ index++; \ } \ /* write the CPRINT */ \ if (index >= Timeout) { \ FAIL_5( (tWORD)( CPRINT_E_WAIT_REM32 ), (tWORD)( Reg ), (tWORD)( tmp ), (tWORD)( ExpData ), (tWORD)( Mask ), (tWORD)( Timeout ) ); \ } \ else { /* this means the test succeeded */ \ SUCCESS_5( (tWORD)( CPRINT_S_WAIT_REM32 ), (tWORD)( Reg ), (tWORD)( tmp ), (tWORD)( ExpData ), (tWORD)( Mask ), (tWORD)( Timeout ) ); \ } /* if test */ \}#define WAIT_RE8( Reg, ExpData, Timeout ) \{ \ tBYTE tmp; \ tHALF index = 0; \ /* read the reg */ \ tmp = (volatile tBYTE)(*(volatile tBYTE *)(Reg)); \ /* test the reg */ \ while ( (( (volatile tBYTE)(tmp) ) != \ ( (volatile tBYTE)(ExpData) )) && \ ( (volatile tHALF) (index) < (volatile tHALF) (Timeout)) ) \ { tmp = (volatile tBYTE)(*(volatile tBYTE *)(Reg)); \ index++; \ } \ /* write the CPRINT */ \ if (index >= Timeout) { \ FAIL_4( (tWORD)( CPRINT_E_WAIT_RE8 ), (tWORD)( Reg ), (tWORD)( tmp ), (tWORD)( ExpData ), (tWORD)( Timeout ) ); \ } \ else { /* this means the test succeeded */ \ SUCCESS_4( (tWORD)( CPRINT_S_WAIT_RE8 ), (tWORD)( Reg ), (tWORD)( tmp ), (tWORD)( ExpData ), (tWORD)( Timeout ) ); \ } /* if test */ \}#define WAIT_RE16( Reg, ExpData, Timeout ) \{ \ tHALF tmp; \ tHALF index = 0; \ /* read the reg */ \ tmp = (volatile tHALF)(*(volatile tHALF *)(Reg)); \ /* test the reg */ \ while ( (( (volatile tHALF)(tmp) ) != \ ( (volatile tHALF)(ExpData) )) && \ ( (volatile tHALF) (index) < (volatile tHALF) (Timeout)) ) \ { tmp = (volatile tHALF)(*(volatile tHALF *)(Reg)); \ index++; \ } \ /* write the CPRINT */ \ if (index >= Timeout) { \ FAIL_4( (tWORD)( CPRINT_E_WAIT_RE16 ), (tWORD)( Reg ), (tWORD)( tmp ), (tWORD)( ExpData ), (tWORD)( Timeout ) ); \ } \ else { /* this means the test succeeded */ \ SUCCESS_4( (tWORD)( CPRINT_S_WAIT_RE16 ), (tWORD)( Reg ), (tWORD)( tmp ), (tWORD)( ExpData ), (tWORD)( Timeout ) ); \ } /* if test */ \}#define WAIT_RE32( Reg, ExpData, Timeout ) \{ \ tWORD tmp; \ tHALF index = 0; \ /* read the reg */ \ tmp = (volatile tWORD)(*(volatile tWORD *)(Reg)); \ /* test the reg */ \ while ( (( (volatile tWORD)(tmp) ) != \ ( (volatile tWORD)(ExpData) )) && \ ( (volatile tHALF) (index) < (volatile tHALF) (Timeout)) ) \ { tmp = (volatile tWORD)(*(volatile tWORD *)(Reg)); \ index++; \ } \ /* write the CPRINT */ \ if (index >= Timeout) { \ FAIL_4( (tWORD)( CPRINT_E_WAIT_RE32 ), (tWORD)( Reg ), (tWORD)( tmp ), (tWORD)( ExpData ), (tWORD)( Timeout ) ); \ } \ else { /* this means the test succeeded */ \ SUCCESS_4( (tWORD)( CPRINT_S_WAIT_RE32 ), (tWORD)( Reg ), (tWORD)( tmp ), (tWORD)( ExpData ), (tWORD)( Timeout ) ); \ } /* if test */ \}#define BCLR8( address, mask ) \{ \ tBYTE tmpi; \ tBYTE tmpf; \ tmpi = (volatile tBYTE)(*(volatile tBYTE *)(address)); \ *(volatile tBYTE *)(address) = tmpi & ~(volatile tBYTE)( mask ); \ tmpf = (volatile tBYTE)(*(volatile tBYTE *)(address)); \ SUCCESS_4( (tWORD)( CPRINT_BCLR8 ), (tWORD)( address ), (tWORD)( tmpi ), (tWORD)( mask ), (tWORD)( tmpf ) ); \}#define BCLR16( address, mask ) \{ \ tHALF tmpi; \ tHALF tmpf; \ tmpi = (volatile tHALF)(*(volatile tHALF *)(address)); \ *(volatile tHALF *)(address) = tmpi & ~(volatile tHALF)( mask ); \ tmpf = (volatile tHALF)(*(volatile tHALF *)(address)); \ SUCCESS_4( (tWORD)( CPRINT_BCLR16 ), (tWORD)( address ), (tWORD)( tmpi ), (tWORD)( mask ), (tWORD)( tmpf ) ); \}//#define BCLR32( address, mask ) \//{ \// tWORD tmpi; \ // tWORD tmpf; \ // tmpi = (volatile tWORD)(*(volatile tWORD *)(address)); \ // *(volatile tWORD *)(address) = tmpi & ~(volatile tWORD)( mask ); \ // tmpf = (volatile tWORD)(*(volatile tWORD *)(address)); \ // SUCCESS_4( (tWORD)( CPRINT_BCLR32 ), (tWORD)( address ), (tWORD)( tmpi ), (tWORD)( mask ), (tWORD)( tmpf ) ); \//}#define BFLIP8( address, mask ) \{ \ tBYTE tmpi; \ tBYTE tmpf; \ tmpi = (volatile tBYTE)(*(volatile tBYTE *)(address)); \ *(volatile tBYTE *)(address) = ~tmpi ^ ~(volatile tBYTE)( mask ); \ tmpf = (volatile tBYTE)(*(volatile tBYTE *)(address)); \ SUCCESS_4( (tWORD)( CPRINT_BFLIP8 ), (tWORD)( address ), (tWORD)( tmpi ), (tWORD)( mask ), (tWORD)( tmpf ) ); \}#define BFLIP16( address, mask ) \{ \ tHALF tmpi; \ tHALF tmpf; \ tmpi = (volatile tHALF)(*(volatile tHALF *)(address)); \ *(volatile tHALF *)(address) = ~tmpi ^ ~(volatile tHALF)( mask ); \ tmpf = (volatile tHALF)(*(volatile tHALF *)(address)); \ SUCCESS_4( (tWORD)( CPRINT_BFLIP16 ), (tWORD)( address ), (tWORD)( tmpi ), (tWORD)( mask ), (tWORD)( tmpf ) ); \}#define BFLIP32( address, mask ) \{ \ tWORD tmpi; \ tWORD tmpf; \ tmpi = (volatile tWORD)(*(volatile tWORD *)(address)); \ *(volatile tWORD *)(address) = ~tmpi ^ ~(volatile tWORD)( mask ); \ tmpf = (volatile tWORD)(*(volatile tWORD *)(address)); \ SUCCESS_4( (tWORD)( CPRINT_BFLIP32 ), (tWORD)( address ), (tWORD)( tmpi ), (tWORD)( mask ), (tWORD)( tmpf ) ); \}#define BSET8( address, mask ) \{ \ tBYTE tmpi; \ tBYTE tmpf; \ tmpi = (volatile tBYTE)(*(volatile tBYTE *)(address)); \ *(volatile tBYTE *)(address) = tmpi | (volatile tBYTE)( mask ); \ tmpf = (volatile tBYTE)(*(volatile tBYTE *)(address)); \ SUCCESS_4( (tWORD)( CPRINT_BSET8 ), (tWORD)( address ), (tWORD)( tmpi ), (tWORD)( mask ), (tWORD)( tmpf ) ); \}#define BSET16( address, mask ) \{ \ tHALF tmpi; \ tHALF tmpf; \ tmpi = (volatile tHALF)(*(volatile tHALF *)(address)); \ *(volatile tHALF *)(address) = tmpi | (volatile tHALF)( mask ); \ tmpf = (volatile tHALF)(*(volatile tHALF *)(address)); \ SUCCESS_4( (tWORD)( CPRINT_BSET16 ), (tWORD)( address ), (tWORD)( tmpi ), (tWORD)( mask ), (tWORD)( tmpf ) ); \}#define BSET32( address, mask ) \{ \ tWORD tmpi; \ tWORD tmpf; \ tmpi = (volatile tWORD)(*(volatile tWORD *)(address)); \ *(volatile tWORD *)(address) = tmpi | (volatile tWORD)( mask ); \ tmpf = (volatile tWORD)(*(volatile tWORD *)(address)); \ SUCCESS_4( (tWORD)( CPRINT_BSET32 ), (tWORD)( address ), (tWORD)( tmpi ), (tWORD)( mask ), (tWORD)( tmpf ) ); \}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -