Ich habe in den letzten Tage libi2c-dev von C nach Pascal portiert. Damit sollte es jetzt weniger Probleme dabei geben, einen I2C- oder SMBus unter Linux mit Pascal anzusteuern. Auf dem Raspberry Pi sollte das ebenfalls funktionieren. Da mir entsprechende Hardware (genauer: I2C-Controller) fehlen, konnte ich nur testen, ob der Compiler die Datei schluckt.
ACHTUNG: Diese Portierung ist vollkommen ungetestet! Vor der Verwendung wird ein ausführlicher Code-Review empfohlen. Gegebenenfalls kann (externe) Hardware beschädigt werden (unwahrscheinlich aber möglich). Bei Fehlern und Verbesserungsvorschlägen möge man diese bitte selbst durchführen und an mich senden/hier posten; diese werde ich dann für alle hier verfügbar machen.
Die Datei steht unter der GNU General Public License Version 2 (oder neuer), da das Original ebenfalls unter dieser Lizenz freigeben wurde.
Dokumentation und Hinweise:
- Original-Bibliothek aus Debian 6; wurde als Grundlage verwendet. In diesem Package ist auch eine Dokumentation der Funktionen enthalten, die man auch ohne Installation aus dem Package extrahieren kann. Hat man das Package installiert, findet man die Dokumentation unter /usr/share/doc/libi2c-dev/dev-interface.gz
- Kernel-Wiki zum I2C-Subsystem. Hier findet sich die vollständige Dokumentation des I2C-Subsystems. Dort ist auch beschrieben, wie die IOctl-Aufrufe genau durchgeführt werden müssen.