STM MATLAB Simulator
Loading...
Searching...
No Matches
Macros
Exported_macro
+ Collaboration diagram for Exported_macro:

Macros

#define SET_BIT(REG, BIT)   ((REG) |= (BIT))
 
#define CLEAR_BIT(REG, BIT)   ((REG) &= ~(BIT))
 
#define READ_BIT(REG, BIT)   ((REG) & (BIT))
 
#define CLEAR_REG(REG)   ((REG) = (0x0))
 
#define WRITE_REG(REG, VAL)   ((REG) = (VAL))
 
#define READ_REG(REG)   ((REG))
 
#define MODIFY_REG(REG, CLEARMASK, SETMASK)   WRITE_REG((REG), (((READ_REG(REG)) & (~(CLEARMASK))) | (SETMASK)))
 
#define POSITION_VAL(VAL)   (__CLZ(__RBIT(VAL)))
 
#define ATOMIC_SET_BIT(REG, BIT)
 
#define ATOMIC_CLEAR_BIT(REG, BIT)
 
#define ATOMIC_MODIFY_REG(REG, CLEARMSK, SETMASK)
 
#define ATOMIC_SETH_BIT(REG, BIT)
 
#define ATOMIC_CLEARH_BIT(REG, BIT)
 
#define ATOMIC_MODIFYH_REG(REG, CLEARMSK, SETMASK)
 

Detailed Description

Macro Definition Documentation

◆ SET_BIT

#define SET_BIT ( REG,
BIT )   ((REG) |= (BIT))

◆ CLEAR_BIT

#define CLEAR_BIT ( REG,
BIT )   ((REG) &= ~(BIT))

◆ READ_BIT

#define READ_BIT ( REG,
BIT )   ((REG) & (BIT))

◆ CLEAR_REG

#define CLEAR_REG ( REG)    ((REG) = (0x0))

◆ WRITE_REG

#define WRITE_REG ( REG,
VAL )   ((REG) = (VAL))

◆ READ_REG

#define READ_REG ( REG)    ((REG))

◆ MODIFY_REG

#define MODIFY_REG ( REG,
CLEARMASK,
SETMASK )   WRITE_REG((REG), (((READ_REG(REG)) & (~(CLEARMASK))) | (SETMASK)))

◆ POSITION_VAL

#define POSITION_VAL ( VAL)    (__CLZ(__RBIT(VAL)))

◆ ATOMIC_SET_BIT

#define ATOMIC_SET_BIT ( REG,
BIT )
Value:
do { \
uint32_t val; \
do { \
val = __LDREXW((__IO uint32_t *)&(REG)) | (BIT); \
} while ((__STREXW(val,(__IO uint32_t *)&(REG))) != 0U); \
} while(0)
#define __STREXW(value, ptr)
STR Exclusive (32 bit)
Definition arm_defines.h:263
#define __LDREXW(ptr)
LDR Exclusive (32 bit)
Definition arm_defines.h:230
#define __IO
Definition arm_defines.h:8
unsigned int uint32_t
Definition stdint.h:64

◆ ATOMIC_CLEAR_BIT

#define ATOMIC_CLEAR_BIT ( REG,
BIT )
Value:
do { \
uint32_t val; \
do { \
val = __LDREXW((__IO uint32_t *)&(REG)) & ~(BIT); \
} while ((__STREXW(val,(__IO uint32_t *)&(REG))) != 0U); \
} while(0)

◆ ATOMIC_MODIFY_REG

#define ATOMIC_MODIFY_REG ( REG,
CLEARMSK,
SETMASK )
Value:
do { \
uint32_t val; \
do { \
val = (__LDREXW((__IO uint32_t *)&(REG)) & ~(CLEARMSK)) | (SETMASK); \
} while ((__STREXW(val,(__IO uint32_t *)&(REG))) != 0U); \
} while(0)

◆ ATOMIC_SETH_BIT

#define ATOMIC_SETH_BIT ( REG,
BIT )
Value:
do { \
uint16_t val; \
do { \
val = __LDREXH((__IO uint16_t *)&(REG)) | (BIT); \
} while ((__STREXH(val,(__IO uint16_t *)&(REG))) != 0U); \
} while(0)
#define __STREXH(value, ptr)
STR Exclusive (16 bit)
Definition arm_defines.h:252
#define __LDREXH(ptr)
LDR Exclusive (16 bit)
Definition arm_defines.h:221
unsigned short int uint16_t
Definition stdint.h:63

◆ ATOMIC_CLEARH_BIT

#define ATOMIC_CLEARH_BIT ( REG,
BIT )
Value:
do { \
uint16_t val; \
do { \
val = __LDREXH((__IO uint16_t *)&(REG)) & ~(BIT); \
} while ((__STREXH(val,(__IO uint16_t *)&(REG))) != 0U); \
} while(0)

◆ ATOMIC_MODIFYH_REG

#define ATOMIC_MODIFYH_REG ( REG,
CLEARMSK,
SETMASK )
Value:
do { \
uint16_t val; \
do { \
val = (__LDREXH((__IO uint16_t *)&(REG)) & ~(CLEARMSK)) | (SETMASK); \
} while ((__STREXH(val,(__IO uint16_t *)&(REG))) != 0U); \
} while(0)