RT-Socket-CAN - RTDM driver for CAN devices =========================================== RT-Socket-CAN is an Open Source hard real-time protocol stack for CAN devices based on BSD sockets. This implementation is for RTDM, the Real-Time-Driver-Model. Note that there is a similar variant being developed for standard Linux using the Linux networking stack. Status: ------ Currently drivers are available for the following CAN controllers and devices: SJA1000 ISA devices SJA1000 Memory-mapped devices SJA1000 esd EPPC405 embedded controller and CPCI405 boards SJA1000 PEAK PCI card SJA1000 PEAK parallel port Dongle SJA1000 IXXAT PCI card MSCAN for MPC5200 boards Utilities for RT-Socket-CAN are available in "src/utils/can". Installation: ------------ This example installation is for the DENX "linuxppc_2_4_devel" tree (Linux 2.4.25) using the ELDK (see http://www.denx.de). It works in a similar way for other kernels and distributions including Linux 2.6. o Kernel space part: - Please install the Xenomai kernel space part as described in the README.INSTALL. - Configure RT-Socket-CAN as kernel modules as required by your hardware (and make sure that loadable module support is enabled): $ cd $ export CROSS_COMPILE=ppc_82xx- $ make menuconfig ... Select "Loadable module support --->" [*] Enable loadable module support ... Exit ... Select "Real-time sub-system --->" "Real-time drivers --->" "CAN bus controller --->" [M] RT-Socket-CAN, CAN raw socket interface (NEW) (1024) Size of receive ring buffers (must be 2^N) (NEW) (4) Maximum number of devices (NEW) (16) Maximum number of receive filters per device (NEW) [M] MSCAN driver for MPC5200 (NEW) [*] Enable CAN 1 (NEW) [*] Enable CAN 2 (NEW) (66000000) Clock Frequency in Hz (NEW) (I2C1/TMR01) Pin Configuration Philips SJA1000 CAN controller (NEW) Standard ISA devices (4) Maximum number of ISA devices (NEW) PEAK PCI cards ... Exit and save Note: you can also statically link the MSCAN drivers into the kernel. - Make the Linux kernel and RT-Socket-CAN modules and copy them to the root filesystem: $ make dep $ make uImage $ cp -p arch/ppc/boot/images/uImage /tftpboot/icecube/uImage-rtcan $ make modules $ export DESTDIR=/opt/eldk/ppc_82xx $ make modules_install INSTALL_MOD_PATH=$DESTDIR $ find $DESTDIR/lib/modules/2.4.25/kernel/drivers/xenomai/rtcan .../rtcan .../rtcan/xeno_can.o .../rtcan/mscan .../rtcan/mscan/xeno_can_mscan.o .../rtcan/sja1000/xeno_can_sja1000.o .../rtcan/sja1000/xeno_can_peak_pci.o .../rtcan/sja1000/xeno_can_isa.o - Loading the RT-Socket-CAN modules Now boot the Xenomai enabled kernel on your target system. In case RT-Socket-CAN is built as kernel modules, you need to load them using modprobe or insmod, e.g. for this example build: # export MODDIR=/lib/modules/2.4.25/kernel/drivers/xenomai/rtcan # insmod $MODDIR/xeno_can.o # insmod $MODDIR/mscan/xeno_can_mscan.o # insmod $MODDIR/sja1000/xeno_can_sja1000.o # insmod $MODDIR/sja1000/xeno_can_peak_pci.o Note that various kernel module parameters can be passed with insmod. Please use "modinfo" to list them or check the corresponding source code files for further information. o User space part: - User space CAN utilities for RT-Socket-CAN are available in "src/utils/can". Please check the README in there for further information. Documentation: ------------- The RTDM CAN profile is documented at http://www.xenomai.org/documentation/xenomai-3/html/xeno3prm/group__rtdm__can.html Feedback: -------- Please report Xenomai related bugs and comments to the Xenomai mailing list (xenomai@xenomai.org). Please report CAN related bugs and comments to the "Socketcan" mailing list (Socketcan-users@lists.berlios.de) or directly to the main authors Wolfgang Grandegger (wg@grandegger.com) or Sebastian Smolorz (Sebastian.Smolorz@stud.uni-hannover.de). Credits: ------- See CREDITS file in this directory. License: ------- RT-Socket-CAN is free software, and you are welcome to redistribute it under the terms of the GNU General Public License. This program comes with ABSOLUTELY NO WARRANTY. See "COPYING" for details.