Infineon Aurix

From ErikaWiki

(Difference between revisions)
Jump to: navigation, search
(Target Configuration and Programming)
(Target Configuration and Programming)
Line 26: Line 26:
= Target Configuration and Programming =
= Target Configuration and Programming =
-
ERIKA Enterprise is configured through [[Tutorial: RT-Druid and OIL basics | RT-Druid and an OIL file]].  
+
ERIKA Enterprise is configured through [[Tutorial: RT-Druid and OIL basics | RT-Druid and an OIL file]]. Here are listed, after the
 +
information to set compiler path, the OIL fields custumized for Tricore Aurix architecture.
=== Compiler Path ===
=== Compiler Path ===
Line 39: Line 40:
** '''preference_tricore__path_for_gnu_compiler''' set HIGHTEC gcc compiler path for Tricore AURIX
** '''preference_tricore__path_for_gnu_compiler''' set HIGHTEC gcc compiler path for Tricore AURIX
** '''preference_tricore__path_for_tasking_compiler''' set Altium TASKING compiler path for Tricore AURIX
** '''preference_tricore__path_for_tasking_compiler''' set Altium TASKING compiler path for Tricore AURIX
 +
 +
=== CPU ===
 +
 +
'''CPU_DATA''' must be set to  '''TRICORE'''.
 +
The compiler is specificed with the '''COMPILER_TYPE''' item (supported values are '''GNU''' (the default value) and '''TASKING'''.
 +
 +
Tricore AURIX support CPU clock configuration with a simple PLL driver. The target clock value in MHz can be set with the ''CPU_CLOCK''' field.
 +
We kept the algorithm to avaluate PLL parameters simple, so it implements a best effort approach to set the right value.
 +
In any case max declared CPU clock value (i.e. 200 Mhz for TC27x family), is guaranteed to be perfectly matched.
 +
 +
'''N.B.'' To get the real value set you can use '''EE_tc27x_get_clock()''' API after executing '''StartOS''', PLL configuration is done during OS start-up.
 +
 +
Example of a CPU_DATA section:
 +
 +
    CPU_DATA = TRICORE {
 +
      CPU_CLOCK = 200.0;
 +
      APP_SRC = "code.c";
 +
      COMPILER_TYPE = GNU;
 +
      MULTI_STACK = TRUE {
 +
        IRQ_STACK = TRUE {
 +
            SYS_SIZE = 128;
 +
        };
 +
      };
 +
    };

Revision as of 09:52, 18 April 2013

Contents

Infineon Aurix support

ERIKA Enterprise supports the Infineon AURIX family microcontrollers. The support for RT-Druid it will be released soon. Currently only the TC27x AURIX family have been fully ported:

  1. Support for the HIGHTEC GCC Compiler (form both single and multicore) and TASKING compiler (only for singlecore).
  2. Support for single- and multi-stack configurations.
  3. ISR Type 1 and Type 2.
  4. ORTI support.
  5. Full Lauterbach support.
  • Supported compilers:
    • HIGHTEC GCC Compiler v4.6.2.0 (for both Single and Multicore).
    • TASKING VX-toolset for TriCore v4.0r1 (only for singlecore)
  • Mode of operation
    • Monostack: The Monostack configuration of the ERIKA Kernel models the fact that all tasks and ISRs in the system share the same stack.
    • Multistack: Every thread can have its private stack, or it can share it with other threads.
    • Multicore: It follows the same philosophy used by ERIKA on other multicore systems and specified by Autosar: two instances of the operating systems run on the two cores, and communication between cores is performed with a few APIs and shared memory.

MCU & Board

  • The porting have been completly developed on top of:
    • TriBoard TC2x5 v2.0 equiped with a TC275TE MCU

Target Configuration and Programming

ERIKA Enterprise is configured through RT-Druid and an OIL file. Here are listed, after the information to set compiler path, the OIL fields custumized for Tricore Aurix architecture.

Compiler Path

It is possible to choose the path of the compiler in three different ways:

  • PATH enviornment variable: You can put compilers bin directories in PATH and the environmet can use them from here.
  • Compiler specific environment variables:
    • HIGHTEC GCC toolchain: You can specify the compiler path for HIGHTEC GCC with the TRICORE_GCCDIR.
    • Altium TASKING toolchain: You can specify the compiler path for Altium TASKING with the TRICORE_TASKINGDIR.
  • RT-Druid configuration file see RT-Druid configuration#Compiler paths:
    • preference_tricore__path_for_gnu_compiler set HIGHTEC gcc compiler path for Tricore AURIX
    • preference_tricore__path_for_tasking_compiler set Altium TASKING compiler path for Tricore AURIX

CPU

CPU_DATA must be set to TRICORE. The compiler is specificed with the COMPILER_TYPE item (supported values are GNU (the default value) and TASKING.

Tricore AURIX support CPU clock configuration with a simple PLL driver. The target clock value in MHz can be set with the CPU_CLOCK' field. We kept the algorithm to avaluate PLL parameters simple, so it implements a best effort approach to set the right value. In any case max declared CPU clock value (i.e. 200 Mhz for TC27x family), is guaranteed to be perfectly matched.

'N.B. To get the real value set you can use EE_tc27x_get_clock() API after executing StartOS, PLL configuration is done during OS start-up.

Example of a CPU_DATA section:

   CPU_DATA = TRICORE {
     CPU_CLOCK = 200.0;
     APP_SRC = "code.c";
     COMPILER_TYPE = GNU;
     MULTI_STACK = TRUE {
       IRQ_STACK = TRUE {
           SYS_SIZE = 128;
       };
     };
   };
Personal tools