|
ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
|
Data Operation Circuit (DOC) register layout for the Renesas RA8D2. More...
#include <stdint.h>Go to the source code of this file.
Data Structures | |
| struct | r_doc_regs_t |
| DOC_B register window (HUM Ch 57.2 p 3519-3522). More... | |
Enumerations | |
| enum | ra8_doc_addr_t : uintptr_t { k_ra8_doc_base_addr = 0x40311000UL } |
| Memory-mapped base address for the DOC block. More... | |
| enum | ra8_docr_oms_t : uint8_t { k_ra8_doc_mode_compare = 0U , k_ra8_doc_mode_add = 1U , k_ra8_doc_mode_subtract = 2U , k_ra8_doc_mode_reserved = 3U } |
| Operation-mode codes written to DOCR.OMS[1:0] (HUM 57.2.1 p 3519). More... | |
| enum | ra8_docr_bit_t : uint8_t { k_ra8_doc_bit_oms0 = 0U , k_ra8_doc_bit_oms1 = 1U , k_ra8_doc_bit_dobw = 3U , k_ra8_doc_bit_dcsel = 4U } |
| DOCR control-bit positions (HUM 57.2.1 p 3519). More... | |
| enum | ra8_docr_mask_t : uint8_t { k_ra8_doc_mask_oms = 0x03U , k_ra8_doc_mask_dobw = 0x08U , k_ra8_doc_mask_dcsel = 0x70U } |
| DOCR bit masks (HUM 57.2.1 p 3519). More... | |
| enum | ra8_docr_field_mask_t : uint8_t { k_ra8_doc_mask_dcsel_field = 0x07U } |
| Mask for the 3-bit DCSEL sub-field after right-shifting DOCR by k_ra8_doc_bit_dcsel (HUM 57.2.1 p 3519). More... | |
| enum | ra8_docr_dcsel_t : uint8_t { k_ra8_doc_dcsel_mismatch = 0U , k_ra8_doc_dcsel_match = 1U , k_ra8_doc_dcsel_lower = 2U , k_ra8_doc_dcsel_upper = 3U , k_ra8_doc_dcsel_inside = 4U , k_ra8_doc_dcsel_outside = 5U } |
| Detection-condition select codes for DOCR.DCSEL[2:0] (HUM 57.2.1 p 3519). More... | |
| enum | ra8_dosr_mask_t : uint8_t { k_ra8_doc_mask_dopcf = 0x01U } |
| DOSR status bit masks (HUM 57.2.2 p 3520). More... | |
| enum | ra8_doscr_mask_t : uint8_t { k_ra8_doc_mask_dopcfcl = 0x01U } |
| DOSCR status-clear bit masks (HUM 57.2.3 p 3521). More... | |
Functions | |
| static volatile r_doc_regs_t * | ra8_doc (void) |
| Get a pointer to the DOC register block. | |
Data Operation Circuit (DOC) register layout for the Renesas RA8D2.
The Data Operation Circuit on the RA8D2 is the DOC_B variant. It supports 16- or 32-bit add, subtract, and compare operations. Operation mode and bit-width are selected via the DOCR.OMS[1:0] and DOCR.DOBW fields:
| OMS | Mode | Action |
|---|---|---|
| 00 | Compare | Set DOPCF when DOCR.DCSEL condition matches |
| 01 | Add | DODSR0 <- DODSR0 + DODIR (overflow flag) |
| 10 | Subtract | DODSR0 <- DODSR0 - DODIR (borrow flag) |
| 11 | reserved | - |
Register window layout (HUM Ch 57.2, p 3519-3522):
| Offset | Width | Name | Function |
|---|---|---|---|
| 0x00 | 8 | DOCR | Control (OMS, DOBW, DCSEL) |
| 0x04 | 8 | DOSR | Status flag (DOPCF) |
| 0x08 | 8 | DOSCR | Status clear (DOPCFCL, write-only) |
| 0x0C | 32 | DODIR | Data input (access width per DOBW) |
| 0x10 | 32 | DODSR0 | Reference / running result (per DOBW) |
| 0x14 | 32 | DODSR1 | Upper window threshold (compare mode) |
The block lives at base 0x40311000 (peripheral bus). Layout cross-verified against HUM Ch 57 "Data Operation Circuit (DOC)" p 3518-3522.
Definition in file ra8_doc_regs.h.
| enum ra8_doc_addr_t : uintptr_t |
Memory-mapped base address for the DOC block.
| Enumerator | |
|---|---|
| k_ra8_doc_base_addr | DOC_B peripheral base, HUM Ch 57.2 p 3519. |
Definition at line 50 of file ra8_doc_regs.h.
| enum ra8_docr_bit_t : uint8_t |
DOCR control-bit positions (HUM 57.2.1 p 3519).
Definition at line 69 of file ra8_doc_regs.h.
| enum ra8_docr_dcsel_t : uint8_t |
Detection-condition select codes for DOCR.DCSEL[2:0] (HUM 57.2.1 p 3519).
These are the 3-bit values written into DOCR bits [6:4] (i.e. the pre-shift field value). They are valid only when DOCR.OMS[1:0] == 00 (data comparison mode). Values 6 and 7 are reserved per the HUM.
For window modes (k_ra8_doc_dcsel_inside and k_ra8_doc_dcsel_outside) DODSR0 is the lower threshold and DODSR1 is the upper threshold. The HUM constraint DODSR1 > DODSR0 (strict) must hold; the driver API enforces this at ra8_doc_set_window() time.
Boundary values (DODIR == DODSR0 or DODIR == DODSR1) do NOT satisfy either window condition; the comparisons are strictly less-than / greater-than.
Definition at line 133 of file ra8_doc_regs.h.
| enum ra8_docr_field_mask_t : uint8_t |
Mask for the 3-bit DCSEL sub-field after right-shifting DOCR by k_ra8_doc_bit_dcsel (HUM 57.2.1 p 3519).
After reading DOCR and shifting right by k_ra8_doc_bit_dcsel (4), AND with this mask to isolate the 3-bit DCSEL value before comparing against ra8_docr_dcsel_t constants.
| Enumerator | |
|---|---|
| k_ra8_doc_mask_dcsel_field | 3-bit DCSEL value mask (bits 2:0). |
Definition at line 98 of file ra8_doc_regs.h.
| enum ra8_docr_mask_t : uint8_t |
DOCR bit masks (HUM 57.2.1 p 3519).
| Enumerator | |
|---|---|
| k_ra8_doc_mask_oms | OMS[1:0] field mask. |
| k_ra8_doc_mask_dobw | DOBW bit mask. |
| k_ra8_doc_mask_dcsel | DCSEL[2:0] field mask in DOCR (bits 6:4). |
Definition at line 80 of file ra8_doc_regs.h.
| enum ra8_docr_oms_t : uint8_t |
Operation-mode codes written to DOCR.OMS[1:0] (HUM 57.2.1 p 3519).
Definition at line 58 of file ra8_doc_regs.h.
| enum ra8_doscr_mask_t : uint8_t |
DOSCR status-clear bit masks (HUM 57.2.3 p 3521).
| Enumerator | |
|---|---|
| k_ra8_doc_mask_dopcfcl | Write 1 to clear DOPCF. |
Definition at line 154 of file ra8_doc_regs.h.
| enum ra8_dosr_mask_t : uint8_t |
DOSR status bit masks (HUM 57.2.2 p 3520).
| Enumerator | |
|---|---|
| k_ra8_doc_mask_dopcf | Data-operation circuit flag. |
Definition at line 146 of file ra8_doc_regs.h.
|
inlinestatic |
Get a pointer to the DOC register block.
Definition at line 181 of file ra8_doc_regs.h.
References k_ra8_doc_base_addr.
Referenced by internal_ra8_doc_run_16(), internal_ra8_doc_set_mode_16(), ra8_doc_init(), ra8_doc_set_window(), and ra8_doc_window_compare().