TOP
SSV SOFTWARE SYSTEMS REGISTER  REGISTER
Log in to check your private messages  Log in to check your private messages
START FAQ SEARCH MITGLIEDER PROFILE  Log in 
SSV-Forum
can4linux im OTP/57V und EUI/57V

 
Post new topic   Reply to topic    SSV-Forum Forum Index >>> eSOM/2x86
<<< Previous topic - Next topic >>>  
Display posts from previous:   
Author Message
hne



Joined: 11 Jul 2008
Posts: 210
Location: Hannover

PostPosted: 03.07.2009, 15:36    Post subject: can4linux im OTP/57V und EUI/57V Reply with quote

can4linux im OTP/57V und EUI/57V mit eSOM/2586

Das Projekt can4linux unterstützt den CAN-Controller im Produkt OTP/57V und EUI/57V als Linux-Modul. Installiert wird dieser durch das Debian-Paket "can4linux-3.4.6-6_esom2586.deb"

Bei Auslieferung sind einige Beispiele (can_send, transmit, receive, acceptance) im Verzeichnis /usr/local/bin/can installiert und der CAN-Treiber is als Modul bereits geladen. So daß man die Beispile sofort benutzen kann. "transmit" und "receive" sind selbst erklärend und für "can_send" benutzen Sie bitte "can_send --help", um eine Hilfe zu erhalten. Ein Überblick über die Beispiele steht in der Datei "/usr/share/doc/can4linux_examples/README", weitere Dokumentation zum CAN-Treiber des eSOM/2586 stehen in der Datei "/usr/share/doc/can4linux/README.esom2586".

Die Baudrate können Sie einfach setzen, indem Sie diese in das Proc-Dateisystem schreiben.

z.B.:
Code:
export PATH=$PATH:/usr/local/bin/can
echo "20" >/proc/sys/Can/Baud
transmit
receive
can_send --help


Auf den Systemen ist ein CAN-Sniffer installiert, der die Daten des CAN-Bus per Java grafisch anzeigt. Diesen starten Sie über die grafische Oberfläche.
_________________
Henry Nestler
Back to top
View user's profile Send private message Visit poster's website
hne



Joined: 11 Jul 2008
Posts: 210
Location: Hannover

PostPosted: 03.07.2009, 15:40    Post subject: can4linux-examples für eSOM/2586 selbst compiliert Reply with quote

can4linux-examples für eSOM/2586 selbst compiliert

Wenn Sie die C-Beispiele selbst compilieren, müßten Sie eine Kleinigkeit gegenüber Default-Installation beachten. Mit dieser Kommandozeile wurden die Beispiele compiliert:
Code:
make CC=gcc CAN4LINUX_BYTE_COUNT=1 -C can4linux-examples


Die Besonderheit besteht in der Option "CAN4LINUX_BYTE_COUNT=1". Der CAN-Treiber wurde zur Benutzung unter Java angepasst. Damit wird beim "read" bzw. "write" die echte Anzahl Bytes des Buffers übergeben. Das entspricht den offiziellen Kernel-Konventionen bei der Übergabe von Daten für read bzw. write und damit auch der Arbeitsweise von Dateioperationen in den Hochsprachen wie Java.

Der Unterschied besteht im letzten Parameter des read bzw. write.
Code:
Java: write(fd, buffer, AnzahlMessages*sizeof(struc canmsg_t))
vorher: write(fd, buffer, AnzahlMessages)


Die ursprüngliche API des CAN4Linux sah vor, die Anzahl Messages beim "read" zu benutzen. Sie können das wieder so einstellen, indem Sie die Option "rwsize=1" beim Laden des Moduls entfernen.
Dazu bearbeiten Sie bitte die Datei /etc/modules und entfernen die Option "rwsize=1" in der Zeile "can rwsize=1", also nur einfach "can" stehen lassen.

Nach dem Neustart "init 6" werden Ihre selbst compilierten Beispiele mit der alten API sofort funktionieren.
Unsere voinstallierten Beispiele arbeiten dann natürlich nicht mehr, und das Java-Programm (CAN-Sniffer) auch nicht.
_________________
Henry Nestler
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    SSV-Forum Forum Index >>> eSOM/2x86 All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

SSV SOFTWARE SYSTEMS

Dünenweg 5
30419 Hannover

Fon: +49(0)511  ·  40 000-0
Fax: +49(0)511  ·  40 000-40

sales@ssv-embedded.de


Impressum    ·    Datenschutz    ·    AGB

© 2024 SSV SOFTWARE SYSTEMS GmbH. Alle Rechte vorbehalten.

ISO 9001:2015