Index: App/Common.h =================================================================== diff -u -r765d2c35118e202444e737c66c77faf9678cc87e -r40a959e1341c8964f872df462ac3a2d874e3b0b3 --- App/Common.h (.../Common.h) (revision 765d2c35118e202444e737c66c77faf9678cc87e) +++ App/Common.h (.../Common.h) (revision 40a959e1341c8964f872df462ac3a2d874e3b0b3) @@ -1,27 +1,34 @@ -/*********************************************************************** +/************************************************************************** * -* Copyright Diality, Inc. 2019-2020. All Rights Reserved. -* 181 Technology, Ste. 150 -* Irvine, CA 92618 +* Copyright (c) 2019-2019 Diality Inc. - All Rights Reserved. * -* Project Denali +* THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN +* WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * @file Common.h * -* @brief Header file for common definitions and types. -* * @date 19-Sep-2019 +* @author S. Nash * -*************************************************************************/ +* @brief Header file for common definitions and types. +* +**************************************************************************/ #ifndef __COMMON_H__ #define __COMMON_H__ #include "hal_stdtypes.h" +// ********** build switches ********** + +#ifndef _VECTORCAST_ + #define RM46_EVAL_BOARD_TARGET 1 + #define SIMULATE_UI 1 +#endif + // ********** public definitions ********** -// *** Types *** +// **** Types **** typedef float F32; typedef double F64; @@ -35,18 +42,132 @@ typedef enum Pin_Signal_States { - PIN_SIGNAL_LOW = 0, - PIN_SIGNAL_HIGH, - NUM_OF_PIN_SIGNAL_STATES + PIN_SIGNAL_LOW = 0, + PIN_SIGNAL_HIGH, + NUM_OF_PIN_SIGNAL_STATES } PIN_SIGNAL_STATE_T; -// *** Common Definitions *** +typedef enum Self_Test_Status +{ + SELF_TEST_STATUS_IN_PROGRESS = 0, + SELF_TEST_STATUS_PASSED, + SELF_TEST_STATUS_FAILED, + NUM_OF_SELF_TEST_STATUS +} SELF_TEST_STATUS_T; -#define NEARLY_ZERO 0.00001 +typedef enum Two_Way_States +{ + STATE_CLOSED = 0, + STATE_OPEN, + NUM_OF_OPN_CLS_STATES +} OPN_CLS_STATE_T; -#define CAP(v,u) ((v) > (u) ? (u) : (v)) -#define RANGE(v,l,u) ((v) > (u) ? (u) : ((v) < (l) ? (l) : (v))) -#define MAX(a,b) ((a) < (b) ? (b) : (a)) -#define MIN(a,b) ((a) > (b) ? (b) : (a)) +// **** Common Definitions **** +#define NEARLY_ZERO 0.00001 +#define MASK_OFF_MSB 0x00FF +#define MASK_OFF_LSB 0xFF00 +#define MASK_OFF_MSW 0x0000FFFF +#define MASK_OFF_LSW 0xFFFF0000 +#define SHIFT_BITS_IN_BYTE 8 +#define SHIFT_BITS_IN_WORD 16 + +#define CAP(v,u) ((v) > (u) ? (u) : (v)) +#define RANGE(v,l,u) ((v) > (u) ? (u) : ((v) < (l) ? (l) : (v))) +#define INC_WRAP(v,l,u) ((v) == (u) ? (l) : ((v)+1)) +#define MAX(a,b) ((a) < (b) ? (b) : (a)) +#define MIN(a,b) ((a) > (b) ? (b) : (a)) +#define GET_LSB_OF_WORD(w) ((U08)((w) & MASK_OFF_MSB)) +#define GET_MSB_OF_WORD(w) ((U08)(((w) >> SHIFT_BITS_IN_BYTE) & MASK_OFF_MSB)) +#define GET_LSW_OF_LONG(l) ((U16)((l) & MASK_OFF_MSW)) +#define GET_MSW_OF_LONG(l) ((U16)(((l) >> SHIFT_BITS_IN_WORD) & MASK_OFF_MSW)) +#define MAKE_WORD_OF_BYTES(h,l) ((((U16)(h) << SHIFT_BITS_IN_BYTE) & MASK_OFF_LSB) | ((U16)(l) & MASK_OFF_MSB)) +#define MAKE_LONG_OF_WORDS(h,l) ((((U32)(h) << SHIFT_BITS_IN_WORD) & MASK_OFF_LSW) | ((U32)(l) & MASK_OFF_MSW)) + +// **** Script Support Definitions **** + +#define OVERRIDE_KEY 0xCCC33C33 +#define OVERRIDE_RESET 0x00000000 + +// DATA_DECL - declares an overrideable data variable +// t = data's type +// t_name = name for data's structure type +// d_name = name for data's variable +// i_val = data's initial value +// o_val = data's initial override value +#define DATA_DECL( t, t_name, d_name, i_val, o_val ) \ +struct t_name \ +{ \ + t data; \ + t ovInitData; \ + t ovData; \ + U32 override; \ +}; \ +static struct t_name d_name = { i_val, o_val, o_val, OVERRIDE_RESET } + +// DATA_GET_PROTOTYPE - declares a function prototype for a DATA getter function +// t = data's type +// f_name = name for DATA getter function +#define DATA_GET_PROTOTYPE( t, f_name ) t f_name( void ) + +// DATA_GET - creates a getter function for a DATA +// t = data's type +// f_name = name for DATA getter function +// d_name = name of data's variable +#define DATA_GET( t, f_name, d_name ) \ +t f_name( void ) \ +{ \ + t result = d_name.data; \ + if ( OVERRIDE_KEY == d_name.override ) \ + { \ + result = d_name.ovData; \ + } \ + return result; \ +} + +// DATA_OVERRIDE_FUNC - creates an override and a reset override function for a DATA +// t = data's type +// o_name = name for override function +// r_name = name for reset override function +// d_name = name of data's variable +#define DATA_OVERRIDE_FUNC( t, o_name, r_name, d_name ) \ +BOOL o_name( t value ) \ +{ \ + BOOL result = FALSE; \ + if ( TRUE == isTestingActivated() ) \ + { \ + result = TRUE; \ + d_name.ovData = value; \ + d_name.override = OVERRIDE_KEY; \ + } \ + return result; \ +} \ +BOOL r_name( void ) \ +{ \ + BOOL result = FALSE; \ + if ( TRUE == isTestingActivated() ) \ + { \ + result = TRUE; \ + d_name.override = OVERRIDE_RESET; \ + d_name.ovData = d_name.ovInitData; \ + } \ + return result; \ +} + +// **** VectorCAST Definitions **** + +#ifdef _VECTORCAST_ + + #define _enable_IRQ() + #define _disable_IRQ() + #define _enable_FIQ() + #ifndef _MINGW_ + #pragma WEAK(can1LowLevelInterrupt) + void can1LowLevelInterrupt(void) {} + #pragma WEAK(can1HighLevelInterrupt) + void can1HighLevelInterrupt(void) {} + #endif + #endif + +#endif