38typedef enum : uint32_t {
45typedef enum : uint8_t {
51typedef enum : uint8_t {
118 __asm__
volatile(
"wfi");
174 uint32_t cpuclk0_hz = 0U;
void main(void)
Secure fallback main entry point.
can_demo_const_t
Demo tunables.
@ k_can_demo_period_ms
CAN demo period ms.
@ k_can_demo_bitrate
CAN demo bitrate.
@ k_can_demo_id
CAN demo ID.
can_demo_layout_t
Channel + payload layout.
@ k_can_demo_channel
CAN demo channel.
@ k_can_demo_dlc
CAN demo dlc.
volatile uint32_t g_can_mismatch
HIL failure counter – incremented every time TX or RX returned a non-ok status.
static ra8_err_t internal_can_demo_enable_internal_loopback(uint8_t channel)
Enable Self-test 1 (internal loopback) on channel.
volatile uint32_t g_can_match
HIL liveness counter – incremented on every successful TX -> internal loopback -> RX round-trip.
static ra8_err_t internal_can_demo_one_round_trip(uint8_t seq)
One classic-CAN TX/RX round-trip.
static void internal_can_demo_setup_or_halt(void)
Bring CGC + SysTick + LEDs + CANFD0 (classic mode) up.
can_demo_byte_t
Constant payload bytes for the heartbeat frame.
@ k_can_demo_byte_marker_g
CAN demo byte marker g.
@ k_can_demo_byte_marker_d
CAN demo byte marker d.
@ k_can_demo_byte_marker_a
CAN demo byte marker a.
@ k_can_demo_byte_marker_c
CAN demo byte marker c.
@ k_can_demo_byte_marker_f
CAN demo byte marker f.
@ k_can_demo_byte_marker_b
CAN demo byte marker b.
@ k_can_demo_byte_marker_e
CAN demo byte marker e.
static void internal_can_demo_panic_halt(void)
Park forever after a fatal classic-CAN demo failure.
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_led_toggle(ra8_board_led_id_t led)
Toggle led's output state.
ra8_err_t ra8_board_led_init(ra8_board_led_id_t led)
Configure led as a digital output, initial level low (off).
@ k_ra8_board_led2
LED2, GREEN, P303 (jumper E26).
@ k_ra8_board_led1
LED1, BLUE, P600 (jumper E27).
Boot entry points shared between a vector table and its startup code.
CANFD Lite driver (bit-timing, TX, RX, error state).
ra8_err_t ra8_canfd_transmit(uint8_t channel, const ra8_canfd_frame_t *frame)
Queue a frame into the TX message buffer and trigger transmission.
ra8_err_t ra8_canfd_set_bitrate(uint8_t channel, uint32_t bitrate_bps, uint32_t data_bitrate_bps)
Programme nominal (and optional data) bit-timing registers.
ra8_err_t ra8_canfd_receive(uint8_t channel, ra8_canfd_frame_t *out_frame)
Poll the RX FIFO for the next available frame.
ra8_err_t ra8_canfd_init(uint8_t channel)
Take a CANFD channel out of reset into operation mode.
ra8_err_t ra8_canfd_set_test_mode(uint8_t channel, ra8_ctms_mode_t mode)
Enable a CFDC[0].CTR test mode (basic / listen-only / loopback).
CANFD controller register layout for the Renesas RA8D2.
@ k_ra8_ctms_self_test_1
11b: Self-test 1 (internal loopback).
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.
@ k_ra8_clock_id_cpuclk0
Cortex-M85 CPUCLK0.
ra8_err_t ra8_cgc_init(void)
Configure the clock tree to a safe default.
Error Code Definitions for ra8-firmware.
@ k_ra8_err_no_data
No application data available (e.g.
@ k_ra8_ok
Success – operation completed with all postconditions satisfied.
@ k_ra8_err_hw_error
Generic hardware fault detected (error flag set, fault interrupt).
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
NVIC + ICU IELSR allocator.
void ra8_isr_globals_enable(void)
Globally enable maskable interrupts (PRIMASK = 0).
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.
void ra8_delay_ms(uint32_t ms)
Busy-wait for at least ms milliseconds.
A single CAN / CAN-FD frame as seen by the driver public API.