Generic Read-Write descriptor for driver framework/SPI

Offen
#470 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
15/100
Issue-Typ
Feature
Klarheit
Muss geklärt werden
Aktivitätsstatus
Veraltet
Bereich
embedded-iot

Rechercherichtung

The issue is a design sketch for a generic SPI transfer API: a transceivev function taking a slice of Transaction structs with input, output, offsets, min_len and pad fields, plus a length helper. It names no existing file or test. Settling the shape of the API with maintainers comes before any code, and the thread has been idle for about 290 days. Done would mean an agreed design and a follow-up issue or proposal, not a patch.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

driver framework

Just dumping this so it isn't lost in the Discord:

An idea we could use for an abstract SPI transfer system:

fn transceivev(actions: []const Transaction) !usize;

const Transaction = struct {
  /// buffer to receive
  input: []u8 = &.{},
  /// index of first received byte
  input_offset: usize = 0,
  /// buffer to send
  output: []const u8 = &.{},
  /// index of first sent byte
  output_offset: usize = 0,
  /// transceive at least this amount of items
  min_len: usize = 0,
  /// output when total len bigger than output.len
  pad: u8 = 0x00,

  pub fn length(t: @This()) usize {
    return @max(
      t.min_length,
      t.input_offset + t.input.len,
      t.output_offset + t.output.len,
    );
  }
};
Vorherrschende Sprache
Zig
Sterne
2.3k
Forks
198
Ø Merge
2 T. 18 Std.
Gemergte PRs (30 T.)
36

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus ZigEmbeddedGroup/microzig

Alle Issues in ZigEmbeddedGroup/microzig

Ähnliche Issues

Weitere Issues zu Embedded & IoT

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.