|
ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
|
ICU external-interrupt routing table for the esp-hosted link pins. More...
#include "ra8_esp_hosted_pins.h"#include <stdint.h>#include "ra8_attributes.h"#include "ra8_board_ek_ra8d2_connectors.h"#include "ra8_port_constants.h"Go to the source code of this file.
Data Structures | |
| struct | ra8_esp_hosted_irq_route |
| One row of the pin-to-ICU-channel routing table. More... | |
Typedefs | |
| typedef struct ra8_esp_hosted_irq_route | ra8_esp_hosted_irq_route_row_t |
Enumerations | |
| enum | ra8_esp_hosted_irq_route_t : uint8_t { k_ra8_esp_hosted_irq_pmod1_sideband = 11U , k_ra8_esp_hosted_irq_pmod1_cs = 14U } |
| ICU channel numbers the EK-RA8D2 board layer records for Pmod1. More... | |
Functions | |
| uint8_t | ra8_esp_hosted_pin_irq_num (ra8_port_pin_t pin) |
| Implementation of ra8_esp_hosted_pin_irq_num() – linear scan over a compile-time-sized routing table, so no caller-supplied value ever indexes it. | |
Variables | |
| static const ra8_esp_hosted_irq_route_row_t | s_ra8_esp_hosted_irq_map [] |
| Pin-to-ICU-channel routing for every Pmod1 net the link may use. | |
| static const uint32_t | s_ra8_esp_hosted_irq_map_rows |
| Row count of s_ra8_esp_hosted_irq_map. | |
ICU external-interrupt routing table for the esp-hosted link pins.
Companion to ra8_esp_hosted_pins.h. The header states which RA8 pin carries which link signal; this file states which of those pins the package routes to an ICU external-interrupt channel, which is a separate fact and the one that decides whether a side-band net gets a hardware edge or the port's software edge detector.
The table lists every Pmod1 net the link can plausibly land on – including the ones with no channel – so a "no channel" answer is an explicit recorded fact rather than the result of falling off the end of a shorter list. On this package the ICU external-interrupt inputs are concentrated on port 0 and a handful of others, so of the four Pmod1 side-band nets only P006 has a channel. As the harness is wired that is HANDSHAKE, and DATA_READY on P402 is polled.
Definition in file ra8_esp_hosted_pins.c.
| typedef struct ra8_esp_hosted_irq_route ra8_esp_hosted_irq_route_row_t |
| enum ra8_esp_hosted_irq_route_t : uint8_t |
ICU channel numbers the EK-RA8D2 board layer records for Pmod1.
Named here rather than written as bare numbers so the table below reads as signal routing rather than arithmetic. Both values come from the board connector header, which carries the board User's Manual citation for each net.
Definition at line 57 of file ra8_esp_hosted_pins.c.
|
nodiscard |
Implementation of ra8_esp_hosted_pin_irq_num() – linear scan over a compile-time-sized routing table, so no caller-supplied value ever indexes it.
Report the ICU external-interrupt channel that serves a pin.
Definition at line 131 of file ra8_esp_hosted_pins.c.
References k_ra8_esp_hosted_irq_none, pin, s_ra8_esp_hosted_irq_map, and s_ra8_esp_hosted_irq_map_rows.
Referenced by c6_hosted_print_route(), and internal_config_gpio_as_interrupt().
|
static |
Pin-to-ICU-channel routing for every Pmod1 net the link may use.
Rows carrying k_ra8_esp_hosted_irq_none are deliberate: they record that the package routes no external-interrupt channel to that net, so the port must poll it. Removing such a row would turn a stated fact into an accident of table length.
Definition at line 108 of file ra8_esp_hosted_pins.c.
Referenced by ra8_esp_hosted_pin_irq_num().
|
static |
Row count of s_ra8_esp_hosted_irq_map.
Derived from the array so the loop bound cannot drift from the data it bounds.
Definition at line 125 of file ra8_esp_hosted_pins.c.
Referenced by ra8_esp_hosted_pin_irq_num().