add Msys/mingw target in vscom interface
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
-INPUT = ../../src ../../drivers/can_lincan ../../drivers/can_peak_linux ../../drivers/can_peak_win32 ../../drivers/can_socket ../../drivers/can_uvccm_win32 ../../drivers/can_virtual ../../drivers/hcs12 ../../drivers/timers_unix ../../drivers/timers_xeno ../../drivers/unix ../../drivers/win32 ../../examples/gene_SYNC_HCS12 ../../examples/TestMasterSlave ../../examples/TestMasterMicroMod ../../examples/win32test ../../include ../../drivers/can_serial
+INPUT = ../../src ../../drivers/can_lincan ../../drivers/can_peak_linux ../../drivers/can_vscom ../../drivers/can_peak_win32 ../../drivers/can_socket ../../drivers/can_uvccm_win32 ../../drivers/can_virtual ../../drivers/hcs12 ../../drivers/timers_unix ../../drivers/timers_xeno ../../drivers/unix ../../drivers/win32 ../../examples/gene_SYNC_HCS12 ../../examples/TestMasterSlave ../../examples/TestMasterMicroMod ../../examples/win32test ../../include ../../drivers/can_serial
\subsubsection{Windows (for native win32 target)}
\begin{enumerate}
\subsubsection{Windows (for native win32 target)}
\begin{enumerate}
-\item Visual Studio Express 2005 or worst.
-\item Microsoft platform SDK (requires Genuine Advantage)
-\item Cygwin (for configuration only)
+\item Visual Studio Express 2005 or worst.
+\item Microsoft platform SDK (requires Genuine Advantage)
+\item Cygwin (for configuration only)
+\item MinGW/MSYS
\end{enumerate}
\subsection{How to get CanFestival}
\end{enumerate}
\subsection{How to get CanFestival}
\section{Understanding Canfestival}
\subsection{CanFestival Project tree layout}
\section{Understanding Canfestival}
\subsection{CanFestival Project tree layout}
Simplified directory structure.
Simplified directory structure.
\begin{verbatim}
./src ANSI-C source of \canopen stack
./include Exportables Header files
\begin{verbatim}
./src ANSI-C source of \canopen stack
./include Exportables Header files
./drivers/can_peak_win32 PeakSystem PCAN-Light interface
./drivers/can_uvccm_win32 Acacetus's RS232 CAN-uVCCM interface
./drivers/can_virtual Fake CAN network (Linux, Cygwin)
./drivers/can_peak_win32 PeakSystem PCAN-Light interface
./drivers/can_uvccm_win32 Acacetus's RS232 CAN-uVCCM interface
./drivers/can_virtual Fake CAN network (Linux, Cygwin)
+./drivers/can_vcom VScom VSCAN interface
./drivers/hcs12 HCS12 full target interface
./examples Examples
./examples/TestMasterSlave 2 nodes, NMT SYNC SDO PDO, win32+unix
./drivers/hcs12 HCS12 full target interface
./examples Examples
./examples/TestMasterSlave 2 nodes, NMT SYNC SDO PDO, win32+unix
Because most CAN controllers and drivers implement FIFOs, CanFestival
consider sending message as a non blocking operation.
Because most CAN controllers and drivers implement FIFOs, CanFestival
consider sending message as a non blocking operation.
-In order to prevent reentrent calls to the stack, messages reception
+In order to prevent reentrant calls to the stack, messages reception
is implemented differently on {\textmu}C and OS.:
\begin{enumerate}
is implemented differently on {\textmu}C and OS.:
\begin{enumerate}
\par\end{center}
\item OS must provide a receive thread, a timer thread and a mutex. CAN
\par\end{center}
\item OS must provide a receive thread, a timer thread and a mutex. CAN
-reception should be a bloking operation.\\
+reception should be a blocking operation.\\
\subsubsection{CAN devices}
\subsubsection{CAN devices}
Currently supported CAN devices and corresponding configure switch:
Currently supported CAN devices and corresponding configure switch:
\begin{verbatim}
./configure --can=peak_linux
\end{verbatim}
\begin{verbatim}
./configure --can=peak_linux
\end{verbatim}
PeakSystems CAN interface is automatically chosen as default CAN interface
if libpcan is present in the system.
PeakSystems CAN interface is automatically chosen as default CAN interface
if libpcan is present in the system.
-system.com/linux} and follow instructions in order to install driver
on your system.
-system.com/linux} and follow instructions in order to install driver
on your system.
-
-\paragraph{Socket -Can (http://socketcan.berlios.de)}
-
-
+\paragraph{Socket-Can (http://socketcan.berlios.de)}
\begin{verbatim}
./configure --can=socket
\end{verbatim}
\paragraph{Serial}
\begin{verbatim}
./configure --can=socket
\end{verbatim}
\paragraph{Serial}
\begin{verbatim}
./configure --can=serial
\end{verbatim}
\begin{verbatim}
./configure --can=serial
\end{verbatim}
The CAN serial driver implements a 1:1 serial connection between 2 CAN devices.
For example, you can connect 2 CANFestival applications via a NULL modem cable.
The CAN serial driver implements a 1:1 serial connection between 2 CAN devices.
For example, you can connect 2 CANFestival applications via a NULL modem cable.
Note that only the serial driver is supported at this time. The hub uses ptys
(pseudo ttys) available on a *nix like system.
Note that only the serial driver is supported at this time. The hub uses ptys
(pseudo ttys) available on a *nix like system.
\begin{verbatim}
./configure --can=lincan
\end{verbatim}
\begin{verbatim}
./configure --can=lincan
\end{verbatim}
\paragraph{Virtual CAN interfaces (for test/debug)}
\paragraph{Virtual CAN interfaces (for test/debug)}
\begin{verbatim}
./configure --can=virtual
or, for kernel space:
./configure --can=kernel_virtual
\end{verbatim}
\begin{verbatim}
./configure --can=virtual
or, for kernel space:
./configure --can=kernel_virtual
\end{verbatim}
Virtual CAN interface use Unix pipes to emulate a virtual CAN network.
Each message issued from a node is repeat to all other nodes. Currently
only works with nodes running in the same process, and does not support
Virtual CAN interface use Unix pipes to emulate a virtual CAN network.
Each message issued from a node is repeat to all other nodes. Currently
only works with nodes running in the same process, and does not support
-work with Xenomai or Rtai.
-
+work with Xenomai or RTAI.
+\paragraph{VScom}
+\begin{verbatim}
+ ./configure --can=vscom
+\end{verbatim}
+The VSCAN API archive will be automatically downloaded and decompressed (unzip required). See \href{http://www.vscom.de/1_1_05.htm}{www.vscom.de} for available adapters.
\subsection{Testing your CanFestival installation}
\subsection{User space}
\subsection{Testing your CanFestival installation}
\subsection{User space}
--- /dev/null
+VSCAN_API_1_0.zip
+libvs_can_api_arm.so
+Makefile
+libvs_can_api.so
+vs_can_api.h
+vs_can_api.lib
+libcanfestival_can_vscom.so
+vs_can_api.dll
ifeq ($(OS),CYGWIN)
DLL_TYPE=dll
CAN_VSCOM_DLL_FLAGS=-Wl,--export-all-symbols -Wl,--exclude-libs,ALL
ifeq ($(OS),CYGWIN)
DLL_TYPE=dll
CAN_VSCOM_DLL_FLAGS=-Wl,--export-all-symbols -Wl,--exclude-libs,ALL
+endif
+
+ifeq ($(OS),MINGW32)
+DLL_TYPE=dll
+CAN_VSCOM_DLL_FLAGS=-Wl,--export-all-symbols -Wl,--exclude-libs,ALL
+endif
+
+ifeq ($(OS),Linux)
DLL_TYPE=so
CAN_VSCOM_DLL_FLAGS=-Wl,-soname,libcanfestival_$(CAN_DRIVER).so
endif
DLL_TYPE=so
CAN_VSCOM_DLL_FLAGS=-Wl,-soname,libcanfestival_$(CAN_DRIVER).so
endif