sarmfsw: SMFSW Toolbox (for ARM & compatible with Arduino platform) 3.7
SMFSW collection of miscellaneous functions & macros (for ARM & compatible with Arduino platform)
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
arm_inlines_linearization.h File Reference

Linearization inlines. More...

This graph shows which files directly or indirectly include this file:

Data Structures

struct  sLinearFlexArray
 Linearization flexible member array structure. More...
 

Macros

#define LINEAR_TAB(name, nbElem)
 Pattern tab typedef declaration with name catenation and nbElem max array elements.
 
#define LINEAR_EVAL(name, val)   linearization_eval(name.array, name.nb, (val))
 Macro to call linearization on a LINEAR_TAB or sLinearFlexArray typedef.
 

Typedefs

typedef struct sLinearFlexArray sLinearFlexArray
 

Functions

SDWORD linearization_eval (const SDWORD array[][2], const DWORD nb, const SDWORD val)
 2 dimensional linearization
 
SDWORD linearization_eval_flex (const sLinearFlexArray *const pArray, const SDWORD val)
 2 dimensional linearization (flexible member array)
 

Detailed Description

Linearization inlines.

Author
SMFSW

Macro Definition Documentation

◆ LINEAR_EVAL

#define LINEAR_EVAL ( name,
val )   linearization_eval(name.array, name.nb, (val))

Macro to call linearization on a LINEAR_TAB or sLinearFlexArray typedef.

MISRA C:2012 Deviations
Local legitimate use derogation authorized for:
Rule-20.7 - Required: Enclosed macro parameters expansion (misra-c2012-20.7)
Justification: Result expansion of name wouldn't produce the desired structured access expansion.

◆ LINEAR_TAB

#define LINEAR_TAB ( name,
nbElem )
Value:
typedef struct sLinear##name { \
DWORD nb; \
SDWORD array[nbElem][2]; \
} sLinear##name;
int32_t SDWORD
Signed dWord typedef (32bits)
Definition arm_typedefs.h:75
uint32_t DWORD
Unsigned dWord typedef (32bits)
Definition arm_typedefs.h:71

Pattern tab typedef declaration with name catenation and nbElem max array elements.

MISRA C:2012 Deviations
Local deviation has been granted for following rules:
Rule-20.10 - Advisory: # and ## preprocessor operators (misra-c2012-20.10)

Typedef Documentation

◆ sLinearFlexArray

typedef struct sLinearFlexArray sLinearFlexArray

Function Documentation

◆ linearization_eval()

SDWORD linearization_eval ( const SDWORD array[][2],
const DWORD nb,
const SDWORD val )
inline

2 dimensional linearization

Parameters
[in]array- pointer to 2 dimensional array
[in]nb- Number of items of the array
[in]val- Value to evaluate
Returns
Evaluated value in regard of val
Here is the caller graph for this function:

◆ linearization_eval_flex()

SDWORD linearization_eval_flex ( const sLinearFlexArray *const pArray,
const SDWORD val )
inline

2 dimensional linearization (flexible member array)

Parameters
[in]pArray- pointer to flexible member array structure
[in]val- Value to evaluate
Returns
Evaluated value in regard of val
Here is the call graph for this function: