44typedef enum : uint32_t {
52typedef enum : uint8_t {
58typedef enum : uint8_t {
131 __asm__
volatile(
"wfi");
183 uint32_t cpuclk0_hz = 0U;
void main(void)
Secure fallback main entry point.
static ra8_err_t internal_canfd_demo_one_round_trip(uint8_t seq)
One TX/RX round-trip.
static ra8_err_t internal_canfd_demo_enable_internal_loopback(uint8_t channel)
Enable Self-test 1 (internal loopback) on channel.
canfd_demo_layout_t
Channel + payload layout.
@ k_canfd_demo_channel
CANFD demo channel.
@ k_canfd_demo_dlc
CANFD demo dlc.
volatile uint32_t g_canfd_ncfg_after_setbitrate
NCFG readback latched at end of set_bitrate (proves NCFG write).
canfd_demo_const_t
Demo tunables.
@ k_canfd_demo_bitrate
CANFD demo bitrate.
@ k_canfd_demo_id
CANFD demo ID.
@ k_canfd_demo_period_ms
CANFD demo period ms.
@ k_canfd_demo_rx_spin
~10 ms RX poll budget at 1 GHz CPU.
static void internal_canfd_demo_panic_halt(void)
Park the processor after a fatal CAN-FD loopback failure.
volatile uint32_t g_canfd_init_step
Bring-up step tracker: 1=init ok, 2=set_bitrate ok, 3=loopback ok.
volatile uint32_t g_canfd_match
HIL liveness counter – incremented on every successful TX -> internal loopback -> RX round-trip.
canfd_demo_payload_t
Constant payload bytes for the heartbeat frame.
@ k_canfd_demo_payload_b7
CANFD demo payload b7.
@ k_canfd_demo_payload_b6
CANFD demo payload b6.
@ k_canfd_demo_payload_b4
CANFD demo payload b4.
@ k_canfd_demo_payload_b5
CANFD demo payload b5.
@ k_canfd_demo_payload_b3
CANFD demo payload b3.
@ k_canfd_demo_payload_b1
CANFD demo payload b1.
@ k_canfd_demo_payload_b2
CANFD demo payload b2.
static void internal_canfd_demo_setup_or_halt(void)
Bring CGC + SysTick + LEDs + CANFD0 up.
volatile uint32_t g_canfd_mismatch
HIL failure counter – incremented every time TX or RX returned a non-ok status.
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).
static volatile r_canfd_t * ra8_canfd(uint8_t channel)
Get pointer to CANFD instance N (0..1).
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.
volatile uint32_t NCFG
+0x000 Nominal Bitrate Config.
r_canfd_cfdc_t CFDC[1]
CFDC register.
A single CAN / CAN-FD frame as seen by the driver public API.