diff options
| author | Konstantin Kirik (snegovick) <snegovick@uprojects.org> | 2026-01-07 21:08:39 +0300 |
|---|---|---|
| committer | Konstantin Kirik (snegovick) <snegovick@uprojects.org> | 2026-01-07 21:08:39 +0300 |
| commit | 392ae8c766bf1fca81d41443f2070d82e7b95832 (patch) | |
| tree | e3d2a3dd0545fb22082304523cff6989760dce22 | |
| parent | 305f234c12bda7025d9cb4bcabae77d5e52ea61a (diff) | |
Add SET/CLEAR bit and reg macros
| -rw-r--r-- | os/arch/aarch32/armv7e_m/stm32f769/sys_io.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/os/arch/aarch32/armv7e_m/stm32f769/sys_io.h b/os/arch/aarch32/armv7e_m/stm32f769/sys_io.h index 9f70d641..77a33dd1 100644 --- a/os/arch/aarch32/armv7e_m/stm32f769/sys_io.h +++ b/os/arch/aarch32/armv7e_m/stm32f769/sys_io.h @@ -10,6 +10,14 @@ #define BIT(x) ((uint32_t)((uint32_t)0x01U<<(x))) #endif +#define SET_BIT(r, b) (r |= (b)) +#define CLEAR_BIT(r, b) (r &= ~(b)) +#define READ_BIT(r, b) ((r) & (b)) +#define CLEAR_REG(r) ((r) = (0x0)) +#define WRITE_REG(r, v) ((r) = (v)) +#define READ_REG(r) ((r)) +#define MODIFY_REG(r, clear_mask, set_mask) WRITE_REG((r), (((READ_REG(r)) & (~(clear_mask))) | (set_mask))) + static inline uint8_t sys_read8(uint32_t addr) { return *(volatile uint8_t *)addr; @@ -66,7 +74,7 @@ static inline void sys_clear_bit(uint32_t addr, unsigned int bit) static inline int sys_test_bit(uint32_t addr, unsigned int bit) { - uint32_t temp = *(volatile uint32_t *)addr; + volatile uint32_t temp = *(volatile uint32_t *)addr; return temp & (1 << bit); } |
