Energy Micro IEC60355 Library Example Project 1.0 (internal use only!) GCC-Version
Example project demonstrating POST and BIST library functions

Critical Data

The Critical Data macros provide secured handling to critical user data in BIST condition. More...

Collaboration diagram for Critical Data:

Data Structures

struct  critical_double_struct
 typedef for a critical floating point variable with 64 bits. More...
struct  critical_float_struct
 typedef for a critical floating point variable with 32 bits. More...
struct  critical_uint64_t_struct
 typedef for a critical unsigned integer with 64 bits. More...
struct  critical_int64_t_struct
 typedef for a critical signed integer with 64 bits. More...
struct  critical_uint32_t_struct
 typedef for a critical unsigned integer with 32 bits. More...
struct  critical_int32_t_struct
 typedef for a critical signed integer with 32 bits. More...
struct  critical_uint16_t_struct
 typedef for a critical unsigned integer with 16 bits. More...
struct  critical_int16_t_struct
 typedef for a critical signed integer with 16 bits. More...
struct  critical_uint8_t_struct
 typedef for a critical unsigned integer with 8 bits. More...
struct  critical_int8_t_struct
 typedef for a critical signed integer with 8 bits. More...

Defines

#define IEC60335_ClassB_CriticalDataValidate(criticalVar)   ((criticalVar.data == ~(criticalVar.inverse)) ? (IEC60335_testPassed) : (IEC60335_testFailed))
 Macro to check critical variables.
#define IEC60335_ClassB_CriticalDataPop(criticalVar)   (criticalVar.data)
 Macro to read critical variables.
#define IEC60335_ClassB_CriticalDataPush(criticalVar, value)
 Macro to write critical variables.
#define IEC60335_ClassB_CriticalDataInit(value)
 Macro to initialize critical variables.

Typedefs

typedef struct
critical_double_struct 
critical_double
 typedef for a critical floating point variable with 64 bits.
typedef struct
critical_float_struct 
critical_float
 typedef for a critical floating point variable with 32 bits.
typedef struct
critical_uint64_t_struct 
critical_uint64_t
 typedef for a critical unsigned integer with 64 bits.
typedef struct
critical_int64_t_struct 
critical_int64_t
 typedef for a critical signed integer with 64 bits.
typedef struct
critical_uint32_t_struct 
critical_uint32_t
 typedef for a critical unsigned integer with 32 bits.
typedef struct
critical_int32_t_struct 
critical_int32_t
 typedef for a critical signed integer with 32 bits.
typedef struct
critical_uint16_t_struct 
critical_uint16_t
 typedef for a critical unsigned integer with 16 bits.
typedef struct
critical_int16_t_struct 
critical_int16_t
 typedef for a critical signed integer with 16 bits.
typedef struct
critical_uint8_t_struct 
critical_uint8_t
 typedef for a critical unsigned integer with 8 bits.
typedef struct
critical_int8_t_struct 
critical_int8_t
 typedef for a critical signed integer with 8 bits.

Detailed Description

The Critical Data macros provide secured handling to critical user data in BIST condition.

critical data helps to keep data consistent and enables verification structures
for easy and save data access.


Define Documentation

#define IEC60335_ClassB_CriticalDataInit (   value)
Value:
{ \
    ~value, value                                                 \
}

Macro to initialize critical variables.

necessary to initialize every type of critical data with start value

Parameters:
value

Definition at line 257 of file iec60335_class_b_critical_data.h.

Referenced by main().

#define IEC60335_ClassB_CriticalDataPop (   criticalVar)    (criticalVar.data)

Macro to read critical variables.

Parameters:
criticalVartarget variable of critical type

Definition at line 239 of file iec60335_class_b_critical_data.h.

#define IEC60335_ClassB_CriticalDataPush (   criticalVar,
  value 
)
Value:
{ \
    criticalVar.inverse = ~value;                                 \
    criticalVar.data    = value;                                  \
}

Macro to write critical variables.

Parameters:
criticalVartarget variable of critical type
valuenew value

Definition at line 247 of file iec60335_class_b_critical_data.h.

Referenced by main().

#define IEC60335_ClassB_CriticalDataValidate (   criticalVar)    ((criticalVar.data == ~(criticalVar.inverse)) ? (IEC60335_testPassed) : (IEC60335_testFailed))

Macro to check critical variables.

Parameters:
criticalVartarget variable of critical type
Returns:
passed or failed. See testResult_t .

Definition at line 232 of file iec60335_class_b_critical_data.h.

Referenced by main().


Typedef Documentation

typedef for a critical floating point variable with 64 bits.

This variable has to be checked with the macro IEC60335_ClassB_CriticalDataValidate(criticalVar)

See also:
IEC60335_ClassB_CriticalDataValidate(criticalVar)
Attention:
Do only use the macros to read or write the variable.
See also:
IEC60335_ClassB_CriticalDataPop(criticalVar)
IEC60335_ClassB_CriticalDataPush(criticalVar, value)
Attention:
To instance such a critical variable, the macro IEC60335_ClassB_CriticalDataInit(value) has to be used to initialize the struct.

