Macros | |
| #define | __ASM __asm | 
| Pass information from the compiler to the assembler.   | |
| #define | __INLINE __inline | 
| Recommend that function should be inlined by the compiler.   | |
| #define | __FORCEINLINE __attribute__((always_inline)) | 
| #define | __STATIC_INLINE static __inline | 
| Define a static function should be inlined by the compiler.   | |
| #define | __STATIC_FORCEINLINE __attribute__((always_inline)) static __inline | 
| #define | __NO_RETURN __attribute__((__noreturn__)) | 
| Inform the compiler that a function does not return.   | |
| #define | CMSIS_DEPRECATED __attribute__((deprecated)) | 
| #define | __USED __attribute__((used)) | 
| Inform that a variable shall be retained in executable image.   | |
| #define | __WEAK __attribute__((weak)) | 
| Export a function or variable weakly to allow overwrites.   | |
| #define | __PACKED __attribute__((packed, aligned(1))) | 
| Request smallest possible alignment.   | |
| #define | __PACKED_STRUCT struct __attribute__((packed, aligned(1))) | 
| #define | __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) | 
| #define | __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) | 
| #define | __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) | 
| #define | __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) | 
| #define | __ALIGNED(x) __attribute__((aligned(x))) | 
| Minimum alignment for a variable.   | |
| #define | __COMPILER_BARRIER() __ASM volatile("":::"memory") | 
| #define | __NOP __builtin_arm_nop | 
| No Operation.   | |
| #define | __WFI __builtin_arm_wfi | 
| Wait For Interrupt.   | |
| #define | __WFE __builtin_arm_wfe | 
| Wait For Event.   | |
| #define | __SEV __builtin_arm_sev | 
| Send Event.   | |
| #define | __ISB() __builtin_arm_isb(0xF) | 
| Instruction Synchronization Barrier.   | |
| #define | __DSB() __builtin_arm_dsb(0xF) | 
| Data Synchronization Barrier.   | |
| #define | __DMB() __builtin_arm_dmb(0xF) | 
| Data Memory Barrier.   | |
| #define | __REV(value) __builtin_bswap32(value) | 
| Reverse byte order (32 bit)   | |
| #define | __REV16(value) __ROR(__REV(value), 16) | 
| Reverse byte order (16 bit)   | |
| #define | __REVSH(value) (int16_t)__builtin_bswap16(value) | 
| Reverse byte order (16 bit)   | |
| #define | __BKPT(value) __ASM volatile ("bkpt "#value) | 
| Breakpoint.   | |
| #define | __RBIT __builtin_arm_rbit | 
| Reverse bit order of value.   | |
| #define | __LDREXB (uint8_t)__builtin_arm_ldrex | 
| LDR Exclusive (8 bit)   | |
| #define | __LDREXH (uint16_t)__builtin_arm_ldrex | 
| LDR Exclusive (16 bit)   | |
| #define | __LDREXW (uint32_t)__builtin_arm_ldrex | 
| LDR Exclusive (32 bit)   | |
| #define | __STREXB (uint32_t)__builtin_arm_strex | 
| STR Exclusive (8 bit)   | |
| #define | __STREXH (uint32_t)__builtin_arm_strex | 
| STR Exclusive (16 bit)   | |
| #define | __STREXW (uint32_t)__builtin_arm_strex | 
| STR Exclusive (32 bit)   | |
| #define | __CLREX __builtin_arm_clrex | 
| Remove the exclusive lock.   | |
| #define | __SSAT __builtin_arm_ssat | 
| Signed Saturate.   | |
| #define | __USAT __builtin_arm_usat | 
| Unsigned Saturate.   | |
| #define | __get_CP(cp, op1, Rt, CRn, CRm, op2) __ASM volatile("MRC p" # cp ", " # op1 ", %0, c" # CRn ", c" # CRm ", " # op2 : "=r" (Rt) : : "memory" ) | 
| #define | __set_CP(cp, op1, Rt, CRn, CRm, op2) __ASM volatile("MCR p" # cp ", " # op1 ", %0, c" # CRn ", c" # CRm ", " # op2 : : "r" (Rt) : "memory" ) | 
| #define | __get_CP64(cp, op1, Rt, CRm) __ASM volatile("MRRC p" # cp ", " # op1 ", %Q0, %R0, c" # CRm : "=r" (Rt) : : "memory" ) | 
| #define | __set_CP64(cp, op1, Rt, CRm) __ASM volatile("MCRR p" # cp ", " # op1 ", %Q0, %R0, c" # CRm : : "r" (Rt) : "memory" ) | 
Functions | |
| __STATIC_FORCEINLINE uint32_t | __ROR (uint32_t op1, uint32_t op2) | 
| Rotate Right in unsigned value (32 bit)   | |
| __STATIC_FORCEINLINE uint8_t | __CLZ (uint32_t value) | 
| Count leading zeros.   | |
| __STATIC_FORCEINLINE uint32_t | __RRX (uint32_t value) | 
| Rotate Right with Extend (32 bit)   | |
| __STATIC_FORCEINLINE uint8_t | __LDRBT (volatile uint8_t *ptr) | 
| LDRT Unprivileged (8 bit)   | |
| __STATIC_FORCEINLINE uint16_t | __LDRHT (volatile uint16_t *ptr) | 
| LDRT Unprivileged (16 bit)   | |
| __STATIC_FORCEINLINE uint32_t | __LDRT (volatile uint32_t *ptr) | 
| LDRT Unprivileged (32 bit)   | |
| __STATIC_FORCEINLINE void | __STRBT (uint8_t value, volatile uint8_t *ptr) | 
| STRT Unprivileged (8 bit)   | |
| __STATIC_FORCEINLINE void | __STRHT (uint16_t value, volatile uint16_t *ptr) | 
| STRT Unprivileged (16 bit)   | |
| __STATIC_FORCEINLINE void | __STRT (uint32_t value, volatile uint32_t *ptr) | 
| STRT Unprivileged (32 bit)   | |
| __STATIC_FORCEINLINE void | __enable_irq (void) | 
| Enable IRQ Interrupts.   | |
| __STATIC_FORCEINLINE void | __disable_irq (void) | 
| Disable IRQ Interrupts.   | |
| __STATIC_FORCEINLINE void | __enable_fault_irq (void) | 
| Enable FIQ.   | |
| __STATIC_FORCEINLINE void | __disable_fault_irq (void) | 
| Disable FIQ.   | |
| __STATIC_FORCEINLINE uint32_t | __get_FPSCR (void) | 
| Get FPSCR.   | |
| __STATIC_FORCEINLINE void | __set_FPSCR (uint32_t fpscr) | 
| Set FPSCR.   | |
| __STATIC_FORCEINLINE uint32_t | __get_CPSR (void) | 
| Get CPSR Register.   | |
| __STATIC_FORCEINLINE void | __set_CPSR (uint32_t cpsr) | 
| Set CPSR Register.   | |
| __STATIC_FORCEINLINE uint32_t | __get_mode (void) | 
| Get Mode.   | |
| __STATIC_FORCEINLINE void | __set_mode (uint32_t mode) | 
| Set Mode.   | |
| __STATIC_FORCEINLINE uint32_t | __get_SP (void) | 
| Get Stack Pointer.   | |
| __STATIC_FORCEINLINE void | __set_SP (uint32_t stack) | 
| Set Stack Pointer.   | |
| __STATIC_FORCEINLINE uint32_t | __get_SP_usr (void) | 
| Get USR/SYS Stack Pointer.   | |
| __STATIC_FORCEINLINE void | __set_SP_usr (uint32_t topOfProcStack) | 
| Set USR/SYS Stack Pointer.   | |
| __STATIC_FORCEINLINE uint32_t | __get_FPEXC (void) | 
| Get FPEXC.   | |
| __STATIC_FORCEINLINE void | __set_FPEXC (uint32_t fpexc) | 
| Set FPEXC.   | |
| __STATIC_INLINE void | __FPU_Enable (void) | 
| Enable Floating Point Unit.   | |
Variables | |
| __PACKED_STRUCT | T_UINT16_WRITE { uint16_t v | 
| __PACKED_STRUCT | T_UINT16_READ { uint16_t v | 
| __PACKED_STRUCT | T_UINT32_WRITE { uint32_t v | 
| __PACKED_STRUCT | T_UINT32_READ { uint32_t v | 
| #define __CLREX __builtin_arm_clrex | 
Remove the exclusive lock.
Removes the exclusive lock which is created by LDREX.
| #define __COMPILER_BARRIER | ( | ) | __ASM volatile("":::"memory") | 
| #define __FORCEINLINE __attribute__((always_inline)) | 
| #define __get_CP | ( | cp, | |
| op1, | |||
| Rt, | |||
| CRn, | |||
| CRm, | |||
| op2 | |||
| ) | __ASM volatile("MRC p" # cp ", " # op1 ", %0, c" # CRn ", c" # CRm ", " # op2 : "=r" (Rt) : : "memory" ) | 
| #define __get_CP64 | ( | cp, | |
| op1, | |||
| Rt, | |||
| CRm | |||
| ) | __ASM volatile("MRRC p" # cp ", " # op1 ", %Q0, %R0, c" # CRm : "=r" (Rt) : : "memory" ) | 
| #define __LDREXB (uint8_t)__builtin_arm_ldrex | 
LDR Exclusive (8 bit)
Executes a exclusive LDR instruction for 8 bit value.
| [in] | ptr | Pointer to data | 
| #define __LDREXH (uint16_t)__builtin_arm_ldrex | 
LDR Exclusive (16 bit)
Executes a exclusive LDR instruction for 16 bit values.
| [in] | ptr | Pointer to data | 
| #define __LDREXW (uint32_t)__builtin_arm_ldrex | 
LDR Exclusive (32 bit)
Executes a exclusive LDR instruction for 32 bit values.
| [in] | ptr | Pointer to data | 
| #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) | 
| #define __RBIT __builtin_arm_rbit | 
Reverse bit order of value.
Reverses the bit order of the given value.
| [in] | value | Value to reverse | 
| #define __REV | ( | value | ) | __builtin_bswap32(value) | 
Reverse byte order (32 bit)
Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412.
| [in] | value | Value to reverse | 
Reverse byte order (16 bit)
Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856.
| [in] | value | Value to reverse | 
| #define __REVSH | ( | value | ) | (int16_t)__builtin_bswap16(value) | 
Reverse byte order (16 bit)
Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000.
| [in] | value | Value to reverse | 
| #define __set_CP | ( | cp, | |
| op1, | |||
| Rt, | |||
| CRn, | |||
| CRm, | |||
| op2 | |||
| ) | __ASM volatile("MCR p" # cp ", " # op1 ", %0, c" # CRn ", c" # CRm ", " # op2 : : "r" (Rt) : "memory" ) | 
| #define __set_CP64 | ( | cp, | |
| op1, | |||
| Rt, | |||
| CRm | |||
| ) | __ASM volatile("MCRR p" # cp ", " # op1 ", %Q0, %R0, c" # CRm : : "r" (Rt) : "memory" ) | 
| #define __SSAT __builtin_arm_ssat | 
Signed Saturate.
Saturates a signed value.
| [in] | value | Value to be saturated | 
| [in] | sat | Bit position to saturate to (1..32) | 
| #define __STATIC_FORCEINLINE __attribute__((always_inline)) static __inline | 
| #define __STREXB (uint32_t)__builtin_arm_strex | 
STR Exclusive (8 bit)
Executes a exclusive STR instruction for 8 bit values.
| [in] | value | Value to store | 
| [in] | ptr | Pointer to location | 
| #define __STREXH (uint32_t)__builtin_arm_strex | 
STR Exclusive (16 bit)
Executes a exclusive STR instruction for 16 bit values.
| [in] | value | Value to store | 
| [in] | ptr | Pointer to location | 
| #define __STREXW (uint32_t)__builtin_arm_strex | 
STR Exclusive (32 bit)
Executes a exclusive STR instruction for 32 bit values.
| [in] | value | Value to store | 
| [in] | ptr | Pointer to location | 
| #define __UNALIGNED_UINT16_READ | ( | addr | ) | (((const struct T_UINT16_READ *)(const void *)(addr))->v) | 
| #define __UNALIGNED_UINT16_WRITE | ( | addr, | |
| val | |||
| ) | (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) | 
| #define __UNALIGNED_UINT32_READ | ( | addr | ) | (((const struct T_UINT32_READ *)(const void *)(addr))->v) | 
| #define __UNALIGNED_UINT32_WRITE | ( | addr, | |
| val | |||
| ) | (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) | 
| #define __USAT __builtin_arm_usat | 
Unsigned Saturate.
Saturates an unsigned value.
| [in] | value | Value to be saturated | 
| [in] | sat | Bit position to saturate to (0..31) | 
| #define CMSIS_DEPRECATED __attribute__((deprecated)) | 
| __STATIC_FORCEINLINE void __disable_fault_irq | ( | void | ) | 
Disable FIQ.
Disables FIQ interrupts by setting special-purpose register FAULTMASK. Can only be executed in Privileged modes.
| __STATIC_FORCEINLINE void __disable_irq | ( | void | ) | 
Disable IRQ Interrupts.
Disables IRQ interrupts by setting the I-bit in the CPSR. Can only be executed in Privileged modes.
| __STATIC_FORCEINLINE void __enable_fault_irq | ( | void | ) | 
Enable FIQ.
Enables FIQ interrupts by clearing special-purpose register FAULTMASK. Can only be executed in Privileged modes.
| __STATIC_FORCEINLINE void __enable_irq | ( | void | ) | 
Enable IRQ Interrupts.
Enables IRQ interrupts by clearing the I-bit in the CPSR. Can only be executed in Privileged modes.
| __STATIC_FORCEINLINE uint32_t __get_mode | ( | void | ) | 
Get Mode.
| __STATIC_FORCEINLINE uint32_t __get_SP | ( | void | ) | 
Get Stack Pointer.
| __STATIC_FORCEINLINE uint32_t __get_SP_usr | ( | void | ) | 
Get USR/SYS Stack Pointer.
| __STATIC_FORCEINLINE uint8_t __LDRBT | ( | volatile uint8_t * | ptr | ) | 
LDRT Unprivileged (8 bit)
Executes a Unprivileged LDRT instruction for 8 bit value.
| [in] | ptr | Pointer to data | 
| __STATIC_FORCEINLINE uint16_t __LDRHT | ( | volatile uint16_t * | ptr | ) | 
LDRT Unprivileged (16 bit)
Executes a Unprivileged LDRT instruction for 16 bit values.
| [in] | ptr | Pointer to data | 
| __STATIC_FORCEINLINE uint32_t __LDRT | ( | volatile uint32_t * | ptr | ) | 
LDRT Unprivileged (32 bit)
Executes a Unprivileged LDRT instruction for 32 bit values.
| [in] | ptr | Pointer to data | 
| __STATIC_FORCEINLINE uint32_t __RRX | ( | uint32_t | value | ) | 
Rotate Right with Extend (32 bit)
Moves each bit of a bitstring right by one bit. The carry input is shifted in at the left end of the bitstring.
| [in] | value | Value to rotate | 
| __STATIC_FORCEINLINE void __set_mode | ( | uint32_t | mode | ) | 
Set Mode.
| [in] | mode | Mode value to set | 
| __STATIC_FORCEINLINE void __STRBT | ( | uint8_t | value, | 
| volatile uint8_t * | ptr | ||
| ) | 
STRT Unprivileged (8 bit)
Executes a Unprivileged STRT instruction for 8 bit values.
| [in] | value | Value to store | 
| [in] | ptr | Pointer to location | 
| __STATIC_FORCEINLINE void __STRHT | ( | uint16_t | value, | 
| volatile uint16_t * | ptr | ||
| ) | 
STRT Unprivileged (16 bit)
Executes a Unprivileged STRT instruction for 16 bit values.
| [in] | value | Value to store | 
| [in] | ptr | Pointer to location | 
| __STATIC_FORCEINLINE void __STRT | ( | uint32_t | value, | 
| volatile uint32_t * | ptr | ||
| ) | 
STRT Unprivileged (32 bit)
Executes a Unprivileged STRT instruction for 32 bit values.
| [in] | value | Value to store | 
| [in] | ptr | Pointer to location | 
| __PACKED_STRUCT T_UINT16_READ { uint16_t v | 
| __PACKED_STRUCT T_UINT16_WRITE { uint16_t v | 
| __PACKED_STRUCT T_UINT32_READ { uint32_t v | 
| __PACKED_STRUCT T_UINT32_WRITE { uint32_t v |