@Rolf:
Du bleibst ja energisch am Ball. Komplement! =D>

Kurze Frage als Beta-Tester:
Warum wird der M32 Master mit I2CTWI_initSlave(12) initialisiert?
Muss ich ihn in der twi_target.h auch als Slave (#define TWISLAVE) definieren, weil als Master das I2CTWI_initSlave(12) zum Fehler führt?

Kurze Anregung als "normaler User":
Du bist ja da an einem dynamischen Prozeß dran, d.h. versuchst, in mehreren Schritten möglichst gute Lösungen zu finden. Dabei verändert sich auch die "Makrosprache" und der Funktionsumfang, der dem RP6 zur Nutzung des I2C-Bus mitgegeben wurde.
Wenn die entstehende Lib (ich bin da guter Hoffnung!) problemlos für alle zu nutzen sein soll, gibt es bei der Entwicklung eines neuen TWI-"Treibers" aus meiner Sicht auf der Makroebene nur 3 Möglichkeiten:
1. Man nutzt NUR die vorgegebenen Befehle und Makros, so dass vorhandene Programme mit der neuen Version kompiliert werden können.
2. Man ergänzt alle vorgegebenen Befehle und Makros durch neue Funktionen und Makros. Damit ist ebenfalls Abwärtskompatibilität möglich, es können dann aber neue Funktionalitäten zusätzlich genutzt werden.
3. Man verzichtet auf Kompatibilität und beschreibt einen neuen "Befehlssatz" für die TWI-Funktion.
Mir persönlich liegt die Option 2. am Herzen, weil ich faul bin, und meine Programme nicht ändern möchte. Trotzdem würde ich gern von "Fortschritten" durch eine neue Lib profitieren (egoistisch wie ich bin ...).

Also: Bitte nicht als Kritik, sondern nur als Anregung verstehen.

Ich teste weiter ...

Gruß Dirk