typedef for a critical floating point variable with 32 bits.

This variable has to be checked with the macro IEC60335_ClassB_CriticalDataValidate(criticalVar)

See also:
IEC60335_ClassB_CriticalDataValidate(criticalVar)
Attention:
Do only use the macros to read or write the variable.
See also:
IEC60335_ClassB_CriticalDataPop(criticalVar)
IEC60335_ClassB_CriticalDataPush(criticalVar, value)
Attention:
To instance such a critical variable, the macro IEC60335_ClassB_CriticalDataInit(value) has to be used to initialize the struct.

typedef for a critical signed integer with 16 bits.

This variable has to be checked with the macro IEC60335_ClassB_CriticalDataValidate(criticalVar)

See also:
IEC60335_ClassB_CriticalDataValidate(criticalVar)
Attention:
Do only use the macros to read or write the variable.
See also:
IEC60335_ClassB_CriticalDataPop(criticalVar)
IEC60335_ClassB_CriticalDataPush(criticalVar, value)
Attention:
To instance such a critical variable, the macro IEC60335_ClassB_CriticalDataInit(value) has to be used to initialize the struct.

typedef for a critical signed integer with 32 bits.

This variable has to be checked with the macro IEC60335_ClassB_CriticalDataValidate(criticalVar)

See also:
IEC60335_ClassB_CriticalDataValidate(criticalVar)
Attention:
Do only use the macros to read or write the variable.
See also:
IEC60335_ClassB_CriticalDataPop(criticalVar)
IEC60335_ClassB_CriticalDataPush(criticalVar, value)
Attention:
To instance such a critical variable, the macro IEC60335_ClassB_CriticalDataInit(value) has to be used to initialize the struct.

typedef for a critical signed integer with 64 bits.

This variable has to be checked with the macro IEC60335_ClassB_CriticalDataValidate(criticalVar)

See also:
IEC60335_ClassB_CriticalDataValidate(criticalVar)
Attention:
Do only use the macros to read or write the variable.
See also:
IEC60335_ClassB_CriticalDataPop(criticalVar)
IEC60335_ClassB_CriticalDataPush(criticalVar, value)
Attention:
To instance such a critical variable, the macro IEC60335_ClassB_CriticalDataInit(value) has to be used to initialize the struct.

typedef for a critical signed integer with 8 bits.

This variable has to be checked with the macro IEC60335_ClassB_CriticalDataValidate(criticalVar)

See also:
IEC60335_ClassB_CriticalDataValidate(criticalVar)
Attention:
Do only use the macros to read or write the variable.
See also:
IEC60335_ClassB_CriticalDataPop(criticalVar)
IEC60335_ClassB_CriticalDataPush(criticalVar, value)
Attention:
To instance such a critical variable, the macro IEC60335_ClassB_CriticalDataInit(value) has to be used to initialize the struct.

typedef for a critical unsigned integer with 16 bits.

This variable has to be checked with the macro IEC60335_ClassB_CriticalDataValidate(criticalVar)

See also:
IEC60335_ClassB_CriticalDataValidate(criticalVar)
Attention:
Do only use the macros to read or write the variable.
See also:
IEC60335_ClassB_CriticalDataPop(criticalVar)
IEC60335_ClassB_CriticalDataPush(criticalVar, value)
Attention:
To instance such a critical variable, the macro IEC60335_ClassB_CriticalDataInit(value) has to be used to initialize the struct.

typedef for a critical unsigned integer with 32 bits.

This variable has to be checked with the macro IEC60335_ClassB_CriticalDataValidate(criticalVar)

See also:
IEC60335_ClassB_CriticalDataValidate(criticalVar)
Attention:
Do only use the macros to read or write the variable.
See also:
IEC60335_ClassB_CriticalDataPop(criticalVar)
IEC60335_ClassB_CriticalDataPush(criticalVar, value)
Attention:
To instance such a critical variable, the macro IEC60335_ClassB_CriticalDataInit(value) has to be used to initialize the struct.

typedef for a critical unsigned integer with 64 bits.

This variable has to be checked with the macro IEC60335_ClassB_CriticalDataValidate(criticalVar)

See also:
IEC60335_ClassB_CriticalDataValidate(criticalVar)
Attention:
Do only use the macros to read or write the variable.
See also:
IEC60335_ClassB_CriticalDataPop(criticalVar)
IEC60335_ClassB_CriticalDataPush(criticalVar, value)
Attention:
To instance such a critical variable, the macro IEC60335_ClassB_CriticalDataInit(value) has to be used to initialize the struct.

typedef for a critical unsigned integer with 8 bits.

This variable has to be checked with the macro IEC60335_ClassB_CriticalDataValidate(criticalVar)

See also:
IEC60335_ClassB_CriticalDataValidate(criticalVar)
Attention:
Do only use the macros to read or write the variable.
See also:
IEC60335_ClassB_CriticalDataPop(criticalVar)
IEC60335_ClassB_CriticalDataPush(criticalVar, value)
Attention:
To instance such a critical variable, the macro IEC60335_ClassB_CriticalDataInit(value) has to be used to initialize the struct.