COMMONEMLIB
Detailed Description
General purpose utilities and cross-compiler support.
This SDK supports the following compilers/IDEs:
- Simplicity Studio
- IAR Embedded Workbench
- Atollic TrueSTUDIO IDE
- Rowley Associates CrossWorks for ARM
- Keil µVision IDE
- Plain armgcc
Certain compiler features such as alignment is implemented differently in the tools. Therefore, macros such as SL_ALIGN are provided to enable compiler independent code.
- Note
- RAM code macros are implemented in a separate module RAMFUNC . Cross-compiler RAM code support needs extended documentation and it is therefore implemented as a separate module.
Macros |
|
#define | SL_ALIGN (X) |
Macro for aligning a variable.
Use this macro before the variable definition. X denotes the storage alignment value in bytes. To be gcc compatible use SL_ATTRIBUTE_ALIGN(X) before the ; on normal variables. Use SL_ATTRIBUTE_ALIGN(X) before the opening { on struct variables. |
|
#define | SL_ATTRIBUTE_ALIGN (X) __attribute__ ((aligned(X))) |
GCC style macro for aligning a variable.
|
|
#define | SL_ATTRIBUTE_PACKED __attribute__ ((packed)) |
GCC style macro for handling packed structs.
|
|
#define | SL_ATTRIBUTE_SECTION (X) __attribute__ ((section(X))) |
#define | SL_CEILING (n, i) ((((n) + (i) - 1U) / (i)) * (i)) |
Round n up to closest interval of i.
|
|
#define | SL_FALLTHROUGH |
Macro for notifying the compiler of an intended switch case fallthrough.
|
|
#define | SL_FLOOR (n, i) ((n / i) * i)) |
Round n down to closest interval of i.
|
|
#define | SL_MAX (a, b) __extension__({ __typeof__(a)_a = (a); __typeof__(b)_b = (b); _a > _b ? _a : _b; }) |
Macro for getting maximum value. No sideeffects, a and b are evaluated once only.
|
|
#define | SL_MIN (a, b) __extension__({ __typeof__(a)_a = (a); __typeof__(b)_b = (b); _a < _b ? _a : _b; }) |
Macro for getting minimum value. No sideeffects, a and b are evaluated once only.
|
|
#define | SL_NORETURN __attribute__ ((noreturn)) |
Macro for handling non-returning functions.
|
|
#define | SL_PACK_END () |
Macro for handling packed structs.
Use this macro after the struct definition. With GCC, add SL_ATTRIBUTE_PACKED after the closing } of the struct definition. |
|
#define | SL_PACK_START (x) |
Macro for handling packed structs.
Use this macro before the struct definition. X denotes the maximum alignment of struct members. X is not supported with GCC. GCC always use 1 byte maximum alignment. |
|
#define | SL_WEAK __attribute__ ((weak)) |
Macro for defining a weak symbol.
|
|
#define | STRINGIZE (X) #X |
Stringify X.
|
|
Functions |
|
__STATIC_INLINE uint32_t | EFM32_CTZ (uint32_t value) |
__STATIC_INLINE uint32_t | SL_CTZ (uint32_t value) |
Count trailing number of zeros. Use CLZ instruction if available.
|
|
__STATIC_INLINE uint32_t | SL_RBIT (uint32_t value) |
Reverse the bits. Use the RBIT instruction if available, else process.
|
|
__STATIC_INLINE uint32_t | SL_RBIT16 (uint32_t value) |
Reverse the bits. Use the RBIT instruction if available, else process.
|
|
Macro Definition Documentation
#define SL_ATTRIBUTE_SECTION | ( |
X
|
) | __attribute__ ((section(X))) |
Macro for placing a variable in a section.
Use this macro after the variable definition, before the = or ;.
X denotes the section to place the variable in.
Definition at line
194
of file
em_common.h
.
Function Documentation
__STATIC_INLINE uint32_t SL_CTZ | ( | uint32_t |
value
|
) |
Count trailing number of zeros. Use CLZ instruction if available.
- Parameters
-
[in] value
Data value to check for number of trailing zero bits.
- Returns
- Number of trailing zeros in value.
Definition at line
216
of file
em_common.h
.
Referenced by GPIOINT_CallbackRegister() , and RMU_ResetControl() .
__STATIC_INLINE uint32_t SL_RBIT | ( | uint32_t |
value
|
) |
Reverse the bits. Use the RBIT instruction if available, else process.
- Parameters
-
[in] value
Data value to reverse.
- Returns
- Reversed value.
Definition at line
246
of file
em_common.h
.
Referenced by SL_RBIT16() .
__STATIC_INLINE uint32_t SL_RBIT16 | ( | uint32_t |
value
|
) |
Reverse the bits. Use the RBIT instruction if available, else process.
- Parameters
-
[in] value
16-bit data value to reverse.
- Returns
- 16-bit reversed value.
Definition at line
276
of file
em_common.h
.
References SL_RBIT() .