TASKING VX-toolset for Altera® Nios® II

v2.0r1 RELEASE NOTES

SUMMARY

These release notes describe installation issues, known problems and reminders for users of release 2.0r1 of the TASKING VX-toolset to be used with Altera's Nios II IDE. The major differences with release 1.2r4 are:

The major differences between release 1.2r4 and release 1.2r3 are:

The major differences between release 1.2r3 and release 1.2r2 are:

The major differences between release 1.2r2 and release 1.2r1 are:

The major differences between release 1.2r1 and release 1.1r3 are:

The major differences between release 1.1r3 and release 1.1r2 are:

The major differences between release 1.1r2 and release 1.1r1 are:

The following parts are described in more detail below:

The TASKING VX-toolset for Nios II consists of a complete set of TASKING compilation tools and libraries, and a set of Eclipse plug-ins. With the Eclipse plug-ins the TASKING VX-compiler and assembler become seamlessly available in Altera's Nios II IDE. Using Altera's Nios II IDE as your development environment, you can use the TASKING VX-compiler and assembler to develop embedded applications for the Nios II processor.

The Eclipse plug-ins cannot be used to integrate the TASKING VX-toolset into any Eclipse installation other than the one provided by Altera.

This release of the TASKING VX-toolset for Nios II can also be used independently of Altera's Nios II IDE, by invoking the tools from the command line or from makefiles. See below for details about the differences between using the tools inside Altera's Nios II IDE and using them from the command line or from makefiles.

 

INSTALLATION

Make sure that version 7.2 of Altera's Quartus II Design Software, Altera's Nios II Embedded Design Suite, and Altera's MegaCore IP Library are installed on your system.

The TASKING installation program copies two additional files into the Altera Nios II EDS Eclipse plugins directory:

bin\eclipse\plugins\com.tasking.errorparsers_1.0.0.jar
bin\eclipse\plugins\com.tasking.ide.nios_2.0.1.jar

The TASKING installation program copies three additional project templates into the Altera Nios II EDS examples\software directory:

examples\software\tasking_cpp_hello
examples\software\tasking_cpp_complex
examples\software\tasking_cpp_exceptions

The TASKING installation program copies the following additional files into the Altera Nios II EDS multilib directory tree (lib directory and its sub-directories):

bin\nios2-gnutools\H-i686-pc-cygwin\nios2-elf\lib\libtskc.a
bin\nios2-gnutools\H-i686-pc-cygwin\nios2-elf\lib\libtskcs.a
bin\nios2-gnutools\H-i686-pc-cygwin\nios2-elf\lib\libtskcp.a
bin\nios2-gnutools\H-i686-pc-cygwin\nios2-elf\lib\libtskcpe.a
bin\nios2-gnutools\H-i686-pc-cygwin\nios2-elf\lib\libtskcps.a
bin\nios2-gnutools\H-i686-pc-cygwin\nios2-elf\lib\libtskcpse.a
bin\nios2-gnutools\H-i686-pc-cygwin\nios2-elf\lib\libtskfp.a
bin\nios2-gnutools\H-i686-pc-cygwin\nios2-elf\lib\libtskrt.a

bin\nios2-gnutools\H-i686-pc-cygwin\nios2-elf\lib\tsk_specs
bin\nios2-gnutools\H-i686-pc-cygwin\nios2-elf\lib\tsks_specs

bin\nios2-gnutools\H-i686-pc-cygwin\nios2-elf\lib\tsk_cpp_specs
bin\nios2-gnutools\H-i686-pc-cygwin\nios2-elf\lib\tsks_cpp_specs
bin\nios2-gnutools\H-i686-pc-cygwin\nios2-elf\lib\tsk_cpp_exc_specs
bin\nios2-gnutools\H-i686-pc-cygwin\nios2-elf\lib\tsks_cpp_exc_specs

The TASKING installation program copies the following patched files into the Altera Nios II EDS directory:

components\altera_hal\build\gnu_rules.mk
components\altera_hal\build\lib.mk
components\altera_nios2\HAL\src\component.mk

bin\nios2-gnutools\src\newlib\newlib\libc\include\string.h
bin\nios2-gnutools\src\newlib\newlib\libc\include\wchar.h
bin\nios2-gnutools\src\newlib\newlib\libc\include\wctype.h
bin\nios2-gnutools\src\newlib\newlib\libc\include\sys\_types.h
bin\nios2-gnutools\src\newlib\newlib\libc\include\sys\reent.h
bin\nios2-gnutools\src\newlib\newlib\libc\include\sys\unistd.h

