RTEMS 6.1-rc6
Loading...
Searching...
No Matches
Macros | Functions | Variables
cmsis_gcc.h File Reference

CMSIS compiler GCC header file. More...

Go to the source code of this file.

Macros

#define __has_builtin(x)   (0)
 
#define __ASM   __asm
 
#define __INLINE   inline
 
#define __STATIC_INLINE   static inline
 
#define __STATIC_FORCEINLINE   __attribute__((always_inline)) static inline
 
#define __NO_RETURN   __attribute__((__noreturn__))
 
#define __USED   __attribute__((used))
 
#define __WEAK   __attribute__((weak))
 
#define __PACKED   __attribute__((packed, aligned(1)))
 
#define __PACKED_STRUCT   struct __attribute__((packed, aligned(1)))
 
#define __PACKED_UNION   union __attribute__((packed, aligned(1)))
 
#define __UNALIGNED_UINT32(x)   (((struct T_UINT32 *)(x))->v)
 
#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)))
 
#define __RESTRICT   __restrict
 
#define __COMPILER_BARRIER()   __ASM volatile("":::"memory")
 
#define __NO_INIT   __attribute__ ((section (".bss.noinit")))
 
#define __ALIAS(x)   __attribute__ ((alias(x)))
 
#define __PROGRAM_START   __cmsis_start
 
#define __INITIAL_SP   __StackTop
 
#define __STACK_LIMIT   __StackLimit
 
#define __VECTOR_TABLE   __Vectors
 
#define __VECTOR_TABLE_ATTRIBUTE   __attribute__((used, section(".vectors")))
 
#define __CMSIS_GCC_OUT_REG(r)   "=r" (r)
 
#define __CMSIS_GCC_RW_REG(r)   "+r" (r)
 
#define __CMSIS_GCC_USE_REG(r)   "r" (r)
 
#define __NOP()   __ASM volatile ("nop")
 No Operation.
 
#define __WFI()   __ASM volatile ("wfi":::"memory")
 Wait For Interrupt.
 
#define __WFE()   __ASM volatile ("wfe":::"memory")
 Wait For Event.
 
#define __SEV()   __ASM volatile ("sev")
 Send Event.
 
#define __BKPT(value)   __ASM volatile ("bkpt "#value)
 Breakpoint.
 

Functions

struct __attribute__ ((packed)) T_UINT32
 
__STATIC_FORCEINLINE __NO_RETURN void __cmsis_start (void)
 Initializes data and bss sections.
 
__STATIC_FORCEINLINE void __ISB (void)
 Instruction Synchronization Barrier.
 
__STATIC_FORCEINLINE void __DSB (void)
 Data Synchronization Barrier.
 
__STATIC_FORCEINLINE void __DMB (void)
 Data Memory Barrier.
 
__STATIC_FORCEINLINE uint32_t __REV (uint32_t value)
 Reverse byte order (32 bit)
 
__STATIC_FORCEINLINE uint32_t __REV16 (uint32_t value)
 Reverse byte order (16 bit)
 
__STATIC_FORCEINLINE int16_t __REVSH (int16_t value)
 Reverse byte order (16 bit)
 
__STATIC_FORCEINLINE uint32_t __ROR (uint32_t op1, uint32_t op2)
 Rotate Right in unsigned value (32 bit)
 
__STATIC_FORCEINLINE uint32_t __RBIT (uint32_t value)
 Reverse bit order of value.
 
__STATIC_FORCEINLINE uint8_t __CLZ (uint32_t value)
 Count leading zeros.
 
__STATIC_FORCEINLINE int32_t __SSAT (int32_t val, uint32_t sat)
 Signed Saturate.
 
__STATIC_FORCEINLINE uint32_t __USAT (int32_t val, uint32_t sat)
 Unsigned Saturate.
 
__STATIC_FORCEINLINE void __enable_irq (void)
 Enable IRQ Interrupts.
 
__STATIC_FORCEINLINE void __disable_irq (void)
 Disable IRQ Interrupts.
 
__STATIC_FORCEINLINE uint32_t __get_CONTROL (void)
 Get Control Register.
 
__STATIC_FORCEINLINE void __set_CONTROL (uint32_t control)
 Set Control Register.
 
__STATIC_FORCEINLINE uint32_t __get_IPSR (void)
 Get IPSR Register.
 
__STATIC_FORCEINLINE uint32_t __get_APSR (void)
 Get APSR Register.
 
__STATIC_FORCEINLINE uint32_t __get_xPSR (void)
 Get xPSR Register.
 
__STATIC_FORCEINLINE uint32_t __get_PSP (void)
 Get Process Stack Pointer.
 
__STATIC_FORCEINLINE void __set_PSP (uint32_t topOfProcStack)
 Set Process Stack Pointer.
 
__STATIC_FORCEINLINE uint32_t __get_MSP (void)
 Get Main Stack Pointer.
 
__STATIC_FORCEINLINE void __set_MSP (uint32_t topOfMainStack)
 Set Main Stack Pointer.
 
__STATIC_FORCEINLINE uint32_t __get_PRIMASK (void)
 Get Priority Mask.
 
__STATIC_FORCEINLINE void __set_PRIMASK (uint32_t priMask)
 Set Priority Mask.
 
__STATIC_FORCEINLINE uint32_t __get_FPSCR (void)
 Get FPSCR.
 
__STATIC_FORCEINLINE void __set_FPSCR (uint32_t fpscr)
 Set FPSCR.
 

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
 

Detailed Description

CMSIS compiler GCC header file.

This header file provides CMSIS interfaces.

Version
V5.4.2
Date
17. December 2022

Function Documentation

◆ __cmsis_start()

__STATIC_FORCEINLINE __NO_RETURN void __cmsis_start ( void  )

Initializes data and bss sections.

This default implementations initialized all data and additional bss sections relying on .copy.table and .zero.table specified properly in the used linker script.