ASSERT - Assert


Assert/error checking module.

By default, library assert usage is not included to reduce footprint and processing overhead. Further, assert usage is decoupled from ISO C assert handling (NDEBUG usage) to allow using ISO C assert without including assert statements.

Below are available defines for controlling assert inclusion. The defines are typically for a project to be used by the preprocessor.

  • If DEBUG_EFM is defined, the internal library assert handling will be used. This is implemented as a simple while(true) loop. DEBUG_EFM is not defined by default.
  • If DEBUG_EFM_USER is defined, the user must provide custom implementation of the assertEFM() function.
  • If both DEBUG_EFM and DEBUG_EFM_USER are undefined, all EFM_ASSERT() statements are not operational.
The internal assert is documented because DEBUG_EFM is defined in the doxygen configuration.


void assertEFM (const char *file, int line)


#define EFM_ASSERT(expr)   ((expr) ? ((void)0) : assertEFM(__FILE__, __LINE__))
 Default assertion is not operational.

Macro Definition Documentation


#define EFM_ASSERT (   expr)    ((expr) ? ((void)0) : assertEFM(__FILE__, __LINE__))

Default assertion is not operational.