Compiler agnostic #define symbols for generic C/C++ source code. More...
Macros | |
#define | __ARM_ARCH_7A__ |
Set to 1 when generating code for Armv7-A (Cortex-A7) | |
#define | __STATIC_FORCEINLINE |
Define a static function that should be always inlined by the compiler. | |
#define | __PACKED_STRUCT |
Request smallest possible alignment for a structure. | |
#define | __UNALIGNED_UINT16_READ |
Pointer for unaligned read of a uint16_t variable. | |
#define | __UNALIGNED_UINT16_WRITE |
Pointer for unaligned write of a uint16_t variable. | |
#define | __UNALIGNED_UINT32_READ |
Pointer for unaligned read of a uint32_t variable. | |
#define | __UNALIGNED_UINT32_WRITE |
Pointer for unaligned write of a uint32_t variable. | |
Compiler agnostic #define symbols for generic C/C++ source code.
The CMSIS-Core provides the header file cmsis_compiler.h with consistent #define symbols to generate C or C++ source files that should be compiler agnostic. Each CMSIS compliant compiler should support the functionality described in this section.
#define __ARM_ARCH_7A__ |
Set to 1 when generating code for Armv7-A (Cortex-A7)
The #define ARM_ARCH_7A is set to 1 when generating code for the Armv7-A architecture. This architecture is for example used by the Cortex-A7 processor.
#define __PACKED_STRUCT |
Request smallest possible alignment for a structure.
Specifies that a structure must have the smallest possible alignment.
Code Example:
#define __STATIC_FORCEINLINE |
Define a static function that should be always inlined by the compiler.
Defines a static function that should be always inlined by the compiler.
Code Example:
#define __UNALIGNED_UINT16_READ |
Pointer for unaligned read of a uint16_t variable.
Defines a pointer to a uint16_t from an address that does not need to be aligned. This can then be used in read operations. The compiler will generate the appropriate access (aligned or non-aligned) depending on the underlying Arm processor core and compiler settings.
Code Example:
#define __UNALIGNED_UINT16_WRITE |
Pointer for unaligned write of a uint16_t variable.
Defines a pointer to a uint16_t from an address that does not need to be aligned. This can then be used in write operations. The compiler will generate the appropriate access (aligned or non-aligned) depending on the underlying Arm processor core and compiler settings.
Code Example:
#define __UNALIGNED_UINT32_READ |
Pointer for unaligned read of a uint32_t variable.
Defines a pointer to a uint32_t from an address that does not need to be aligned. This can then be used in read operations. The compiler will generate the appropriate access (aligned or non-aligned) depending on the underlying Arm processor core and compiler settings.
Code Example:
#define __UNALIGNED_UINT32_WRITE |
Pointer for unaligned write of a uint32_t variable.
Defines a pointer to a uint32_t from an address that does not need to be aligned. This can then be used in write operations. The compiler will generate the appropriate access (aligned or non-aligned) depending on the underlying Arm processor core and compiler settings.
Code Example: