I2C-Bus unter Linux/Raspberry Pi mit Free Pascal

Antworten
Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

I2C-Bus unter Linux/Raspberry Pi mit Free Pascal

Beitrag von Socke »

Hallo zusammen!

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.
Dateianhänge
i2c_dev.pas
Pascal Portierung der libi2c-dev
(12.81 KiB) 193-mal heruntergeladen
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

jwdietrich
Beiträge: 167
Registriert: Mo 20. Okt 2008, 20:50
OS, Lazarus, FPC: macOS 10.4-13.4, Windows 2000-11, Raspbian (L 2.2.6, FPC 3.2.2)
CPU-Target: PowerPC, Intel, ARM
Wohnort: Hattingen, NRW
Kontaktdaten:

Re: I2C-Bus unter Linux/Raspberry Pi mit Free Pascal

Beitrag von jwdietrich »

Vielen Dank für die viele Mühe! Ich werde in den nächsten Tagen I2C-Geräte bekommen und den Header ausprobieren.

Wäre es ggf. möglich, die Lizenz von GPL zu LGPL zu ändern oder eine GPL linking exception zu erlauben? Dann könnte das ganze auch in kommerziellen Produkten verwendet werden.

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: I2C-Bus unter Linux/Raspberry Pi mit Free Pascal

Beitrag von Socke »

Ich freue mich schon auf das Feedback!

Die Lizenz für diese Datei muss wohl leider bei der GPL bleiben, die libi2c-dev ebanfalls unter der GPL veröffentlicht wurde (Link siehe oben). Da es aber eine Dokumentation zur Kernel-Schnittstelle gibt, wäre es möglich eine eigene LGPL/Linkin-Exception-Version zu erstellen.

Zurzeit arbeite ich an einer Unit-Sammlung die einen einfachen Zugriff auf GPIO-Pins, Analog-Digital-Converter (vielleicht auch Digital-Analog-Converter) erlaubt. Hier sollen auch GPIO-Expander über den I2C-Bus oder SPI genutzt werden; ich könnte mir vorstellen, die hier verwendete I2C-Abstraktion ohne libi2c-dev zu schreiben und damit unter LGPL mit Linking-Exception freizugeben.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Antworten