64typedef enum : uintptr_t {
69typedef enum : uint8_t {
83typedef enum : uint8_t {
99typedef enum : uint16_t {
157 volatile uint32_t
ID;
159 volatile uint32_t
P0;
160 volatile uint32_t
P1;
170 volatile uint32_t
ID;
183 volatile uint32_t
ID;
196 volatile uint32_t
ID;
221 volatile uint32_t
ID;
359typedef enum : uint8_t {
367typedef enum : uint32_t {
383typedef enum : uint8_t {
394typedef enum : uint8_t {
409typedef enum : uint8_t {
419typedef enum : uint32_t {
433typedef enum : uint8_t {
440typedef enum : uint32_t {
455typedef enum : uint8_t {
462typedef enum : uint32_t {
473typedef enum : uint32_t {
495typedef enum : uint32_t {
521typedef enum : uint8_t {
526typedef enum : uint32_t {
538typedef enum : uint8_t {
552typedef enum : uint32_t {
557typedef enum : uint32_t {
564typedef enum : uint32_t {
576typedef enum : uint32_t {
588typedef enum : uint32_t {
601typedef enum : uint32_t {
624typedef enum : uint32_t {
640typedef enum : uint16_t {
652typedef enum : uint32_t {
666typedef enum : uint32_t {
683typedef enum : uint32_t {
695typedef enum : uint8_t {
699typedef enum : uint32_t {
709typedef enum : uint8_t {
750typedef enum : uint8_t {
772typedef enum : uint32_t {
791typedef enum : uint8_t {
821typedef enum : uint32_t {
Annotation-attribute framework macros for ra8-firmware.
#define RA8_HW_REGISTER_ACCESS
Mark an MMIO accessor function (returns volatile register pointer).
ra8_gaflp1_bits_t
CFDGAFLP1r layout (HUM Ch 41.2.22 p 2740).
@ k_ra8_gaflp1_bit_gaflfdp0
Route to RX FIFO 0.
@ k_ra8_canfd_fd_brs
BRS: bit-rate switch.
@ k_ra8_canfd_fd_fdf
FDF: frame is CAN-FD.
@ k_ra8_canfd_fd_esi
ESI: error state indicator.
@ k_ra8_rfpctr_value_ack
Dummy write to pop entry.
ra8_canfd_frame_limits_t
Message-frame limits common to the public API and register layer.
@ k_ra8_canfd_dlc_max
4-bit DLC max value (64 bytes).
@ k_ra8_canfd_data_bytes_max
CAN-FD payload cap in bytes.
ra8_chmdc_mode_t
Channel Mode Control (CFDC[0].CTR.CHMDC[1:0]) values.
@ k_ra8_chmdc_operation
Bus operation mode.
@ k_ra8_chmdc_reset
Reset mode.
@ k_ra8_chmdc_keep
Keep current mode.
@ k_ra8_chmdc_halt
Halt mode.
@ k_ra8_canfd_afl_page_size
CFDGAFL[] page-window size.
@ k_ra8_canfd_tx_mb_count
CFDTM / CFDTMC / CFDTMSTS length.
@ k_ra8_canfd_instance_count
Number of CANFD channels.
@ k_ra8_canfd_cf_count
Common-FIFO array length.
@ k_ra8_canfd_rm_per_cluster
RX MB entries per cluster.
@ k_ra8_canfd_rm_clusters
CFDRM cluster array length.
@ k_ra8_canfd_rx_fifo_count
CFDRFCC / CFDRFSTS array length.
ra8_fdcfg_mask_t
Bit masks for the TDC fields in CFDCnFDCFG.
@ k_ra8_fdcfg_mask_tde
TDE positioned mask (bit 16).
@ k_ra8_fdcfg_mask_tdco
TDCO pre-shift 7-bit mask.
@ k_ra8_fdcfg_mask_tdcoc
TDCOC positioned mask (bit 15).
@ k_ra8_canfd_ptr_mask_dlc
4-bit DLC mask.
@ k_ra8_rfsts_bit_if
RFIF: interrupt flag.
@ k_ra8_rfsts_bit_empty
RFEMP: FIFO empty flag.
@ k_ra8_rfsts_bit_full
RFFLL: FIFO full flag.
@ k_ra8_rfsts_bit_mlt
RFMLT: message lost.
@ k_ra8_canfd_tmc_txreq
TMTR: transmit request.
@ k_ra8_canfd_tmc_oneshot
TMOM: one-shot mode.
@ k_ra8_canfd_tmc_abort
TMTAR: abort request.
@ k_ra8_canfd_ptr_shift_dlc
DLC field shift.
@ k_ra8_cncfg_mask_ntseg2
[31:25] 7-bit TSEG2 field.
@ k_ra8_cncfg_mask_ntseg1
[24:17] 8-bit TSEG1 field.
@ k_ra8_cncfg_mask_nsjw
[16:10] 7-bit SJW field.
@ k_ra8_cncfg_mask_nbrp
[9:0] 10-bit prescaler field.
@ k_ra8_cnerfl_mask_b1err
RA8 cnerfl mask b1err.
@ k_ra8_cnerfl_mask_blf
RA8 cnerfl mask blf.
@ k_ra8_cnerfl_mask_ferr
RA8 cnerfl mask ferr.
@ k_ra8_cnerfl_mask_bef
RA8 cnerfl mask bef.
@ k_ra8_cnerfl_mask_all_w1c
[14:0] all writable error bits.
@ k_ra8_cnerfl_mask_alf
RA8 cnerfl mask alf.
@ k_ra8_cnerfl_mask_serr
RA8 cnerfl mask serr.
@ k_ra8_cnerfl_mask_borf
RA8 cnerfl mask borf.
@ k_ra8_cnerfl_mask_ewf
RA8 cnerfl mask ewf.
@ k_ra8_cnerfl_mask_epf
RA8 cnerfl mask epf.
@ k_ra8_cnerfl_mask_b0err
RA8 cnerfl mask b0err.
@ k_ra8_cnerfl_mask_aderr
RA8 cnerfl mask aderr.
@ k_ra8_cnerfl_mask_boef
RA8 cnerfl mask boef.
@ k_ra8_cnerfl_mask_aerr
RA8 cnerfl mask aerr.
@ k_ra8_cnerfl_mask_ovlf
RA8 cnerfl mask ovlf.
@ k_ra8_cnerfl_mask_cerr
RA8 cnerfl mask cerr.
ra8_canfd_bit_timing_limits_t
Prescaler / TSEG / SJW resolution bounds shared by both phases.
@ k_ra8_canfd_sjw_max
Nominal SJW cap.
@ k_ra8_canfd_prescaler_max
Largest valid nominal prescaler.
@ k_ra8_canfd_dtseg1_max
Data-phase TSEG1 cap.
@ k_ra8_canfd_prescaler_min
Smallest valid prescaler.
@ k_ra8_canfd_dsjw_max
Data-phase SJW cap.
@ k_ra8_canfd_data_prescaler_max
Largest valid data prescaler (8-bit).
@ k_ra8_canfd_dtseg2_max
Data-phase TSEG2 cap.
@ k_ra8_canfd_tq_per_bit
Default time quanta per bit.
@ k_ra8_gctr_mask_gmdc
2-bit GMDC mask.
@ k_ra8_gctr_value_operation
GMDC = 0: operation.
@ k_ra8_gctr_mask_gslpr
RA8 gctr mask gslpr.
@ k_ra8_gctr_value_halt
GMDC = 2: halt.
@ k_ra8_gctr_value_reset
GMDC = 1: reset.
@ k_ra8_cnsts_mask_tec
TEC field mask (post-shift).
@ k_ra8_cnsts_mask_rec
REC field mask (post-shift).
@ k_ra8_canfd_id_thlen
TX history-list enable.
@ k_ra8_canfd_id_std_mask
11-bit standard ID.
@ k_ra8_canfd_id_rtr
RTR: remote frame.
@ k_ra8_canfd_id_ext_mask
29-bit extended ID.
@ k_ra8_canfd_id_ide
IDE: extended flag.
ra8_canfd_tdc_limits_t
Bounds on the Transmitter Delay Compensation Offset field.
@ k_ra8_canfd_tdc_offset_max
Maximum TDCO value: 7-bit field cap.
@ k_ra8_gaflectr_mask_aflpn
RA8 gaflectr mask aflpn.
@ k_ra8_gaflectr_bit_afldae
RA8 gaflectr bit afldae.
@ k_ra8_cnsts_bit_epst
Error Passive Status.
@ k_ra8_cnsts_bit_bosts
Bus-Off Status.
@ k_ra8_cnsts_bit_rec
REC[23:16] in STS.
@ k_ra8_cnsts_bit_crstst
Channel Reset Status.
@ k_ra8_cnsts_bit_chltst
Channel Halt Status.
@ k_ra8_cnsts_bit_cslpst
Channel Sleep Status.
@ k_ra8_cnsts_bit_tec
TEC[31:24] in STS.
@ k_ra8_rfcc_bit_rfie
RFIE: interrupt enable.
@ k_ra8_rfcc_bit_rfe
RFE: enable FIFO.
ra8_ctms_mode_t
Channel Test Mode Select values (CFDC[0].CTR.CTMS[1:0]).
@ k_ra8_ctms_self_test_1
11b: Self-test 1 (internal loopback).
@ k_ra8_ctms_listen_only
01b: Listen-only mode.
@ k_ra8_ctms_self_test_0
10b: Self-test 0 (external loopback).
@ k_ra8_ctms_basic
00b: Basic test mode (CRC observation).
@ k_ra8_cncfg_shift_ntseg1
RA8 cncfg shift ntseg1.
@ k_ra8_cncfg_shift_nsjw
RA8 cncfg shift nsjw.
@ k_ra8_cncfg_shift_ntseg2
RA8 cncfg shift ntseg2.
@ k_ra8_cncfg_shift_nbrp
RA8 cncfg shift nbrp.
@ k_ra8_canfd1_base_addr
HUM Ch 41 p 2702 channel 1 base.
@ k_ra8_canfd0_base_addr
HUM Ch 41 p 2702 channel 0 base.
@ k_ra8_cnctr_bit_ctms
Channel Test Mode Select [26:25].
@ k_ra8_cnctr_bit_chmdc
Channel Mode Control [1:0].
@ k_ra8_cnctr_bit_bom
Bus-Off Mode [22:21].
@ k_ra8_cnctr_bit_ctme
Channel Test Mode Enable bit 24.
@ k_ra8_cnctr_bit_cslpr
Channel Sleep Request bit 2.
static volatile r_canfd_t * ra8_canfd(uint8_t channel)
Get pointer to CANFD instance N (0..1).
ra8_canfd_gfdcfg_bits_t
CFDGFDCFG (Global FD Config) field positions.
@ k_ra8_gfdcfg_bit_niso
NISO: ISO mode select.
ra8_gaflcfg0_bits_t
CFDGAFLCFG0 layout (HUM Ch 41.2.18 p 2735).
@ k_ra8_gaflcfg0_mask_rnc0
RNC0 field is 5 bits.
@ k_ra8_gaflcfg0_shift_rnc0
Position of RNC0[4:0].
ra8_canfd_afl_total_t
Maximum number of GAFL filter rules across all paged windows.
@ k_ra8_canfd_afl_total
16 pages x 16 entries.
ra8_canfd_pad_t
Reserved-region sizes between FSP-named registers.
@ k_ra8_canfd_pad_rm_cluster_words
CFDRM cluster pad (0x1A0/4).
@ k_ra8_canfd_rpgacc_word_count
CFDRPGACC[64] RAM-test page.
@ k_ra8_canfd_pad_before_thl_words
0x734..0x73F -> 3 words.
@ k_ra8_canfd_pad_before_rm_words
0x748..0x91F -> 118 words.
@ k_ra8_canfd_pad_before_rf_words
0x380..0x51F -> 104 words.
@ k_ra8_canfd_pad_after_grstc_words
0x0DC..0x0FF -> 9 words.
@ k_ra8_canfd_pad_before_grstc
0x0D0..0x0D7 -> 2 words.
@ k_ra8_canfd_pad_before_rpgacc
0x220..0x27F -> 24 words.
@ k_ra8_canfd_pad_cfdc2_tail_bytes
CFDC2 reserved tail (3 words).
@ k_ra8_dcfg_shift_dbrp
RA8 dcfg shift dbrp.
@ k_ra8_dcfg_shift_dtseg1
RA8 dcfg shift dtseg1.
@ k_ra8_dcfg_shift_dtseg2
RA8 dcfg shift dtseg2.
@ k_ra8_dcfg_shift_dsjw
RA8 dcfg shift dsjw.
@ k_ra8_dcfg_mask_dbrp
[7:0] 8-bit DBRP.
@ k_ra8_dcfg_mask_dtseg1
[12:8] 5-bit DTSEG1.
@ k_ra8_dcfg_mask_dsjw
[27:24] 4-bit DSJW.
@ k_ra8_dcfg_mask_dtseg2
[19:16] 4-bit DTSEG2.
ra8_gaflm_bits_t
CFDGAFLM (Acceptance Filter Mask) layout (HUM Ch 41.2.20 p 2736).
@ k_ra8_gaflm_bit_gafllb
Loopback Configuration bit.
@ k_ra8_gaflm_bit_gaflidem
IDE-compare mask bit.
@ k_ra8_gaflm_bit_gaflrtrm
RTR-compare mask bit.
@ k_ra8_cnctr_mask_ctme
CTME bit 24.
@ k_ra8_cnctr_mask_ctms
CTMS[1:0] at bits [26:25].
@ k_ra8_cnctr_mask_cslpr
CSLPR (bit 2).
@ k_ra8_cnctr_mask_chmdc
2-bit CHMDC mask.
ra8_fdcfg_shift_t
Bit-shift positions for the TDC fields in CFDCnFDCFG.
@ k_ra8_fdcfg_shift_tdco
TDCO[14:8]: 7-bit TDC offset bit-shift.
@ k_ra8_fdcfg_shift_tde
TDE[16]: TDC enable bit-shift.
@ k_ra8_fdcfg_shift_tdcoc
TDCOC[15]: TDC offset-control bit-shift.
ra8_gsts_bit_t
Global Status (CFDGSTS) bit positions.
@ k_ra8_gsts_bit_ghltsts
Global Halt Status.
@ k_ra8_gsts_bit_graminit
Global RAM Initialisation.
@ k_ra8_gsts_bit_gslpsts
Global Sleep Status.
@ k_ra8_gsts_bit_grststs
Global Reset Status.
@ k_ra8_gctr_bit_gslpr
Global Sleep Request bit.
@ k_ra8_gctr_bit_gmdc
GMDC field [1:0].
ra8_fdsts_mask_t
Bit mask for the TDCR read-only measurement in CFDCnFDSTS.
@ k_ra8_fdsts_mask_tdcr
TDCR[7:0]: 8-bit measured TDC result.
volatile uint32_t FDCFG
+0x004 CAN-FD Config.
volatile uint32_t DCFG
+0x000 Data Bitrate Config.
volatile uint32_t FDSTS
+0x00C CAN-FD Status.
volatile uint32_t FDCRC
+0x010 CAN-FD CRC.
volatile uint8_t _reserved[k_ra8_canfd_pad_cfdc2_tail_bytes]
Reserved.
volatile uint32_t FDCTR
+0x008 CAN-FD Control.
volatile uint32_t NCFG
+0x000 Nominal Bitrate Config.
volatile uint32_t ERFL
+0x00C Channel Error Flag.
volatile uint32_t CTR
+0x004 Channel Control.
volatile uint32_t STS
+0x008 Channel Status.
volatile uint32_t FDSTS
+0x008 CFESI + CFBRS + CFFDF + ...
volatile uint32_t ID
+0x000 CFID + THLEN + CFRTR + IDE.
volatile uint32_t PTR
+0x004 CFTS + CFDLC.
volatile uint8_t DF[k_ra8_canfd_data_bytes_max]
+0x00C 64-byte data field.
volatile uint32_t P1
+0x00C GAFLFDP.
volatile uint32_t M
+0x004 GAFLIDM + GAFLIFL1 + GAFLRTRM + IDEM.
volatile uint32_t P0
+0x008 GAFLDLC + GAFLIFL0 + GAFLRMDP + ...
volatile uint32_t ID
+0x000 GAFLID + GAFLLB + GAFLRTR + GAFLIDE.
volatile uint32_t PTR
+0x004 RFTS + RFDLC.
volatile uint8_t DF[k_ra8_canfd_data_bytes_max]
+0x00C 64-byte data field.
volatile uint32_t ID
+0x000 RFID + RFRTR + RFIDE.
volatile uint32_t FDSTS
+0x008 RFESI + RFBRS + RFFDF + ...
volatile uint32_t PTR
+0x004 RMTS + RMDLC.
volatile uint32_t ID
+0x000 RMID + RMRTR + RMIDE.
volatile uint8_t DF[k_ra8_canfd_data_bytes_max]
+0x00C 64-byte data field.
volatile uint32_t FDSTS
+0x008 RMESI + RMBRS + RMFDF.
r_canfd_cfdrm_entry_t RM[k_ra8_canfd_rm_per_cluster]
+0x000 8 RX MBs.
volatile uint32_t _reserved[k_ra8_canfd_pad_rm_cluster_words]
0x4C * 8 = 0x260 -> pad to 0x400 (104 words).
volatile uint32_t ACC1
+0x004 TID + TIFL.
volatile uint32_t ACC0
+0x000 BT + BN + TMTS.
volatile uint32_t FDCTR
+0x008 TMESI + TMBRS + TMFDF + ...
volatile uint32_t PTR
+0x004 TMTS + TMDLC.
volatile uint8_t DF[k_ra8_canfd_data_bytes_max]
+0x00C 64-byte data field.
volatile uint32_t ID
+0x000 TMID + THLEN + TMRTR + IDE.
volatile uint32_t CFDGTSC
CFDGTSC register (offset 0x024).
volatile uint32_t CFDGAFLECTR
CFDGAFLECTR register (offset 0x028).
volatile uint32_t CFDRFPCTR[k_ra8_canfd_rx_fifo_count]
CFDRFPCTR reg (offset 0x04C..0x053).
volatile uint32_t CFDRMIEC
CFDRMIEC register (offset 0x038).
volatile uint32_t CFDCFSTS[k_ra8_canfd_cf_count]
CFDCFSTS register (offset 0x058).
volatile uint32_t CFDGRSTC
CFDGRSTC register (offset 0x0D8).
volatile uint32_t CFDRFSTS[k_ra8_canfd_rx_fifo_count]
CFDRFSTS register (offset 0x044..0x04B).
volatile uint32_t _r_after_grstc[k_ra8_canfd_pad_after_grstc_words]
Reserved (offset 0x0DC..0x0FF).
volatile uint32_t CFDGSTS
CFDGSTS register (offset 0x01C).
volatile uint32_t _r_after_cfdc
Reserved (offset 0x010).
volatile uint32_t CFDTMTRSTS[1]
CFDTMTRSTS register (offset 0x078).
volatile uint32_t CFDTXQCC0[1]
CFDTXQCC0 register (offset 0x08C).
volatile uint32_t _r_before_thl[k_ra8_canfd_pad_before_thl_words]
Reserved (offset 0x734..0x73F).
volatile uint32_t CFDGCFG
CFDGCFG register (offset 0x014).
volatile uint32_t CFDTMTARSTS[1]
CFDTMTARSTS register (offset 0x07C).
volatile uint32_t CFDGFDCFG
CFDGFDCFG register (offset 0x0B0).
volatile uint32_t CFDGCTR
CFDGCTR register (offset 0x018).
volatile uint32_t CFDGAFLIGNCTR
CFDGAFLIGNCTR reg (offset 0x0C4).
volatile uint32_t CFDTHLCC[1]
CFDTHLCC register (offset 0x098).
r_canfd_cfdthl_t CFDTHL[1]
CFDTHL register (offset 0x740..0x747).
volatile uint32_t CFDTMTCSTS[1]
CFDTMTCSTS register (offset 0x080).
volatile uint32_t CFDTMTASTS[1]
CFDTMTASTS register (offset 0x084).
volatile uint32_t CFDRMNB
CFDRMNB register (offset 0x030).
volatile uint32_t _r_before_rpgacc[k_ra8_canfd_pad_before_rpgacc]
Reserved (offset 0x220..0x27F).
volatile uint32_t CFDRMND0
CFDRMND0 register (offset 0x034).
volatile uint8_t CFDTMC[k_ra8_canfd_tx_mb_count]
CFDTMC register (offset 0x070).
volatile uint32_t _r_before_rf[k_ra8_canfd_pad_before_rf_words]
Reserved (offset 0x380..0x51F).
r_canfd_cfdtm_t CFDTM[k_ra8_canfd_tx_mb_count]
CFDTM register (offset 0x604..0x733).
volatile uint32_t CFDFMSTS
CFDFMSTS register (offset 0x068).
volatile uint32_t CFDTMIEC[1]
CFDTMIEC register (offset 0x088).
r_canfd_cfdgafl_t CFDGAFL[k_ra8_canfd_afl_page_size]
CFDGAFL register (offset 0x120 (0x100)).
volatile uint32_t CFDCDTSTS
CFDCDTSTS register (offset 0x0CC).
volatile uint32_t CFDGTSTCFG
CFDGTSTCFG register (offset 0x0A8).
volatile uint32_t _r_after_gfdcfg
Reserved (offset 0x0B4).
r_canfd_cfdrf_t CFDRF[k_ra8_canfd_rx_fifo_count]
CFDRF register (offset 0x520..0x5B7).
volatile uint32_t CFDGAFLIGNENT
CFDGAFLIGNENT reg (offset 0x0C0).
volatile uint32_t CFDGERFL
CFDGERFL register (offset 0x020).
volatile uint32_t CFDTHLPCTR[1]
CFDTHLPCTR register (offset 0x0A0).
volatile uint32_t CFDGLOCKK
CFDGLOCKK register (offset 0x0B8).
volatile uint32_t CFDTXQSTS0[1]
CFDTXQSTS0 register (offset 0x090).
volatile uint32_t CFDFESTS
CFDFESTS register (offset 0x060).
volatile uint32_t CFDCFCC[k_ra8_canfd_cf_count]
CFDCFCC register (offset 0x054).
volatile uint32_t _r_after_glockk
Reserved (offset 0x0BC).
volatile uint32_t CFDCDTCT
CFDCDTCT register (offset 0x0C8).
volatile uint32_t CFDRFCC[k_ra8_canfd_rx_fifo_count]
CFDRFCC register (offset 0x03C..0x043).
volatile uint32_t CFDFFSTS
CFDFFSTS register (offset 0x064).
volatile uint32_t CFDTXQPCTR0[1]
CFDTXQPCTR0 register (offset 0x094).
volatile uint32_t CFDRPGACC[k_ra8_canfd_rpgacc_word_count]
CFDRPGACC register (offset 0x280 (0x100)).
r_canfd_cfdcf_t CFDCF[k_ra8_canfd_cf_count]
CFDCF register (offset 0x5B8..0x603).
volatile uint32_t CFDTHLSTS[1]
CFDTHLSTS register (offset 0x09C).
volatile uint32_t _r_before_grstc[k_ra8_canfd_pad_before_grstc]
Reserved (offset 0x0D0..0x0D7).
volatile uint32_t _r_before_rm[k_ra8_canfd_pad_before_rm_words]
Reserved (offset 0x748..0x91F).
volatile uint32_t CFDRFISTS
CFDRFISTS register (offset 0x06C).
volatile uint8_t CFDTMSTS[k_ra8_canfd_tx_mb_count]
CFDTMSTS register (offset 0x074).
volatile uint32_t CFDGTINTSTS0
CFDGTINTSTS0 register (offset 0x0A4).
volatile uint32_t CFDCFPCTR[k_ra8_canfd_cf_count]
CFDCFPCTR register (offset 0x05C).
r_canfd_cfdc_t CFDC[1]
CFDC register.
r_canfd_cfdrm_t CFDRM[k_ra8_canfd_rm_clusters]
CFDRM register (offset 0x920..0x191F).
r_canfd_cfdc2_t CFDC2[1]
CFDC2 register (offset 0x100 (0x20)).
volatile uint32_t CFDGTSTCTR
CFDGTSTCTR register (offset 0x0AC).
volatile uint32_t CFDGAFLCFG0
CFDGAFLCFG0 register (offset 0x02C).