|
ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
|
Byte-level transport injected into the AT driver (DIP). More...
#include <ra8_modem_at.h>
Data Fields | |
| ra8_err_t(* | tx_byte )(void *ctx, uint8_t byte) |
| Transmit a single byte (blocking). | |
| ra8_err_t(* | rx_byte )(void *ctx, uint8_t *out_byte) |
| Try to receive a single byte without blocking. | |
| uint32_t(* | now_ms )(void *ctx) |
| Return monotonic time in milliseconds. | |
| void * | ctx |
| Opaque context passed to tx_byte/rx_byte/now_ms. | |
Byte-level transport injected into the AT driver (DIP).
Decouples the AT layer from any concrete UART implementation. The production wiring binds these pointers to an ra8_uart-backed adapter; unit tests bind them to an in-memory FIFO. Function pointers here are explicitly permitted by the project's NASA Rule 9 deviation for Dependency Inversion.
Definition at line 109 of file ra8_modem_at.h.
| void* ra8_modem_at_io_t::ctx |
Opaque context passed to tx_byte/rx_byte/now_ms.
Definition at line 144 of file ra8_modem_at.h.
| uint32_t(* ra8_modem_at_io_t::now_ms) (void *ctx) |
Return monotonic time in milliseconds.
Used to enforce per-command timeouts. The timebase need only be monotonic; absolute epoch is irrelevant.
| [in] | ctx | Opaque transport context. |
Definition at line 139 of file ra8_modem_at.h.
Referenced by internal_validate_init_cfg().
Try to receive a single byte without blocking.
| [in] | ctx | Opaque transport context. |
| [out] | out_byte | Receive slot, only written on success. |
Definition at line 127 of file ra8_modem_at.h.
Referenced by internal_validate_init_cfg().
Transmit a single byte (blocking).
| [in] | ctx | Opaque transport context (e.g. SCI channel). |
| [in] | byte | Byte to send. |
Definition at line 117 of file ra8_modem_at.h.
Referenced by internal_validate_init_cfg().