ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_io.h File Reference

ra8_io – unified peripheral-agnostic I/O fabric (umbrella header). More...

Include dependency graph for ra8_io.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Detailed Description

ra8_io – unified peripheral-agnostic I/O fabric (umbrella header).

Tag
[Ring 4 / PAL] {World: NS}

ra8_io is one central I/O subsystem with swappable backends, built so an application performs an operation and names the target rather than coupling to a specific peripheral. Picking the destination (micro-SD, OSPI NOR flash, MRAM, SDRAM, an in-RAM scratch volume, a UART/USB stream) is a one-line backend choice, exactly as selecting a display backend is in ra8_display_pal.

The subsystem is layered internally but ships as one coherent facade:

  ra8_io  (one public facade: block devices, streams, and files)
stream  |  VFS / path router  |  file ops
--------+---------------------+-------------------------------
     filesystem-format ops  (FAT12/16/32, exFAT, future formats)
----------------------------------------------------------------
     page / block cache  (composes the issue #147 hierarchy)
----------------------------------------------------------------
     block-device vtable  (one interface, many media)
----------------------------------------------------------------
SD-SPI | SDHI | OSPI-NOR | MRAM | SDRAM-ramdisk | USB-MSC | UART |
USB-CDC | RAM

This milestone ships the block-device fabric (ra8_io_blockdev.h): a single 512-byte LBA block-device vtable with one backend per storage medium, plus a bridge that exposes any backend as an ra8_fs_backend_t so the existing FAT filesystem mounts on top of every medium unchanged. Later milestones add the targetable stream/writer layer, the VFS mount table and file operations, pluggable filesystem formats, the page/block cache, and compression.

Include this single header to pull in the whole facade.

Since
0.1.0

Definition in file ra8_io.h.