#include "pico.h"
#include "hardware/regs/addressmap.h"
Go to the source code of this file.
|
|
typedef volatile uint64_t | io_rw_64 |
|
typedef const volatile uint64_t | io_ro_64 |
|
typedef volatile uint64_t | io_wo_64 |
|
typedef volatile uint32_t | io_rw_32 |
|
typedef const volatile uint32_t | io_ro_32 |
|
typedef volatile uint32_t | io_wo_32 |
|
typedef volatile uint16_t | io_rw_16 |
|
typedef const volatile uint16_t | io_ro_16 |
|
typedef volatile uint16_t | io_wo_16 |
|
typedef volatile uint8_t | io_rw_8 |
|
typedef const volatile uint8_t | io_ro_8 |
|
typedef volatile uint8_t | io_wo_8 |
|
typedef volatile uint8_t *const | ioptr |
|
typedef ioptr const | const_ioptr |
|
|
static __force_inline uint32_t | xip_alias_check_addr (const void *addr) |
| static __force_inline void | hw_set_bits (io_rw_32 *addr, uint32_t mask) |
| | Atomically set the specified bits to 1 in a HW register.
|
| static __force_inline void | hw_clear_bits (io_rw_32 *addr, uint32_t mask) |
| | Atomically clear the specified bits to 0 in a HW register.
|
| static __force_inline void | hw_xor_bits (io_rw_32 *addr, uint32_t mask) |
| | Atomically flip the specified bits in a HW register.
|
| static __force_inline void | hw_write_masked (io_rw_32 *addr, uint32_t values, uint32_t write_mask) |
| | Set new values for a sub-set of the bits in a HW register.
|
◆ check_hw_layout
| #define check_hw_layout |
( |
| type, |
|
|
| member, |
|
|
| offset ) |
Value:static_assert(offsetof(type, member) == (offset), "hw offset mismatch")
◆ check_hw_size
| #define check_hw_size |
( |
| type, |
|
|
| size ) |
Value:static_assert(sizeof(type) == (size), "hw size mismatch")
◆ hw_alias_check_addr
| #define hw_alias_check_addr |
( |
| addr | ) |
|
◆ hw_clear_alias
| #define hw_clear_alias |
( |
| p | ) |
|
Value:((typeof(p))hw_clear_alias_untyped(p))
◆ hw_clear_alias_untyped
| #define hw_clear_alias_untyped |
( |
| addr | ) |
|
Value:((void *)(REG_ALIAS_CLR_BITS + hw_alias_check_addr(addr)))
◆ hw_set_alias
| #define hw_set_alias |
( |
| p | ) |
|
Value:((typeof(p))hw_set_alias_untyped(p))
◆ hw_set_alias_untyped
| #define hw_set_alias_untyped |
( |
| addr | ) |
|
Value:((void *)(REG_ALIAS_SET_BITS + hw_alias_check_addr(addr)))
◆ hw_xor_alias
| #define hw_xor_alias |
( |
| p | ) |
|
Value:((typeof(p))hw_xor_alias_untyped(p))
◆ hw_xor_alias_untyped
| #define hw_xor_alias_untyped |
( |
| addr | ) |
|
Value:((void *)(REG_ALIAS_XOR_BITS + hw_alias_check_addr(addr)))
◆ xip_noalloc_alias
| #define xip_noalloc_alias |
( |
| p | ) |
|
Value:((typeof(p))xip_noalloc_alias_untyped(p))
◆ xip_noalloc_alias_untyped
| #define xip_noalloc_alias_untyped |
( |
| addr | ) |
|
Value:((void *)(XIP_NOALLOC_BASE | xip_alias_check_addr(addr)))
◆ xip_nocache_alias
| #define xip_nocache_alias |
( |
| p | ) |
|
Value:((typeof(p))xip_nocache_alias_untyped(p))
◆ xip_nocache_alias_untyped
| #define xip_nocache_alias_untyped |
( |
| addr | ) |
|
Value:((void *)(XIP_NOCACHE_BASE | xip_alias_check_addr(addr)))
◆ xip_nocache_noalloc_alias
| #define xip_nocache_noalloc_alias |
( |
| p | ) |
|
Value:((typeof(p))xip_nocache_noalloc_alias_untyped(p))
◆ xip_nocache_noalloc_alias_untyped
| #define xip_nocache_noalloc_alias_untyped |
( |
| addr | ) |
|
Value:((void *)(XIP_NOCACHE_NOALLOC_BASE | xip_alias_check_addr(addr)))