doc/manual/en/manual.tex
changeset 249 d328d0d9b88e
parent 211 2a4c2ca03555
child 282 6afe145df950
equal deleted inserted replaced
248:7fedc55c14d5 249:d328d0d9b88e
     1 \documentclass[12pt,twoside]{article}
     1 \documentclass[a4paper,12pt]{book}
     2 \usepackage[ascii]{inputenc}
     2 \usepackage[ascii]{inputenc}
     3 \usepackage[T1]{fontenc}
     3 \usepackage[T1]{fontenc}
     4 \usepackage[french,english]{babel}
     4 \usepackage[french,english]{babel}
     5 \usepackage{amsmath,amssymb,amsfonts,textcomp}
     5 \usepackage{amsmath,amssymb,amsfonts,textcomp}
     6 \usepackage{color}
     6 \usepackage{color}
    11 \usepackage{graphicx}
    11 \usepackage{graphicx}
    12 \DeclareGraphicsExtensions{.jpg}
    12 \DeclareGraphicsExtensions{.jpg}
    13 \DeclareGraphicsExtensions{.png}
    13 \DeclareGraphicsExtensions{.png}
    14 \hypersetup{colorlinks=true, linkcolor=blue, filecolor=blue, pagecolor=blue, urlcolor=blue}
    14 \hypersetup{colorlinks=true, linkcolor=blue, filecolor=blue, pagecolor=blue, urlcolor=blue}
    15 
    15 
    16 \newenvironment{changemargin}[2]{\begin{list}{}{%
       
    17 \setlength{\topsep}{0pt}%
       
    18 \setlength{\leftmargin}{0pt}%
       
    19 \setlength{\rightmargin}{0pt}%
       
    20 \setlength{\listparindent}{\parindent}%
       
    21 \setlength{\itemindent}{\parindent}%
       
    22 \setlength{\parsep}{0pt plus 1pt}%
       
    23 \addtolength{\leftmargin}{#1}%
       
    24 \addtolength{\rightmargin}{#2}%
       
    25 }\item }{\end{list}}
       
    26 
       
    27 
       
    28 %%%%\%%%%%%%% titre, auteurs, date, etc...%%%%%%%%%%%%%%%%%%
    16 %%%%\%%%%%%%% titre, auteurs, date, etc...%%%%%%%%%%%%%%%%%%
    29 
    17 \title{\Huge The CanFestival CANOpen stack manual}
    30 \title{\Huge Documentation}
       
    31 \author{Edouard TISSERANT}
    18 \author{Edouard TISSERANT}
    32 \date{\today}
    19 \date{\today}
    33 
    20 
    34 % Text styles
    21 % Text styles
    35 \newcommand\textstyleTeletype[1]{\texttt{#1}}
    22 %\newcommand\textstyleTeletype[1]{\texttt{#1}}
    36 % Outline numbering
    23 % Outline numbering
    37 \setcounter{secnumdepth}{5}
    24 \setcounter{secnumdepth}{5}
    38 \renewcommand\thesection{\arabic{section} -}
    25 \renewcommand\thesection{\arabic{section} -}
    39 \renewcommand\thesubsection{\arabic{section}.\arabic{subsection})}
    26 \renewcommand\thesubsection{\arabic{section}.\arabic{subsection})}
    40 \renewcommand\thesubsubsection{\arabic{section}.\arabic{subsection}.\arabic{subsubsection})}
    27 \renewcommand\thesubsubsection{\arabic{section}.\arabic{subsection}.\arabic{subsubsection})}
   117 \renewcommand\labelitemi{{\textbullet}}
   104 \renewcommand\labelitemi{{\textbullet}}
   118 \renewcommand\labelitemii{{\textbullet}}
   105 \renewcommand\labelitemii{{\textbullet}}
   119 \renewcommand\labelitemiii{{\textbullet}}
   106 \renewcommand\labelitemiii{{\textbullet}}
   120 \renewcommand\labelitemiv{{\textbullet}}
   107 \renewcommand\labelitemiv{{\textbullet}}
   121 }
   108 }
   122 % Pages styles (master pages)
   109 
   123 \makeatletter
       
   124 \newcommand\ps@Standard{%
       
   125 \renewcommand\@oddhead{}%
       
   126 \renewcommand\@evenhead{}%
       
   127 \renewcommand\@oddfoot{}%
       
   128 \renewcommand\@evenfoot{\@oddfoot}%
       
   129 \setlength\paperwidth{8.2673in}\setlength\paperheight{11.6925in}\setlength\voffset{-1in}\setlength\hoffset{-1in}\setlength\topmargin{0.1965in}\setlength\headheight{12pt}\setlength\headsep{0cm}\setlength\footskip{12pt+0.1965in}\setlength\textheight{11.6925in-0.1965in-0.7874in-0cm-12pt-0.1965in-12pt}\setlength\oddsidemargin{0.3937in}\setlength\textwidth{8.2673in-0.3937in-0.3937in}
       
   130 \renewcommand\thepage{\arabic{page}}
       
   131 \setlength{\skip\footins}{0.0398in}\renewcommand\footnoterule{\vspace*{-0.0071in}\noindent\textcolor{black}{\rule{0.25\columnwidth}{0.0071in}}\vspace*{0.0398in}}
       
   132 }
       
   133 \makeatother
       
   134 \pagestyle{Standard}
       
   135 \setlength\tabcolsep{1mm}
       
   136 \renewcommand\arraystretch{1.3}
       
   137 \begin{document}
   110 \begin{document}
   138 {\centering\sffamily
   111 
   139 CanFestival3. Version 3.0\newline
   112 {\centering\sffamily\Huge The CanFestival CANOpen stack manual.}
   140 The CANOpen stack manual
   113 
   141 \par}
   114 \renewcommand\contentsname{CanFestival v3.0 Manual}
   142 
       
   143 \setcounter{tocdepth}{2}
   115 \setcounter{tocdepth}{2}
   144 \renewcommand\contentsname{Table of contents}
       
   145 \tableofcontents
   116 \tableofcontents
   146 \section{Introduction}
   117 \section{Introduction}
   147 This document describe the CANOpen layer.CanFestival is an OpenSource
   118 CanFestival is an OpenSource (LGPL and GPL) CANOpen framework.
   148 (LGPL) CANOpen framework.
       
   149 
   119 
   150 \subsection{The CanFestival project}
   120 \subsection{The CanFestival project}
   151 This project, initiated by Edouard TISSERANT in 2001, as grown thanks to
   121 This project, initiated by Edouard TISSERANT in 2001, as grown thanks to
   152 Francis DUPIN and other contributors.
   122 Francis DUPIN and other contributors.
   153 
   123 
   234 {\bfseries\upshape
   204 {\bfseries\upshape
   235 DS{}-302}
   205 DS{}-302}
   236 
   206 
   237 \liststyleLiv
   207 \liststyleLiv
   238 \begin{enumerate}
   208 \begin{enumerate}
   239 \item Concise \ DFC : implemented.
   209 \item Concise \space DFC : implemented.
   240 \end{enumerate}
   210 \end{enumerate}
   241 \section{How to start}
   211 \section{How to start}
   242 \subsection{Host requirements}
   212 \subsection{Host requirements}
   243 What you need on your development workstation.
   213 What you need on your development workstation.
   244 
   214 
   250 \item Gnosis xml tools. (Optional can also be installed locally to the
   220 \item Gnosis xml tools. (Optional can also be installed locally to the
   251 project automatically will the help of a Makefile. Please see
   221 project automatically will the help of a Makefile. Please see
   252 \hyperlink{a91UsingDictionaryEditorGUIoutline}{9.1) Using Dictionary
   222 \hyperlink{a91UsingDictionaryEditorGUIoutline}{9.1) Using Dictionary
   253 Editor GUI} )
   223 Editor GUI} )
   254 \end{enumerate}
   224 \end{enumerate}
   255 \subsubsection[\ Linux and Unix{}-likes]{\ Linux and Unix{}-likes}
   225 \subsubsection[\space Linux and Unix{}-likes]{\space Linux and Unix{}-likes}
   256 \liststyleLv
   226 \liststyleLv
   257 \begin{enumerate}
   227 \begin{enumerate}
   258 \item Linux, FreeBSD, Cygwin or any Unix environment with GNU toolchain.
   228 \item Linux, FreeBSD, Cygwin or any Unix environment with GNU toolchain.
   259 \item The GNU C compiler (gcc) or any other ANSI{}-C compiler for your
   229 \item The GNU C compiler (gcc) or any other ANSI{}-C compiler for your
   260 target platform.
   230 target platform.
   261 \item Xpdf, and the official 301\_v04000201.pdf file in order to get GUI
   231 \item Xpdf, and the official 301\_v04000201.pdf file in order to get GUI
   262 context sensitive help. Download the ds301 at
   232 context sensitive help. Download the ds301 at\newline
   263 \href{http://www.can-cia.org/downloads/ciaspecifications/?1390}{http://www.can{}-cia.org/downloads/ciaspecifications/?1390}.
   233 \href{http://www.can-cia.org/downloads/ciaspecifications/?1390}{http://www.can{}-cia.org/downloads/ciaspecifications/?1390}.
   264 \item GNU Make
   234 \item GNU Make
   265 \item Bash and sed
   235 \item Bash and sed
   266 \end{enumerate}
   236 \end{enumerate}
   267 \subsubsection{Windows (for native win32 target)}
   237 \subsubsection{Windows (for native win32 target)}
   289 
   259 
   290 {\ttfamily\bfseries
   260 {\ttfamily\bfseries
   291 ./src ANSI{}-C source of CANOpen stack}
   261 ./src ANSI{}-C source of CANOpen stack}
   292 
   262 
   293 {\ttfamily\bfseries
   263 {\ttfamily\bfseries
   294 \ /include Exportables Header files}
   264 \space /include Exportables Header files}
   295 
   265 
   296 {\ttfamily\bfseries
   266 {\ttfamily\bfseries
   297 ./drivers Interfaces to specific platforms/HW}
   267 ./drivers Interfaces to specific platforms/HW}
   298 
   268 
   299 {\ttfamily
   269 {\ttfamily
   352 ./doc Project and CanOpen doc}
   322 ./doc Project and CanOpen doc}
   353 
   323 
   354 \subsection{Implement CanFestival in your application}
   324 \subsection{Implement CanFestival in your application}
   355  
   325  
   356  \begin{center}
   326  \begin{center}
   357    \includegraphics[width=20cm]{Pictures/10000201000003F9000002CF880931E7.png}
   327    \includegraphics[width=12cm]{Pictures/10000201000003F9000002CF880931E7.png}
   358 \end{center}
   328 \end{center}
   359 
   329 
   360 \bigskip
   330 \bigskip
   361 
   331 
   362 \subsection{CanFestival CAN interfaces}
   332 \subsection{CanFestival CAN interfaces}
   369 \liststyleLvi
   339 \liststyleLvi
   370 \begin{enumerate}
   340 \begin{enumerate}
   371 \item {\textmu}C must provide interuption masking for timer and can
   341 \item {\textmu}C must provide interuption masking for timer and can
   372 receive IT\newline
   342 receive IT\newline
   373  \begin{center}
   343  \begin{center}
   374    \includegraphics[width=16cm]{Pictures/10000201000003CA0000016604E6A5EF.png}
   344    \includegraphics[width=12cm]{Pictures/10000201000003CA0000016604E6A5EF.png}
   375 \end{center}
   345 \end{center}
   376 \item OS must provide a receive thread, a timer thread and a mutex. CAN
   346 \item OS must provide a receive thread, a timer thread and a mutex. CAN
   377 reception is a bloking operation.\newline
   347 reception is a bloking operation.\newline
   378 \begin{center}
   348 \begin{center}
   379    \includegraphics[width=16cm]{Pictures/10000201000003F9000002CF8B0CDAEA.png}
   349    \includegraphics[width=12cm]{Pictures/10000201000003F9000002CF8B0CDAEA.png}
   380 \end{center}
   350 \end{center}
   381 \end{enumerate}
   351 \end{enumerate}
   382 \subsection{CanFestival events scheduling}
   352 \subsection{CanFestival events scheduling}
   383 A CanOpen node must be able to take delayed actions.
   353 A CanOpen node must be able to take delayed actions.
   384 
   354 
   392 CanFestival implement a micro{}-scheduler (timer.c). It uses only one
   362 CanFestival implement a micro{}-scheduler (timer.c). It uses only one
   393 timer to mimic many timers. It manage an alarm table, and call alarms
   363 timer to mimic many timers. It manage an alarm table, and call alarms
   394 at desired time.
   364 at desired time.
   395 
   365 
   396 \begin{center}
   366 \begin{center}
   397    \includegraphics[width=13cm]{Pictures/100000000000022C000000DEDAD2140C.png}
   367    \includegraphics[width=12cm]{Pictures/100000000000022C000000DEDAD2140C.png}
   398 \end{center}
   368 \end{center}
   399 
   369 
   400 Scheduler can handle short clock value ranges limitation found on some
   370 Scheduler can handle short clock value ranges limitation found on some
   401 {\textmu}C. As an example, value range for a 16bit clock counter with
   371 {\textmu}C. As an example, value range for a 16bit clock counter with
   402 4{\textmu}s tick is crossed within 0.26 seconds... Long alarms must be
   372 4{\textmu}s tick is crossed within 0.26 seconds... Long alarms must be
   408 illustrates an intermediate call to TimeDispatch, caused by a delay
   378 illustrates an intermediate call to TimeDispatch, caused by a delay
   409 longer than clock range. Because of long alarm segmentation, at the end
   379 longer than clock range. Because of long alarm segmentation, at the end
   410 of t1, TimeDispatch call will not trig any alarm callback.
   380 of t1, TimeDispatch call will not trig any alarm callback.
   411 
   381 
   412 \begin{center}
   382 \begin{center}
   413    \includegraphics[width=18cm]{Pictures/1000000000000396000000FFC42573DA.png}
   383    \includegraphics[width=12cm]{Pictures/1000000000000396000000FFC42573DA.png}
   414 \end{center}
   384 \end{center}
   415 
   385 
   416 \section{Linux Target}
   386 \section{Linux Target}
   417 Linux target is default configure target.
   387 Linux target is default configure target.
   418 
   388 
   427 
   397 
   428 {\ttfamily
   398 {\ttfamily
   429 make}
   399 make}
   430 
   400 
   431 {\ttfamily
   401 {\ttfamily
   432 \textstyleTeletype{make install}}
   402 make install}
   433 
   403 
   434 \subsubsection{Standard Linux node}
   404 \subsubsection{Standard Linux node}
   435 Configure switch:
   405 Configure switch:
   436 
   406 
   437 {\ttfamily
   407 {\ttfamily
   539 Currently, the only supported CAN devices are PeakSystems ones, with
   509 Currently, the only supported CAN devices are PeakSystems ones, with
   540 PcanLight driver and library. 
   510 PcanLight driver and library. 
   541 
   511 
   542 Please download driver at
   512 Please download driver at
   543 \href{http://www.peak-system.com/themen/download_gb.html}{http://www.peak{}-system.com/themen/download\_gb.html}
   513 \href{http://www.peak-system.com/themen/download_gb.html}{http://www.peak{}-system.com/themen/download\_gb.html}
   544 \ and follow instructions in order to install driver on your system.
   514 \space and follow instructions in order to install driver on your system.
   545 
   515 
   546 Install Cygwin as required, and the driver for your Peak CAN device.
   516 Install Cygwin as required, and the driver for your Peak CAN device.
   547 
   517 
   548 Open a Cygwin terminal, and follow those instructions:
   518 Open a Cygwin terminal, and follow those instructions:
   549 
   519 
   658 Project and solution files have been created and tested with Visual
   628 Project and solution files have been created and tested with Visual
   659 Studio Express 2005. Be sure to have installed Microsoft Platform SDK,
   629 Studio Express 2005. Be sure to have installed Microsoft Platform SDK,
   660 as recommended at the end of Visual Studio installation.
   630 as recommended at the end of Visual Studio installation.
   661 
   631 
   662 \subsubsection{Configuration with cygwin}
   632 \subsubsection{Configuration with cygwin}
   663 Follow instructions given at
   633 Follow instructions given at 
   664 \hyperlink{a422Cygwinconfigurationandcompilationoutline}{4.2.2)Cygwin
   634 \hyperlink{Cygwin configuration and compilation}{Cygwin
   665 configuration and compilation}, but do neither call make nor do tests,
   635 configuration and compilation}, but do neither call make nor do tests,
   666 just do configuration steps. This will create headers files accordingly
   636 just do configuration steps. This will create headers files accordingly
   667 to your configuration parameters, and the desired CAN hardware.
   637 to your configuration parameters, and the desired CAN hardware.
   668 
   638 
   669 \subsubsection{Compilation with Visual Studio}
   639 \subsubsection{Compilation with Visual Studio}
   673 
   643 
   674 Build CanFestival{}-3 project first.
   644 Build CanFestival{}-3 project first.
   675 
   645 
   676 \paragraph{PcanLight and the can\_peak\_win32 project.}
   646 \paragraph{PcanLight and the can\_peak\_win32 project.}
   677 Chosen Pcan\_xxx.lib and eventually Pcan\_2xxx.lib files must be added
   647 Chosen Pcan\_xxx.lib and eventually Pcan\_2xxx.lib files must be added
   678 to can\_peak\_win32 \ \ project before build of the DLL.
   648 to can\_peak\_win32 \space \space project before build of the DLL.
   679 
   649 
   680 \subsubsection{Testing}
   650 \subsubsection{Testing}
   681 Copy eventually needed dlls (ie : Pcan\_Nxxx.lib) into Release or Debug
   651 Copy eventually needed dlls (ie : Pcan\_Nxxx.lib) into Release or Debug
   682 directory, and run the test program:
   652 directory, and run the test program:
   683 
   653 
   688 The examples have been tested on a MC9S12DG255 mounted on a
   658 The examples have been tested on a MC9S12DG255 mounted on a
   689 Elektronikladen HCS12 T{}-board.
   659 Elektronikladen HCS12 T{}-board.
   690 
   660 
   691 Beware that there are a few differences in the MSCAN module of the
   661 Beware that there are a few differences in the MSCAN module of the
   692 68HC12 and HCS12 microcontroller. For a HC12, you must adapt the driver
   662 68HC12 and HCS12 microcontroller. For a HC12, you must adapt the driver
   693 that we provide for \ the HCS12.
   663 that we provide for \space the HCS12.
   694 
   664 
   695 For the difference MSCAN HC12/HCS12, see the Motorola application note
   665 For the difference MSCAN HC12/HCS12, see the Motorola application note
   696 AN2011/D.
   666 AN2011/D.
   697 
   667 
   698 Configure switch:
   668 Configure switch:
   705 
   675 
   706 \liststyleLx
   676 \liststyleLx
   707 \begin{enumerate}
   677 \begin{enumerate}
   708 \item The compiler GNU gcc for HC11, HC12, HCS12 : m6811{}-elf. \newline
   678 \item The compiler GNU gcc for HC11, HC12, HCS12 : m6811{}-elf. \newline
   709 Download the \textbf{release 3.1} at :
   679 Download the \textbf{release 3.1} at :
   710 \ \href{http://m68hc11.serveftp.org/m68hc11_pkg_rpm.php}{http://m68hc11.serveftp.org/m68hc11\_pkg\_rpm.php}
   680 \space \href{http://m68hc11.serveftp.org/m68hc11_pkg_rpm.php}{http://m68hc11.serveftp.org/m68hc11\_pkg\_rpm.php}
   711 
   681 
   712 \item A board with this chip. We are using the T{}-board from
   682 \item A board with this chip. We are using the T{}-board from
   713 Electronikladden. 
   683 Electronikladden. 
   714 \item At least about 40 kBytes of program memory.
   684 \item At least about 40 kBytes of program memory.
   715 \item A tool to flash the memory. (We are using the hight cost
   685 \item A tool to flash the memory. (We are using the hight cost
   748 The ``examples'' directory contains some test program you can use as
   718 The ``examples'' directory contains some test program you can use as
   749 example for your own developments.
   719 example for your own developments.
   750 
   720 
   751 \subsection{TestMasterSlave}
   721 \subsection{TestMasterSlave}
   752 {\ttfamily
   722 {\ttfamily
   753 **************************************************************}
   723 **************************************************************\space}
   754 
   724 
   755 {\ttfamily
   725 {\ttfamily
   756 * \ TestMasterSlave
   726 * \space TestMasterSlave
   757 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   727 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   758 
   728 
   759 {\ttfamily
   729 {\ttfamily
   760 *
   730 *
   761 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   731 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   762 
   732 
   763 {\ttfamily
   733 {\ttfamily
   764 * \ A simple example for PC. It does implement 2 CanOpen \ \ \ \ \ *}
   734 * \space A simple example for PC. It does implement 2 CanOpen \space \space \space \space \space *}
   765 
   735 
   766 {\ttfamily
   736 {\ttfamily
   767 * \ nodes in the same process. A master and a slave. Both \ \ \ \ *}
   737 * \space nodes in the same process. A master and a slave. Both \space \space \space \space *}
   768 
   738 
   769 {\ttfamily
   739 {\ttfamily
   770 * \ communicate together, exchanging periodically NMT, SYNC, \ *}
   740 * \space communicate together, exchanging periodically NMT, SYNC, \space *}
   771 
   741 
   772 {\ttfamily
   742 {\ttfamily
   773 * \ SDO and PDO. Master configure heartbeat producer time \ \ \ \ *}
   743 * \space SDO and PDO. Master configure heartbeat producer time \space \space \space \space *}
   774 
   744 
   775 {\ttfamily
   745 {\ttfamily
   776 * \ at 1000 ms for slave node{}-id 0x02 by concise DCF.
   746 * \space at 1000 ms for slave node{}-id 0x02 by concise DCF.
   777 \ \ \ \ \ \ \ \ *}
   747 \space \space \space \space \space \space \space \space *}
   778 
   748 
   779 {\ttfamily
   749 {\ttfamily
   780 *
   750 *
   781 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   751 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   782 
   752 
   783 {\ttfamily
   753 {\ttfamily
   784 * \ \ Usage:
   754 * \space \space Usage:
   785 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   755 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   786 
   756 
   787 {\ttfamily
   757 {\ttfamily
   788 * \ \ ./TestMasterSlave \ [OPTIONS]
   758 * \space \space ./TestMasterSlave \space [OPTIONS]
   789 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   759 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   790 
   760 
   791 {\ttfamily
   761 {\ttfamily
   792 *
   762 *
   793 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   763 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   794 
   764 
   795 {\ttfamily
   765 {\ttfamily
   796 * \ \ OPTIONS:
   766 * \space \space OPTIONS:
   797 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   767 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   798 
   768 
   799 {\ttfamily
   769 {\ttfamily
   800 * \ \ \ \ {}-l : Can library
   770 * \space \space \space \space {}-l : Can library
   801 [{\textquotedbl}libcanfestival\_can\_virtual.so{\textquotedbl}]
   771 [{\textquotedbl}libcanfestival\_can\_virtual.so{\textquotedbl}]
   802 \ \ \ \ *}
   772 \space \space \space \space *}
   803 
   773 
   804 {\ttfamily
   774 {\ttfamily
   805 *
   775 *
   806 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   776 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   807 
   777 
   808 {\ttfamily
   778 {\ttfamily
   809 * \ \ \ Slave:
   779 * \space \space \space Slave:
   810 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   780 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   811 
   781 
   812 {\ttfamily
   782 {\ttfamily
   813 * \ \ \ \ {}-s : bus name [{\textquotedbl}0{\textquotedbl}]
   783 * \space \space \space \space {}-s : bus name [{\textquotedbl}0{\textquotedbl}]
   814 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   784 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   815 
   785 
   816 {\ttfamily
   786 {\ttfamily
   817 * \ \ \ \ {}-S : 1M,500K,250K,125K,100K,50K,20K,10K,none(disable) \ *}
   787 * \space \space \space \space {}-S : 1M,500K,250K,125K,100K,50K,20K,10K,none(disable) \space *}
   818 
   788 
   819 {\ttfamily
   789 {\ttfamily
   820 *
   790 *
   821 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   791 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   822 
   792 
   823 {\ttfamily
   793 {\ttfamily
   824 * \ \ \ Master:
   794 * \space \space \space Master:
   825 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   795 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   826 
   796 
   827 {\ttfamily
   797 {\ttfamily
   828 * \ \ \ \ {}-m : bus name [{\textquotedbl}1{\textquotedbl}]
   798 * \space \space \space \space {}-m : bus name [{\textquotedbl}1{\textquotedbl}]
   829 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   799 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   830 
   800 
   831 {\ttfamily
   801 {\ttfamily
   832 * \ \ \ \ {}-M : 1M,500K,250K,125K,100K,50K,20K,10K,none(disable) \ *}
   802 * \space \space \space \space {}-M : 1M,500K,250K,125K,100K,50K,20K,10K,none(disable) \space *}
   833 
   803 
   834 {\ttfamily
   804 {\ttfamily
   835 *
   805 *
   836 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   806 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   837 
   807 
   838 {\ttfamily
   808 {\ttfamily
   839 **************************************************************}
   809 **************************************************************}
   840 
   810 
   841 
   811 
   846 
   816 
   847 
   817 
   848 \bigskip
   818 \bigskip
   849 
   819 
   850 {\sffamily
   820 {\sffamily
   851  In this example, Master configure \ heartbeat producer time at 1000 ms
   821  In this example, Master configure \space heartbeat producer time at 1000 ms
   852 for slave node{}-id 0x02 by concise DCF according DS{}-302 profile. }
   822 for slave node{}-id 0x02 by concise DCF according DS{}-302 profile. }
   853 
   823 
   854 {\sffamily
   824 {\sffamily
   855  }
   825  }
   856 
   826 
   864 \bigskip
   834 \bigskip
   865 
   835 
   866 {\sffamily
   836 {\sffamily
   867  To add more parameters configurations to the slave, the value at
   837  To add more parameters configurations to the slave, the value at
   868 sub{}-index 0x02 must be a binary stream (little{}-endian) following
   838 sub{}-index 0x02 must be a binary stream (little{}-endian) following
   869 this structure :}
   839 this structure :\newline
   870 
   840 \{
   871 {\sffamily
   841 (UNS32) nb of entries\newline
   872     }
   842 (UNS16) index parameter 1\newline
   873 
   843 (UNS8) sub{}-index parameter 1\newline
   874 {\sffamily
   844 (UNS32) size data parameter 1\newline
   875 [ nb of entries / index parameter 1 / sub{}-index parameter 1 \ / size
   845 (DOMAIN) data parameter 1\newline
   876 data parameter 1 \ / data parameter 1 / index parameter n / ...]}
   846 (UNS16) index parameter 2\newline
   877 
   847 (UNS8) sub{}-index parameter 2\newline
   878 {\sffamily
   848 (UNS32) size data parameter 2\newline
   879 \ \ \ \ \ \ (UNS32) \ \ \ \ \ \ \ \ \ \ \ \ (UNS16)  (UNS8)  
   849 (DOMAIN) data parameter 2\newline
   880 \ \ \ \ \ \ \ \ \ \ \ (UNS32)   \ \ \ (DOMAIN)}
   850 \space \space \space \space \space ....\newline
   881 
   851 (UNS16) index parameter n\newline
   882 {\sffamily
   852 (UNS8) sub{}-index parameter n\newline
   883  }
   853 (UNS32) size data parameter n\newline
       
   854 (DOMAIN) data parameter n\newline
       
   855 \}
       
   856 }
   884 
   857 
   885 {\sffamily
   858 {\sffamily
   886  So the binary value stream to configure heartbeat producer time must be
   859  So the binary value stream to configure heartbeat producer time must be
   887 : }
   860 :\newline
   888 
       
   889 
       
   890 \bigskip
       
   891 
       
   892 {\sffamily
       
   893     0100000017100002000000e803}
   861     0100000017100002000000e803}
   894 
       
   895 
       
   896 \bigskip
       
   897 
   862 
   898 {\sffamily
   863 {\sffamily
   899 The slave node is configured just before the Master entering in
   864 The slave node is configured just before the Master entering in
   900 Pre\_operational state.}
   865 Pre\_operational state.}
   901 
   866 
   909 \subsection{TestMasterMicroMod }
   874 \subsection{TestMasterMicroMod }
   910 {\ttfamily
   875 {\ttfamily
   911 **************************************************************}
   876 **************************************************************}
   912 
   877 
   913 {\ttfamily
   878 {\ttfamily
   914 * \ TestMasterMicroMod
   879 * \space TestMasterMicroMod
   915 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   880 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   916 
   881 
   917 {\ttfamily
   882 {\ttfamily
   918 *
   883 *
   919 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   884 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   920 
   885 
   921 {\ttfamily
   886 {\ttfamily
   922 * \ A simple example for PC.
   887 * \space A simple example for PC.
   923 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   888 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   924 
   889 
   925 {\ttfamily
   890 {\ttfamily
   926 * \ A CanOpen master that control a MicroMod module:
   891 * \space A CanOpen master that control a MicroMod module:
   927 \ \ \ \ \ \ \ \ \ *}
   892 \space \space \space \space \space \space \space \space \space *}
   928 
   893 
   929 {\ttfamily
   894 {\ttfamily
   930 * \ {}- setup module TPDO 1 transmit type
   895 * \space {}- setup module TPDO 1 transmit type
   931 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   896 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   932 
   897 
   933 {\ttfamily
   898 {\ttfamily
   934 * \ {}- setup module RPDO 1 transmit type
   899 * \space {}- setup module RPDO 1 transmit type
   935 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   900 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   936 
   901 
   937 {\ttfamily
   902 {\ttfamily
   938 * \ {}- setup module hearbeatbeat period
   903 * \space {}- setup module hearbeatbeat period
   939 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   904 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   940 
   905 
   941 {\ttfamily
   906 {\ttfamily
   942 * \ {}- disable others TPDOs
   907 * \space {}- disable others TPDOs
   943 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   908 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   944 
   909 
   945 {\ttfamily
   910 {\ttfamily
   946 * \ {}- set state to operational
   911 * \space {}- set state to operational
   947 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   912 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   948 
   913 
   949 {\ttfamily
   914 {\ttfamily
   950 * \ {}- send periodic SYNC
   915 * \space {}- send periodic SYNC
   951 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   916 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   952 
   917 
   953 {\ttfamily
   918 {\ttfamily
   954 * \ {}- send periodic RPDO 1 to Micromod (digital output) \ \ \ \ \ \ *}
   919 * \space {}- send periodic RPDO 1 to Micromod (digital output) \space \space \space \space \space \space *}
   955 
   920 
   956 {\ttfamily
   921 {\ttfamily
   957 * \ {}- listen Micromod{\textquotesingle}s TPDO 1 (digital input)
   922 * \space {}- listen Micromod{\textquotesingle}s TPDO 1 (digital input)
   958 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   923 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   959 
   924 
   960 {\ttfamily
   925 {\ttfamily
   961 * \ {}- Mapping RPDO 1 bit per bit (digital input)
   926 * \space {}- Mapping RPDO 1 bit per bit (digital input)
   962 \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   927 \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   963 
   928 
   964 {\ttfamily
   929 {\ttfamily
   965 *
   930 *
   966 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   931 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   967 
   932 
   968 {\ttfamily
   933 {\ttfamily
   969 * \ \ Usage:
   934 * \space \space Usage:
   970 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   935 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   971 
   936 
   972 {\ttfamily
   937 {\ttfamily
   973 * \ \ ./TestMasterMicroMod \ [OPTIONS]
   938 * \space \space ./TestMasterMicroMod \space [OPTIONS]
   974 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   939 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   975 
   940 
   976 {\ttfamily
   941 {\ttfamily
   977 *
   942 *
   978 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   943 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   979 
   944 
   980 {\ttfamily
   945 {\ttfamily
   981 * \ \ OPTIONS:
   946 * \space \space OPTIONS:
   982 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   947 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   983 
   948 
   984 {\ttfamily
   949 {\ttfamily
   985 * \ \ \ \ {}-l : Can library
   950 * \space \space \space \space {}-l : Can library
   986 [{\textquotedbl}libcanfestival\_can\_virtual.so{\textquotedbl}]
   951 [{\textquotedbl}libcanfestival\_can\_virtual.so{\textquotedbl}]
   987 \ \ \ \ *}
   952 \space \space \space \space *}
   988 
   953 
   989 {\ttfamily
   954 {\ttfamily
   990 *
   955 *
   991 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   956 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   992 
   957 
   993 {\ttfamily
   958 {\ttfamily
   994 * \ \ \ Slave:
   959 * \space \space \space Slave:
   995 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   960 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
   996 
   961 
   997 {\ttfamily
   962 {\ttfamily
   998 * \ \ \ \ {}-i : Slave Node id format [0x01 , 0x7F]
   963 * \space \space \space \space {}-i : Slave Node id format [0x01 , 0x7F]
   999 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   964 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
  1000 
   965 
  1001 {\ttfamily
   966 {\ttfamily
  1002 *
   967 *
  1003 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   968 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
  1004 
   969 
  1005 {\ttfamily
   970 {\ttfamily
  1006 * \ \ \ Master:
   971 * \space \space \space Master:
  1007 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   972 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
  1008 
   973 
  1009 {\ttfamily
   974 {\ttfamily
  1010 * \ \ \ \ {}-m : bus name [{\textquotedbl}1{\textquotedbl}]
   975 * \space \space \space \space {}-m : bus name [{\textquotedbl}1{\textquotedbl}]
  1011 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   976 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
  1012 
   977 
  1013 {\ttfamily
   978 {\ttfamily
  1014 * \ \ \ \ {}-M : 1M,500K,250K,125K,100K,50K,20K,10K
   979 * \space \space \space \space {}-M : 1M,500K,250K,125K,100K,50K,20K,10K
  1015 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   980 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
  1016 
   981 
  1017 {\ttfamily
   982 {\ttfamily
  1018 *
   983 *
  1019 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}
   984 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space *}
  1020 
   985 
  1021 {\ttfamily
   986 {\ttfamily
  1022 **************************************************************}
   987 **************************************************************}
  1023 
   988 
  1024 \section{Developing a new node}
   989 \section{Developing a new node}
  1094 Top list let you choose dictionary section, bottom left list is the
  1059 Top list let you choose dictionary section, bottom left list is the
  1095 selected index in that dictionary, and bottom right list are edited
  1060 selected index in that dictionary, and bottom right list are edited
  1096 sub{}-indexes.
  1061 sub{}-indexes.
  1097 
  1062 
  1098  \begin{center}
  1063  \begin{center}
  1099    \includegraphics[width=14cm]{Pictures/10000201000003E7000001C7B0296577.png}
  1064    \includegraphics[width=12cm]{Pictures/10000201000003E7000001C7B0296577.png}
  1100 \end{center}
  1065 \end{center}
  1101 
  1066 
  1102  \begin{center}
  1067  \begin{center}
  1103    \includegraphics[width=3cm]{Pictures/10000000000000B6000000DF1EDD1E73.png}
  1068    \includegraphics[width=3cm]{Pictures/10000000000000B6000000DF1EDD1E73.png}
  1104 \end{center}
  1069 \end{center}
  1152 \end{center}
  1117 \end{center}
  1153 
  1118 
  1154 \subsubsection{Integrated help}
  1119 \subsubsection{Integrated help}
  1155 Using F1 key, you can get context sensitive help.\newline
  1120 Using F1 key, you can get context sensitive help.\newline
  1156  \begin{center}
  1121  \begin{center}
  1157    \includegraphics[width=15cm]{Pictures/10000201000002F30000020B23ED7F67.png}
  1122    \includegraphics[width=12cm]{Pictures/10000201000002F30000020B23ED7F67.png}
  1158 \end{center}
  1123 \end{center}
  1159 
  1124 
  1160 In order to do that, official 301\_v04000201.pdf file must be placed
  1125 In order to do that, official 301\_v04000201.pdf file must be placed
  1161 into doc/ directory, and xpdf must be present on your system.
  1126 into doc/ directory, and xpdf must be present on your system.
  1162 
  1127 
  1163 F2 key open HTML CanFestival help.\newline
  1128 F2 key open HTML CanFestival help.\newline
  1164  \begin{center}
  1129  \begin{center}
  1165    \includegraphics[width=15cm]{Pictures/10000201000003440000025ACC3FD2F1.png}
  1130    \includegraphics[width=12cm]{Pictures/10000201000003440000025ACC3FD2F1.png}
  1166 \end{center}
  1131 \end{center}
  1167 
  1132 
  1168 \subsection{Generating the object Dictionary}
  1133 \subsection{Generating the object Dictionary}
  1169 Once object dictionary has been edited and saved, you have to generate
  1134 Once object dictionary has been edited and saved, you have to generate
  1170 object dictionary C code for your CanFestival node.
  1135 object dictionary C code for your CanFestival node.
  1233 Compatibility:
  1198 Compatibility:
  1234 
  1199 
  1235 \liststyleLxi
  1200 \liststyleLxi
  1236 \begin{enumerate}
  1201 \begin{enumerate}
  1237 \item Code was compiled MS VisualStudio 2003.NET and VisualStudio
  1202 \item Code was compiled MS VisualStudio 2003.NET and VisualStudio
  1238 2005.NET for WindowsXP \ with ANSI and UNICODE configurations and for
  1203 2005.NET for WindowsXP \space with ANSI and UNICODE configurations and for
  1239 WindowsCE 5.0. 
  1204 WindowsCE 5.0. 
  1240 \item Some preliminary testing was done, but not enough to be used in
  1205 \item Some preliminary testing was done, but not enough to be used in
  1241 mission critical projects.
  1206 mission critical projects.
  1242 \end{enumerate}
  1207 \end{enumerate}
  1243 Additional Features:
  1208 Additional Features:
  1289 \paragraph{Interrupt lock, unlock}
  1254 \paragraph{Interrupt lock, unlock}
  1290 \subparagraph{Code for GCC}
  1255 \subparagraph{Code for GCC}
  1291 {\ttfamily
  1256 {\ttfamily
  1292  void unlock (void)\newline
  1257  void unlock (void)\newline
  1293  \{\newline
  1258  \{\newline
  1294   \ \_\_asm\_\_
  1259   \space \_\_asm\_\_
  1295 \_\_volatile\_\_({\textquotedbl}cli{\textquotedbl});\newline
  1260 \_\_volatile\_\_({\textquotedbl}cli{\textquotedbl});\newline
  1296  \}\newline
  1261  \}\newline
  1297  void lock (void)\newline
  1262  void lock (void)\newline
  1298  \{\newline
  1263  \{\newline
  1299   \ unsigned short mask;\newline
  1264   \space unsigned short mask;\newline
  1300   \ \_\_asm\_\_
  1265   \space \_\_asm\_\_
  1301 \_\_volatile\_\_({\textquotedbl}tpa{\textbackslash}n{\textbackslash}tsei{\textquotedbl}:{\textquotedbl}=d{\textquotedbl}(mask));\newline
  1266 \_\_volatile\_\_({\textquotedbl}tpa{\textbackslash}n{\textbackslash}tsei{\textquotedbl}:{\textquotedbl}=d{\textquotedbl}(mask));\newline
  1302  \}}
  1267  \}}
  1303 
  1268 
  1304 \subparagraph{Code for CodeWarrior}
  1269 \subparagraph{Code for CodeWarrior}
  1305 {\ttfamily
  1270 {\ttfamily
  1306 void unlock (void)\newline
  1271 void unlock (void)\newline
  1307  \{\newline
  1272  \{\newline
  1308   \ \_\_asm({\textquotedbl}cli{\textquotedbl});\newline
  1273   \space \_\_asm({\textquotedbl}cli{\textquotedbl});\newline
  1309  \}\newline
  1274  \}\newline
  1310  void lock (void)\newline
  1275  void lock (void)\newline
  1311  \{\newline
  1276  \{\newline
  1312   \ unsigned short mask;\newline
  1277   \space unsigned short mask;\newline
  1313   \ \_\_asm\newline
  1278   \space \_\_asm\newline
  1314   \{\newline
  1279   \{\newline
  1315   \ tpa:tsei:{\textquotedbl}=d{\textquotedbl}(mask);\newline
  1280   \space tpa:tsei:{\textquotedbl}=d{\textquotedbl}(mask);\newline
  1316   \}\newline
  1281   \}\newline
  1317  \}}
  1282  \}}
  1318 
  1283 
  1319 \paragraph{Initialize function}
  1284 \paragraph{Initialize function}
  1320 \subparagraph{Code for GCC}
  1285 \subparagraph{Code for GCC}
  1321 {\ttfamily
  1286 {\ttfamily
  1322 void initCanHCS12 (void)\newline
  1287 void initCanHCS12 (void)\newline
  1323  \{ \ \newline
  1288  \{ \space \newline
  1324   \ //Init the HCS12 microcontroler for CanOpen \newline
  1289   \space //Init the HCS12 microcontroler for CanOpen \newline
  1325   \ initHCS12();\newline
  1290   \space initHCS12();\newline
  1326   \ \ // Init the HCS12 \ CAN driver\newline
  1291   \space \space // Init the HCS12 \space CAN driver\newline
  1327   \ const canBusInit bi0 = \{\newline
  1292   \space const canBusInit bi0 = \{\newline
  1328   \ \ \ 0, \ \ \ /* no low power \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */
  1293   \space \space \space 0, \space \space \space /* no low power \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space */
  1329 \newline
  1294 \newline
  1330   \ \ \ 0, \ \ \ /* no time stamp
  1295   \space \space \space 0, \space \space \space /* no time stamp
  1331 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */\newline
  1296 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space */\newline
  1332   \ \ \ 1, \ \ \ /* enable MSCAN
  1297   \space \space \space 1, \space \space \space /* enable MSCAN
  1333 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */\newline
  1298 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space */\newline
  1334   \ \ \ 0, \ \ \ /* clock source : oscillator (In fact, it is not used)
  1299   \space \space \space 0, \space \space \space /* clock source : oscillator (In fact, it is not used)
  1335 \ \ */\newline
  1300 \space \space */\newline
  1336   \ \ \ 0, \ \ \ /* no loop back
  1301   \space \space \space 0, \space \space \space /* no loop back
  1337 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */\newline
  1302 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space */\newline
  1338   \ \ \ 0, \ \ \ /* no listen only
  1303   \space \space \space 0, \space \space \space /* no listen only
  1339 \ \ \ \ \ \ \ \ \ \ \ \ \ \ */\newline
  1304 \space \space \space \space \space \space \space \space \space \space \space \space \space \space */\newline
  1340   \ \ \ 0, \ \ \ /* no low pass filter for wk up */\newline
  1305   \space \space \space 0, \space \space \space /* no low pass filter for wk up */\newline
  1341   \ CAN\_Baudrates[CAN\_BAUDRATE\_250K],\newline
  1306   \space CAN\_Baudrates[CAN\_BAUDRATE\_250K],\newline
  1342   \ \ \ \{\newline
  1307   \space \space \space \{\newline
  1343   \ \ \ \ \ 0x00, \ \ \ /* Filter on 16 bits.\newline
  1308   \space \space \space \space \space 0x00, \space \space \space /* Filter on 16 bits.\newline
  1344   \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ See Motorola Block Guide V02.14 fig
  1309   \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space See Motorola Block Guide V02.14 fig
  1345 4{}-3 */\newline
  1310 4{}-3 */\newline
  1346   \ \ \ \ \ 0x00, 0xFF, /* filter 0 hight accept all msg
  1311   \space \space \space \space \space 0x00, 0xFF, /* filter 0 hight accept all msg
  1347 \ \ \ \ \ */\newline
  1312 \space \space \space \space \space */\newline
  1348   \ \ \ \ \ 0x00, 0xFF, /* filter 0 low accept all msg
  1313   \space \space \space \space \space 0x00, 0xFF, /* filter 0 low accept all msg
  1349 \ \ \ \ \ \ \ */\newline
  1314 \space \space \space \space \space \space \space */\newline
  1350   \ \ \ \ \ 0x00, 0xFF, /* filter 1 hight filter all of \ msg
  1315   \space \space \space \space \space 0x00, 0xFF, /* filter 1 hight filter all of \space msg
  1351 \ */\newline
  1316 \space */\newline
  1352   \ \ \ \ \ 0x00, 0xFF, /* filter 1 low filter all of \ msg
  1317   \space \space \space \space \space 0x00, 0xFF, /* filter 1 low filter all of \space msg
  1353 \ \ \ */\newline
  1318 \space \space \space */\newline
  1354   \ \ \ \ \ 0x00, 0xFF, /* filter 2 hight filter most of \ msg
  1319   \space \space \space \space \space 0x00, 0xFF, /* filter 2 hight filter most of \space msg
  1355 */\newline
  1320 */\newline
  1356   \ \ \ \ \ 0x00, 0xFF, /* filter 2 low filter most of \ msg
  1321   \space \space \space \space \space 0x00, 0xFF, /* filter 2 low filter most of \space msg
  1357 \ \ */\newline
  1322 \space \space */\newline
  1358   \ \ \ \ \ 0x00, 0xFF, /* filter 3 hight filter most of \ msg
  1323   \space \space \space \space \space 0x00, 0xFF, /* filter 3 hight filter most of \space msg
  1359 */\newline
  1324 */\newline
  1360   \ \ \ \ \ 0x00, 0xFF, /* filter 3 low filter most of \ msg
  1325   \space \space \space \space \space 0x00, 0xFF, /* filter 3 low filter most of \space msg
  1361 \ \ */\newline
  1326 \space \space */\newline
  1362   \ \ \ \}\newline
  1327   \space \space \space \}\newline
  1363   \ \};}
  1328   \space \};}
  1364 
  1329 
  1365 \subparagraph{Code for CodeWarrior}
  1330 \subparagraph{Code for CodeWarrior}
  1366 {\ttfamily
  1331 {\ttfamily
  1367 void initCanHCS12 (void)\newline
  1332 void initCanHCS12 (void)\newline
  1368  \{ \ \newline
  1333  \{ \space \newline
  1369   \ //Init the HCS12 microcontroler for CanOpen \newline
  1334   \space //Init the HCS12 microcontroler for CanOpen \newline
  1370   \ initHCS12();\newline
  1335   \space initHCS12();\newline
  1371   \ \ // Init the HCS12 \ CAN driver\newline
  1336   \space \space // Init the HCS12 \space CAN driver\newline
  1372   \ const canBusInit bi0 = \{\newline
  1337   \space const canBusInit bi0 = \{\newline
  1373   \ \ \ 0, \ \ \ /* no low power \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */
  1338   \space \space \space 0, \space \space \space /* no low power \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space */
  1374 \newline
  1339 \newline
  1375   \ \ \ 0, \ \ \ /* no time stamp
  1340   \space \space \space 0, \space \space \space /* no time stamp
  1376 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */\newline
  1341 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space */\newline
  1377   \ \ \ 1, \ \ \ /* enable MSCAN
  1342   \space \space \space 1, \space \space \space /* enable MSCAN
  1378 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */\newline
  1343 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space */\newline
  1379   \ \ \ 0, \ \ \ /* clock source : oscillator (In fact, it is not used)
  1344   \space \space \space 0, \space \space \space /* clock source : oscillator (In fact, it is not used)
  1380 \ \ */\newline
  1345 \space \space */\newline
  1381   \ \ \ 0, \ \ \ /* no loop back
  1346   \space \space \space 0, \space \space \space /* no loop back
  1382 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */\newline
  1347 \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space */\newline
  1383   \ \ \ 0, \ \ \ /* no listen only
  1348   \space \space \space 0, \space \space \space /* no listen only
  1384 \ \ \ \ \ \ \ \ \ \ \ \ \ \ */\newline
  1349 \space \space \space \space \space \space \space \space \space \space \space \space \space \space */\newline
  1385   \ \ \ 0, \ \ \ /* no low pass filter for wk up */\newline
  1350   \space \space \space 0, \space \space \space /* no low pass filter for wk up */\newline
  1386   \ \ \ \{\newline
  1351   \space \space \space \{\newline
  1387   \ \ \ \ 1, /* clksrc */\newline
  1352   \space \space \space \space 1, /* clksrc */\newline
  1388   \ \ \ \ 3, /* brp \ \ \ */\newline
  1353   \space \space \space \space 3, /* brp \space \space \space */\newline
  1389   \ \ \ \ 0, /* sjw \ \ \ */\newline
  1354   \space \space \space \space 0, /* sjw \space \space \space */\newline
  1390   \ \ \ \ 0, /* samp \ \ */\newline
  1355   \space \space \space \space 0, /* samp \space \space */\newline
  1391   \ \ \ \ 1, /* tseg2 \ */\newline
  1356   \space \space \space \space 1, /* tseg2 \space */\newline
  1392   \ \ \ \ 12,/* tseg1 \ */\newline
  1357   \space \space \space \space 12,/* tseg1 \space */\newline
  1393   \ \ \ \},\newline
  1358   \space \space \space \},\newline
  1394   \ \ \ \{\newline
  1359   \space \space \space \{\newline
  1395   \ \ \ \ \ 0x00, \ \ \ /* Filter on 16 bits.\newline
  1360   \space \space \space \space \space 0x00, \space \space \space /* Filter on 16 bits.\newline
  1396   \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ See Motorola Block Guide V02.14 fig
  1361   \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space See Motorola Block Guide V02.14 fig
  1397 4{}-3 */\newline
  1362 4{}-3 */\newline
  1398   \ \ \ \ \ 0x00, 0xFF, /* filter 0 hight accept all msg
  1363   \space \space \space \space \space 0x00, 0xFF, /* filter 0 hight accept all msg
  1399 \ \ \ \ \ */\newline
  1364 \space \space \space \space \space */\newline
  1400   \ \ \ \ \ 0x00, 0xFF, /* filter 0 low accept all msg
  1365   \space \space \space \space \space 0x00, 0xFF, /* filter 0 low accept all msg
  1401 \ \ \ \ \ \ \ */\newline
  1366 \space \space \space \space \space \space \space */\newline
  1402   \ \ \ \ \ 0x00, 0xFF, /* filter 1 hight filter all of \ msg
  1367   \space \space \space \space \space 0x00, 0xFF, /* filter 1 hight filter all of \space msg
  1403 \ */\newline
  1368 \space */\newline
  1404   \ \ \ \ \ 0x00, 0xFF, /* filter 1 low filter all of \ msg
  1369   \space \space \space \space \space 0x00, 0xFF, /* filter 1 low filter all of \space msg
  1405 \ \ \ */\newline
  1370 \space \space \space */\newline
  1406   \ \ \ \ \ 0x00, 0xFF, /* filter 2 hight filter most of \ msg
  1371   \space \space \space \space \space 0x00, 0xFF, /* filter 2 hight filter most of \space msg
  1407 */\newline
  1372 */\newline
  1408   \ \ \ \ \ 0x00, 0xFF, /* filter 2 low filter most of \ msg
  1373   \space \space \space \space \space 0x00, 0xFF, /* filter 2 low filter most of \space msg
  1409 \ \ */\newline
  1374 \space \space */\newline
  1410   \ \ \ \ \ 0x00, 0xFF, /* filter 3 hight filter most of \ msg
  1375   \space \space \space \space \space 0x00, 0xFF, /* filter 3 hight filter most of \space msg
  1411 */\newline
  1376 */\newline
  1412   \ \ \ \ \ 0x00, 0xFF, /* filter 3 low filter most of \ msg
  1377   \space \space \space \space \space 0x00, 0xFF, /* filter 3 low filter most of \space msg
  1413 \ \ */\newline
  1378 \space \space */\newline
  1414   \ \ \ \}\newline
  1379   \space \space \space \}\newline
  1415   \ \};}
  1380   \space \};}
  1416 
       
  1417 \subsubsection{Who to use warnings and errors messages ?}
       
  1418 \paragraph{Warnings messages}
       
  1419 \begin{longtable}[c]{|p{0.8476598in}|p{0.7761598in}|p{1.0268599in}|p{-0.026640158in}|p{1.0386599in}|p{1.2247599in}|p{1.1761599in}|}
       
  1420 \hline
       
  1421 {\bfseries
       
  1422 DEBUG\_WAR\_CONSOLE \_ON}
       
  1423 &
       
  1424 {\bfseries
       
  1425 DEBUG \_CAN}
       
  1426 &
       
  1427 {\bfseries
       
  1428 PrintMsg{}-WarTo{}-Console}
       
  1429 &
       
  1430 
       
  1431 \bigskip
       
  1432 &
       
  1433 {\bfseries
       
  1434 Printing long message on console }
       
  1435 &
       
  1436 \textbf{Printing short message on console.} (number and value only) 
       
  1437 &
       
  1438 \textbf{Sending number and value in a PDO}., only if the node is a
       
  1439 slave, in operational state. 
       
  1440 \\\hline
       
  1441 \endhead
       
  1442 DEF
       
  1443 &
       
  1444 DEF
       
  1445 &
       
  1446 1
       
  1447 &
       
  1448 
       
  1449 \bigskip
       
  1450 &
       
  1451 
       
  1452 \bigskip
       
  1453 &
       
  1454 yes
       
  1455 &
       
  1456 
       
  1457 \bigskip
       
  1458 \\\hline
       
  1459 DEF
       
  1460 &
       
  1461 DEF
       
  1462 &
       
  1463 0
       
  1464 &
       
  1465 
       
  1466 \bigskip
       
  1467 &
       
  1468 yes
       
  1469 &
       
  1470 
       
  1471 \bigskip
       
  1472 &
       
  1473 
       
  1474 \bigskip
       
  1475 \\\hline
       
  1476 DEF
       
  1477 &
       
  1478 UNDEF
       
  1479 &
       
  1480 1
       
  1481 &
       
  1482 
       
  1483 \bigskip
       
  1484 &
       
  1485 
       
  1486 \bigskip
       
  1487 &
       
  1488 
       
  1489 \bigskip
       
  1490 &
       
  1491 
       
  1492 \bigskip
       
  1493 \\\hline
       
  1494 DEF
       
  1495 &
       
  1496 UNDEF
       
  1497 &
       
  1498 0
       
  1499 &
       
  1500 
       
  1501 \bigskip
       
  1502 &
       
  1503 
       
  1504 \bigskip
       
  1505 &
       
  1506 
       
  1507 \bigskip
       
  1508 &
       
  1509 
       
  1510 \bigskip
       
  1511 \\\hline
       
  1512 UNDEF
       
  1513 &
       
  1514 X
       
  1515 &
       
  1516 X
       
  1517 &
       
  1518 
       
  1519 \bigskip
       
  1520 &
       
  1521 
       
  1522 \bigskip
       
  1523 &
       
  1524 
       
  1525 \bigskip
       
  1526 &
       
  1527 
       
  1528 \bigskip
       
  1529 \\\hline
       
  1530 \end{longtable}
       
  1531 
       
  1532 \bigskip
       
  1533 
       
  1534 \paragraph{Errors messages}
       
  1535 \begin{longtable}[c]{|p{0.8476598in}|p{0.7351598in}|p{0.6511598in}|p{0.7865598in}|p{-0.026640158in}|p{0.8087598in}|p{0.9955599in}|p{1.1858599in}|}
       
  1536 \hline
       
  1537 {\bfseries
       
  1538 DEBUG\_ERR\_CONSOLE \_ON}
       
  1539 &
       
  1540 {\bfseries
       
  1541 DEBUG \_CAN}
       
  1542 &
       
  1543 {\bfseries
       
  1544 PDO \_ERROR }
       
  1545 &
       
  1546 {\bfseries
       
  1547 PrintMsg{}-ErrTo{}-Console}
       
  1548 &
       
  1549 
       
  1550 \bigskip
       
  1551 &
       
  1552 {\bfseries
       
  1553 Printing long message on console}
       
  1554 &
       
  1555 \textbf{Printing short message on console.} (number and value only) 
       
  1556 &
       
  1557 \textbf{Sending number and value in a PDO}., only if the node is a
       
  1558 slave, in operational state. 
       
  1559 \\\hline
       
  1560 \endhead
       
  1561 DEF
       
  1562 &
       
  1563 DEF
       
  1564 &
       
  1565 X
       
  1566 &
       
  1567 1
       
  1568 &
       
  1569 
       
  1570 \bigskip
       
  1571 &
       
  1572 
       
  1573 \bigskip
       
  1574 &
       
  1575 yes
       
  1576 &
       
  1577 yes
       
  1578 \\\hline
       
  1579 DEF
       
  1580 &
       
  1581 DEF
       
  1582 &
       
  1583 X
       
  1584 &
       
  1585 0
       
  1586 &
       
  1587 
       
  1588 \bigskip
       
  1589 &
       
  1590 yes
       
  1591 &
       
  1592 
       
  1593 \bigskip
       
  1594 &
       
  1595 yes
       
  1596 \\\hline
       
  1597 DEF
       
  1598 &
       
  1599 UNDEF
       
  1600 &
       
  1601 X
       
  1602 &
       
  1603 1
       
  1604 &
       
  1605 
       
  1606 \bigskip
       
  1607 &
       
  1608 
       
  1609 \bigskip
       
  1610 &
       
  1611 
       
  1612 \bigskip
       
  1613 &
       
  1614 yes
       
  1615 \\\hline
       
  1616 DEF
       
  1617 &
       
  1618 UNDEF
       
  1619 &
       
  1620 X
       
  1621 &
       
  1622 0
       
  1623 &
       
  1624 
       
  1625 \bigskip
       
  1626 &
       
  1627 
       
  1628 \bigskip
       
  1629 &
       
  1630 
       
  1631 \bigskip
       
  1632 &
       
  1633 yes
       
  1634 \\\hline
       
  1635 UNDEF
       
  1636 &
       
  1637 X
       
  1638 &
       
  1639 DEF
       
  1640 &
       
  1641 X
       
  1642 &
       
  1643 
       
  1644 \bigskip
       
  1645 &
       
  1646 
       
  1647 \bigskip
       
  1648 &
       
  1649 
       
  1650 \bigskip
       
  1651 &
       
  1652 yes
       
  1653 \\\hline
       
  1654 UNDEF
       
  1655 &
       
  1656 X
       
  1657 &
       
  1658 UNDEF
       
  1659 &
       
  1660 X
       
  1661 &
       
  1662 
       
  1663 \bigskip
       
  1664 &
       
  1665 
       
  1666 \bigskip
       
  1667 &
       
  1668 
       
  1669 \bigskip
       
  1670 &
       
  1671 
       
  1672 \bigskip
       
  1673 \\\hline
       
  1674 \end{longtable}
       
  1675 
       
  1676 \bigskip
       
  1677 
  1381 
  1678 \subsubsection{Does the code works in banked memory ?}
  1382 \subsubsection{Does the code works in banked memory ?}
  1679 No. Today it seems that the port of gcc is bogged for using the banked
  1383 No. Today it seems that the port of gcc is bogged for using the banked
  1680 memory. So, unfortunately, we are limited to 48 Kbytes of memory code.
  1384 memory. So, unfortunately, we are limited to 48 Kbytes of memory code.
  1681 
  1385 
  1686 \begin{enumerate}
  1390 \begin{enumerate}
  1687 \item GNU Gcc 3.0.4. Build 20030501
  1391 \item GNU Gcc 3.0.4. Build 20030501
  1688 \item Newlib 1.10.0 Build 20030421
  1392 \item Newlib 1.10.0 Build 20030421
  1689 \item GNU Binutils 2.12.1 Build 20030427
  1393 \item GNU Binutils 2.12.1 Build 20030427
  1690 \end{enumerate}
  1394 \end{enumerate}
  1691 \section{Documentation resources}
  1395 \section{Documentation resources\newline}
  1692 \paragraph{CIA : Can in Automation}
  1396 \paragraph{CIA : Can in Automation\newline}
  1693 Many documentation on CANopen.
  1397 Many documentation on CANopen.\newline
  1694 
       
  1695 \href{http://www.can-cia.de/}{http://www.can{}-cia.de}
  1398 \href{http://www.can-cia.de/}{http://www.can{}-cia.de}
  1696 
  1399 
  1697 \paragraph{Resources and training in CANopen}
  1400 \paragraph{Resources and training in CANopen\newline}
  1698 \href{http://www.esacademy.com/}{http://www.esacademy.com}
  1401 \href{http://www.esacademy.com/}{http://www.esacademy.com}
  1699 
  1402 
  1700 \paragraph{Elektronikladen HCS12 T{}-board}
  1403 \paragraph{Elektronikladen HCS12 T{}-board\newline}
  1701 \href{http://www.elektronikladen.de/en_hcs12tb.html}{http://www.elektronikladen.de/en\_hcs12tb.html}
  1404 \href{http://www.elektronikladen.de/en_hcs12tb.html}{http://www.elektronikladen.de/en\_hcs12tb.html}
  1702 
  1405 
  1703 \paragraph{Gnu gcc compiler for HC12}
  1406 \paragraph{Gnu gcc compiler for HC12\newline}
  1704 \href{http://m68hc11.serveftp.org/m68hc11_port.php}{http://m68hc11.serveftp.org/m68hc11\_port.php}
  1407 \href{http://m68hc11.serveftp.org/m68hc11_port.php}{http://m68hc11.serveftp.org/m68hc11\_port.php}
  1705 
  1408 
  1706 \paragraph{Motorola documentation on HC12}
  1409 \paragraph{Motorola documentation on HC12\newline}
  1707 \href{http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MC9S12DP256}{http://www.freescale.com/webapp/sps/site/prod\_summary.jsp?code=MC9S12DP256}
  1410 \href{http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MC9S12DP256}{http://www.freescale.com/webapp/sps/site/prod\_summary.jsp?code=MC9S12DP256}
  1708 
  1411 
  1709 \paragraph{Lauterbach debugger for HC12}
  1412 \paragraph{Lauterbach debugger for HC12\newline}
  1710 \href{http://www.lauterbach.com/}{http://www.lauterbach.com}
  1413 \href{http://www.lauterbach.com/}{http://www.lauterbach.com}
  1711 
  1414 
  1712 \paragraph{Python language}
  1415 \paragraph{Python language\newline}
  1713 \href{http://www.python.org/}{http://www.python.org}
  1416 \href{http://www.python.org/}{http://www.python.org}
  1714 
  1417 
  1715 \clearpage\section{About the project}
  1418 \clearpage\section{About the project}
  1716 \subsection{Contributors }
  1419 \subsection{Contributors }
  1717  \begin{center}
  1420  \begin{center}
  1776 
  1479 
  1777 \subsection{Getting support}
  1480 \subsection{Getting support}
  1778 Send your feedback and bug reports to
  1481 Send your feedback and bug reports to
  1779 \href{mailto:canfestival-devel@lists.sourceforge.net}{canfestival{}-devel@lists.sourceforge.net}.
  1482 \href{mailto:canfestival-devel@lists.sourceforge.net}{canfestival{}-devel@lists.sourceforge.net}.
  1780 
  1483 
  1781 For commercial support, \ training and specific integration and
  1484 For commercial support, \space training and specific integration and
  1782 developments, please ask LOLITECH (see contributors).
  1485 developments, please ask LOLITECH (see contributors).
  1783 
  1486 
  1784 \subsection{Contributing}
  1487 \subsection{Contributing}
  1785 You are free to contribute your specific interfaces back to the project.
  1488 You are free to contribute your specific interfaces back to the project.
  1786 This way, you can hope to get support from CanFestival users community.
  1489 This way, you can hope to get support from CanFestival users community.
  1813 \# \newline
  1516 \# \newline
  1814 \#This library is distributed in the hope that it will be useful,
  1517 \#This library is distributed in the hope that it will be useful,
  1815 \newline
  1518 \newline
  1816 \#but WITHOUT ANY WARRANTY; without even the implied warranty of
  1519 \#but WITHOUT ANY WARRANTY; without even the implied warranty of
  1817 \newline
  1520 \newline
  1818 \#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. \ See the GNU
  1521 \#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. \space See the GNU
  1819 \newline
  1522 \newline
  1820 \#Lesser General Public License for more details. \newline
  1523 \#Lesser General Public License for more details. \newline
  1821 \# \newline
  1524 \# \newline
  1822 \#You should have received a copy of the GNU Lesser General Public
  1525 \#You should have received a copy of the GNU Lesser General Public
  1823 \newline
  1526 \newline
  1824 \#License along with this library; if not, write to the Free Software
  1527 \#License along with this library; if not, write to the Free Software
  1825 \newline
  1528 \newline
  1826 \#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  1529 \#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  1827 \ 02111{}-1307 \ USA }
  1530 \space 02111{}-1307 \space USA }
  1828 
  1531 
  1829 
  1532 
  1830 \bigskip
  1533 \bigskip
       
  1534 
  1831 \end{document}
  1535 \end{document}