components\altera_hal\HAL\inc\priv\alt_irq_table.h
components\altera_hal\HAL\src\alt_irq_register.c
components\altera_hal\HAL\src\alt_kill.c
components\altera_hal\HAL\src\alt_sbrk.c
components\altera_hostfs\HAL\src\altera_hostfs.c
components\altera_iniche\UCOSII\src\downloads\30src\h\nios2\ipport.h
components\altera_nios2\HAL\inc\nios2.h
components\altera_nios2\HAL\inc\sys\alt_irq_entry.h
components\altera_nios2\HAL\inc\sys\alt_sim.h
components\altera_nios2\HAL\inc\sys\alt_warning.h
components\altera_nios2\HAL\src\alt_busy_sleep.c
components\altera_nios2\HAL\src\alt_gmon.c

The sources under components\altera_nios2\HAL are also copied to ip\nios2_ip\altera_nios2\HAL. All patched files can be used with the TASKING compiler as well as with the GCC compiler. The patches do not affect the behavior of the Altera Nios II IDE in any way. Original files are renamed and saved before the copy process.

15-DAYS TRIAL MODE

When using the product without a valid license, the tools will run in trial mode. This means the toolset can be used for 15 days with full functionality. When running in trial mode tools will emit an informational trial mode message. When using a license that does not cover the full toolset, the tools which are not covered by the license will run in trial mode.

If after installing a valid license file the tools which are covered by the license still report they are running in trial mode, then there is a license error. You can force termination of trial mode to get the actual FLEXlm license error message by setting the environment variable FORCE_NO_TRIAL to "yes".

C++ COMPILER

The TASKING C++ compiler is in fact a front-end to the TASKING VX-compiler. It compiles C++ code into intermediate C code (files with .ic extension) which is then processed further by the C compiler. The C++ compiler supports the same TASKING language extensions as the C compiler.

The TASKING C++ compiler supports Embedded C++ (EC++) compliance checking by means of the --embedded_c++ option. The EC++ subset excludes the use of templates, exceptions, namespaces, new-style casts, RTTI, multiple inheritance, virtual base classes, and the mutable keyword. The EC++ compliance checking can be switched on in the Tool Settings tab of the C/C++ Build properties of your project. Select "C/C++ Compiler-->Language" and check the "Check for Embedded C++ compliance" check box.

C COMPILER

For a TASKING C/C++ project in the Nios II IDE the TASKING VX-compiler is invoked with the following options: --language=+gcc and --gcc-dwarf. These options instruct the compiler to support GCC language extensions and to generate debug information for the GNU debugger (gdb).

If the TASKING VX-compiler is used from the command line, then the aforementioned options are switched off by default and the compiler will be strictly ISO C99 compliant and will generate DWARF 3.0 compliant debug information.

The TASKING VX-compiler has a --cpu option to specify the Nios II core for which to compile your application. The valid values for this option are: nios2e, nios2s, nios2f (default). You can set this value at the Tool Settings tab of your project's C/C++ Build properties (Global Options / Processor entry). This value will NOT be set automatically if you select a predefined configuration such as low-cost or standard which use nios2e and nios2s respectively.


ASSEMBLER

For a TASKING C/C++ project in the Nios II IDE the compiler-generated assembly sources are assembled by the TASKING assembler. Hand-written assembly sources pulled in from the Altera HAL are assembled by the GNU assembler (gas). The appropriate assembler is selected based on the source filename extension: .asm and .src for TASKING assembly, .s and .S for GNU assembly.

You can use TASKING assembly for your hand-written assembly sources simply by using the .asm extension on your source filenames. Please note that the syntax and the set of directives of the TASKING assembler and the GNU assembler are not fully compatible.


LINKER

For a TASKING C/C++ project in the Nios II IDE the application is linked by the GNU linker. The GNU linker uses the Nios II IDE auto-generated linker script file (unless you specified a custom script file) and selects the appropriate startup code for your Nios II configuration.

If the TASKING tools are used from the command line, then by default the TASKING linker is invoked, which requires its own script file and startup code.


LIBRARIES

For a TASKING C/C++ project in the Nios II IDE the application is compiled and linked with the TASKING libraries. This applies to the application project as well as to the application's syslib project based on Altera's Nios II HAL (or to libnosys if the HAL is not used). The TASKING C library is not thread safe, so if you are building a uC/OS-II project you should disable the thread safe RTOS option in your System Library Properties.

The TASKING libraries include a standard C library, a C++ library, a run-time library for Nios II and an ANSI/IEEE-754 compliant floating-point library. There are two flavours of the C library: one for single and double precision floating point (default) and one for single precision floating point only. The single precision only flavour can be switched on in the Tool Settings tab of the C/C++ Build properties of your project. Select "C/C++ Compiler-->Language" and check the "Treat double as float (--no-double)" check box. This will give you smaller and faster code (with less precision). There are four flavours of the C++ library: the two floating point flavours mentioned before, but now both with and without (default) exception handling flavour. Select "C/C++ Compiler-->Language" and check the "Support for C++ exception handling" check box to switch on the exception handling flavour.

If the TASKING tools are used from the command line, then the application is linked with the TASKING libraries by means of the TASKING linker. In this case the Standard Template Library is also available.

 


Copyright 2006-2007 Altium BV