ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_boot_intrinsics.h
Go to the documentation of this file.
1
20
21#pragma once
22
23#include <stdint.h>
24
38static inline uint32_t ra8_boot_read32(uintptr_t addr)
39{
40 return *(volatile uint32_t*)addr;
41}
42
55static inline void ra8_boot_write32(uintptr_t addr, uint32_t value)
56{
57 *(volatile uint32_t*)addr = value;
58}
59
70static inline void ra8_boot_dsb(void)
71{
72#ifndef RA8_OFF_TARGET
73 __asm__ volatile("dsb 0xF" ::: "memory");
74#endif
75}
76
87static inline void ra8_boot_isb(void)
88{
89#ifndef RA8_OFF_TARGET
90 __asm__ volatile("isb 0xF" ::: "memory");
91#endif
92}
93
104static inline void ra8_boot_disable_irq(void)
105{
106#ifndef RA8_OFF_TARGET
107 __asm__ volatile("cpsid i" ::: "memory");
108#endif
109}
static uint32_t ra8_boot_read32(uintptr_t addr)
Volatile 32-bit MMIO read.
static void ra8_boot_write32(uintptr_t addr, uint32_t value)
Volatile 32-bit MMIO write.
static void ra8_boot_isb(void)
Instruction synchronisation barrier (no-op under RA8_OFF_TARGET).
static void ra8_boot_disable_irq(void)
Mask IRQs / set PRIMASK (no-op under RA8_OFF_TARGET).
static void ra8_boot_dsb(void)
Data synchronisation barrier (no-op under RA8_OFF_TARGET).