ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_dtc.h
Go to the documentation of this file.
1
31
32#pragma once
33
34#ifdef __cplusplus
35extern "C" {
36#endif
37
38#include <stdint.h>
39
40#include "ra8_dtc_regs.h"
41#include "ra8_err.h"
42
47typedef void (*ra8_dtc_event_fn_t)(void* ctx, uint16_t status);
48
56[[nodiscard]] ra8_err_t ra8_dtc_init(void* vector_base);
57
62[[nodiscard]] ra8_err_t ra8_dtc_deinit(void);
63
68[[nodiscard]] ra8_err_t ra8_dtc_enable(void);
69
74[[nodiscard]] ra8_err_t ra8_dtc_disable(void);
75
87[[nodiscard]] ra8_err_t ra8_dtc_reconfigure(void* vector_base);
88
93[[nodiscard]] ra8_err_t ra8_dtc_get_status(uint16_t* out_mask);
94
99[[nodiscard]] ra8_err_t ra8_dtc_clear_status(uint16_t mask);
100
111[[nodiscard]] ra8_err_t ra8_dtc_attach_handler(ra8_dtc_event_fn_t fn, void* ctx);
112
131void ra8_dtc_dispatch(void);
132
137[[nodiscard]] ra8_err_t ra8_dtc_enter_stop(void);
138
143[[nodiscard]] ra8_err_t ra8_dtc_exit_stop(void);
144
145#ifdef __cplusplus
146}
147#endif
void(* ra8_dtc_event_fn_t)(void *ctx, uint16_t status)
DTC activation-complete callback.
Definition ra8_dtc.h:47
ra8_err_t ra8_dtc_disable(void)
Stop the DTC module.
Definition ra8_dtc.c:124
ra8_err_t ra8_dtc_enter_stop(void)
Put the DTC into MSTP-gated stop.
Definition ra8_dtc.c:193
ra8_err_t ra8_dtc_get_status(uint16_t *out_mask)
Read the DTCSTS activation status register.
Definition ra8_dtc.c:156
ra8_err_t ra8_dtc_deinit(void)
Tear down the DTC (clears run bit + drops MSTP ref).
Definition ra8_dtc.c:89
ra8_err_t ra8_dtc_reconfigure(void *vector_base)
Reconfigure the DTC vector base at runtime.
Definition ra8_dtc.c:131
ra8_err_t ra8_dtc_exit_stop(void)
Exit MSTP-gated stop and re-arm the engine.
Definition ra8_dtc.c:200
void ra8_dtc_dispatch(void)
Fire the attached activation callback with current DTCSTS.
Definition ra8_dtc.c:180
ra8_err_t ra8_dtc_attach_handler(ra8_dtc_event_fn_t fn, void *ctx)
Attach a shared activation-complete callback.
Definition ra8_dtc.c:172
ra8_err_t ra8_dtc_enable(void)
Start the DTC module.
Definition ra8_dtc.c:104
ra8_err_t ra8_dtc_clear_status(uint16_t mask)
Clear sticky bits in DTCSTS.
Definition ra8_dtc.c:164
ra8_err_t ra8_dtc_init(void *vector_base)
Initialise the DTC and install its vector table base.
Definition ra8_dtc.c:60
DTC (Data Transfer Controller) register layout for the RA8D2.
Error Code Definitions for ra8-firmware.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Definition ra8_err.h:546