76typedef enum : uintptr_t {
92typedef enum : uint32_t {
106 "ping_base + delta must equal pong_base");
113 "shared block must be 32-byte (cache-line) aligned");
cache_coherency_shared_const_t
Compile-time magics + budgets for the shared block.
@ k_cache_coherency_delta
pong_base - ping_base (CPU1 add).
@ k_cache_coherency_poll_budget
Max spin iters per direction.
@ k_cache_coherency_rounds
Verified rounds before PASS.
@ k_cache_coherency_pong_base
Expected round-0 pong payload.
@ k_cache_coherency_ping_base
CPU0 round-0 ping payload.
@ k_cache_coherency_align_bytes
Cache-line / region quantum.
cache_coherency_addr_t
Where this app puts its shared block inside the board's window.
@ k_cache_coherency_shared_addr
Shared block = window base.
static volatile cache_coherency_shared_t * internal_shared(void)
Typed pointer to the fixed-address shared message block.
Annotation-attribute framework macros for ra8-firmware.
#define RA8_INTERNAL
Marker that a function is intended to be static (file-local).
Where the EK-RA8D2's Cortex-M85 and Cortex-M33 meet, stated once.
@ k_ra8_board_shared_ram_base
Start of SRAM2: the CPU0 <-> CPU1 meeting window.
Cross-CPU message struct backed by a fixed non-cacheable SRAM address.
volatile uint32_t ping_payload
CPU0 writes ping_base + r, CPU1 reads.
volatile uint32_t ping_seq
CPU0 increments after writing payload.
volatile uint32_t pong_seq
CPU1 sets to match ping_seq after reply.
volatile uint32_t pong_payload
CPU1 writes ping_payload + delta.