ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
main.c
Go to the documentation of this file.
1
19
20#include <stdint.h>
21
22#include "ra8_attributes.h"
23#include "ra8_board_ek_ra8d2.h"
24#include "ra8_boot_entry.h"
25#include "ra8_cgc.h"
26#include "ra8_err.h"
27#include "ra8_isr.h"
28#include "ra8_time.h"
29
31typedef enum : uint32_t {
34
53volatile uint32_t g_gpio_input_tick = 0U;
54
72{
73 while (1) {
74 __asm__ volatile("wfi");
75 }
76}
77
114
141[[nodiscard]] RA8_INTERNAL static ra8_err_t
143{
145 if (err != k_ra8_ok) {
146 return err;
147 }
148 if (*out_state == k_ra8_board_sw_pressed) {
150 }
152}
153
154void main(void)
155{
158
159 while (1) {
162 break;
163 }
164 g_gpio_input_tick += 1U;
166 }
168}
void main(void)
Secure fallback main entry point.
Definition main.c:37
static void internal_gpio_demo_setup_or_halt(void)
Bring CGC + SysTick + LED1 + SW1 up.
Definition main.c:95
volatile uint32_t g_gpio_input_tick
HIL liveness counter – incremented each poll iteration.
Definition main.c:53
static ra8_err_t internal_gpio_demo_one_iter(ra8_board_sw_state_t *out_state)
One poll iteration: read SW1, drive LED1.
Definition main.c:142
gpio_demo_const_t
Demo tunables.
Definition main.c:31
@ k_gpio_demo_poll_ms
GPIO demo poll ms.
Definition main.c:32
static void internal_gpio_demo_panic_halt(void)
Park the CPU after a fatal GPIO demo failure.
Definition main.c:71
Annotation-attribute framework macros for ra8-firmware.
#define RA8_INTERNAL
Marker that a function is intended to be static (file-local).
Board-support layer for the Renesas EK-RA8D2 v1 evaluation kit.
ra8_err_t ra8_board_sw_read(ra8_board_sw_id_t sw, ra8_board_sw_state_t *out_pressed)
Sample the current state of sw.
ra8_err_t ra8_board_sw_init(ra8_board_sw_id_t sw)
Configure a switch pin as an input with internal pull-up.
@ k_ra8_board_sw1
SW1, P009, IRQ13-DS (jumper E31).
ra8_err_t ra8_board_led_init(ra8_board_led_id_t led)
Configure led as a digital output, initial level low (off).
ra8_err_t ra8_board_led_on(ra8_board_led_id_t led)
Drive led HIGH (light it).
ra8_err_t ra8_board_led_off(ra8_board_led_id_t led)
Drive led LOW (extinguish it).
ra8_board_sw_state_t
Logical "pressed" / "released" state.
@ k_ra8_board_sw_released
RA8 board sw released.
@ k_ra8_board_sw_pressed
RA8 board sw pressed.
@ k_ra8_board_led1
LED1, BLUE, P600 (jumper E27).
Boot entry points shared between a vector table and its startup code.
High-level Clock Generation Circuit driver.
ra8_err_t ra8_cgc_get_clock_hz(ra8_clock_id_t id, uint32_t *out_hz)
Query the current frequency of a clock-tree domain.
Definition ra8_cgc.c:132
@ k_ra8_clock_id_cpuclk0
Cortex-M85 CPUCLK0.
Definition ra8_cgc.h:70
ra8_err_t ra8_cgc_init(void)
Configure the clock tree to a safe default.
Definition ra8_cgc.c:727
Error Code Definitions for ra8-firmware.
@ k_ra8_ok
Success – operation completed with all postconditions satisfied.
Definition ra8_err.h:119
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Definition ra8_err.h:546
NVIC + ICU IELSR allocator.
void ra8_isr_globals_enable(void)
Globally enable maskable interrupts (PRIMASK = 0).
Definition ra8_isr.c:439
SysTick-based tick counter, delay and timestamp helpers.
ra8_err_t ra8_time_init(uint32_t cpu_hz)
Initialise SysTick for a 1 kHz tick interrupt.
Definition ra8_time.c:59
void ra8_delay_ms(uint32_t ms)
Busy-wait for at least ms milliseconds.
Definition ra8_time.c:129