TASKING VX-toolset for C166 v4.0r1
Release Note


This release note covers the changes between v3.1r1 and v4.0r1 of the TASKING VX-toolset for C166.


New in v4.0

This section gives an overview of the most important new features and improvements in v4.0. See the sections with fixed issues for a complete list.

Installation and license manager

The installed Java Run Time environment has been updated to version 8 update 21. *

The Infineon DAS driver installation is done on demand. As soon as the debugger in Eclipse is started it will check whether DAS is installed and verify its version. If needed it will prompt to download and install the drivers before proceeding. *

FLEXlm license management system has been replaced by the TASKING License Management (TLM). See the user documentation for more information.

* - Does not apply to Linux version

Eclipse IDE Changes

The Eclipse IDE distribution has been updated to Luna: Eclipse 4.4.1 and CDT 8.5.0.

The updated TASKING plug-ins include the following changes:

MISRA C:2012

This release adds MISRA C:2012 support to the C compiler. Rules selection and related configuration can be done from Eclipse. See the User Guide for the list of rules supported by the C166 C compiler.

The new option --misrac-mandatory-warnings has been added to turn mandatory rule violation into warning.

A new predefined macro has been added: __MISRAC_VERSION__

New --fp-model option

The C compiler and control program support a new option --fp-model to control all floating-point related settings. Some of those settings were formerly done with separate options:

Related new pragmas:

A new predefined macro __PRECISE_LIB_FP__ is added.

See the user manuals for full documentation of the --fp-model option.

Build time improvements with C compiler cache

The C compiler now has support for caching intermediate results to avoid full compilations. When the source code after preprocessing and relevant compiler options and the compiler version are the same as in a previous invocation, the previous result is copied to the output file. The cache only works when there is a single C input file and a single output file. This cache can be enabled with the --cache option.

In Eclipse: Project > Properties > C/C++ Build > Settings > C/C++ Compiler > Optimization > Compilation speed

Shift JIS Kanji support

Compiler option -Ak and assembler option --kanji enable support for Shift JIS encoded Kanji multi-byte characters in strings and (wide) character constants.


The C compiler now supports _Static_assert() from the ISO 9899:2011 C-standard.

Standard C library function implementation extended

The implementation of the standard C library has been extended with the following functions:

fenv.h: _fesetround, fegetenv, fegetexceptflag, fegetround, feholdexcept, fesetenv, fesetexceptflag, fesetround, feupdateenv

fprt.h: sp_round8_and_normalize

math.h: _isgreaterf, _islessgreaterf, _isnan, _isnanf, _isnanl, cbrt, cbrtf, cbrtl, erf, erfc, erfcf, erfcl, erff, erfl, exp2, exp2f, exp2l, expm1, expm1f, expm1l, fdim, fdimf, fdiml, fma, fmaf, fmal, fmax, fmaxf, fmaxl, fmin, fminf, fminl, ilogb, ilogbf, ilogbl, lgamma, lgammaf, lgammal, llrint, llrintf, llrintl, llround, llroundf, llroundl, log1p, log1pf, log1pl, log2, log2f, log2l, logb, logbf, logbl, lrint, lrintf, lrintl, lround, lroundf, lroundl, nan, nanf, nanl, nextafterf, remainder, remainderf, remainderl, remquo, remquof, remquol, round, roundf, roundl, tgamma, tgammaf, tgammal, trunc, truncf, truncl

High Level Dump tool (hldump166) updates

The following updates have been made to hldump166:

C++ compiler updated to EDG 4.9

The EDG front-end in the C++ compiler has been updated from v4.2 to v4.9.

With this update the following new options are introduced:

--c++03enable C++ extensions defined by the ISO/IEC 14882:2003 standard
--c++11enable C++ extensions defined by the C++11 standard, ISO/IEC 14882:2011 (replaces --c++0x)
--c++11-sfinaeenable the C++11 SFINAE rules (replaces --c++0x-sfinae)
--c++11-sfinae-ignore-accessallow access errors in C++11 SFINAE that make deduction fail (replaces --c++0x-sfinae-ignore-access)
--c++14enable C++ extensions defined by the C++14 stabdardm ISO/IEC 14882:2014
--delegating-constructorsdelegating constructors (a C++11 feature) are accepted
--deprecated-string-convthe deprecated conversion from string literal to char * is allowed in C++ mode.
--generate-move-operationsgenerate move constructors or move assign operations
--implicit-noexceptimplicit noexcept specification for destructors and deallocation functions
--inline-statement-limit=<num>sets the maximum number of statements that a routine can have and still be inlinable. Default=100
--lossy-conversion-warningissue a diagnostic whenever a conversion occurs from one arithmetic type to a smaller one or from a floating to an integral type.
--max-constexpr-call-count=<value>the maximum number of constexpr function and constructor calls allowed in the expansion of one top-level call. Default=50000
--max-constexpr-call-depth=<value>the maximum permitted depth of constexpr function and constructor call nesting. Default=1000
--no-c++11-sfinaedisable the C++11 SFINAE rules (replaces --no-c++0x-sfinae)
--no-c++11-sfinae-ignore-accessdisallow access errors in C++11 SFINAE (replaces --no-c++0x-sfinae-ignore-access)
--nonstd-anonymous-unionsa set of extensions is supported that permits features similar to C++ anonymous unions
--preserve-lvalues-with-same-type-castsa cast of an lvalue to its own type should result in an lvalue
--unrestricted-unionsaccept C++11-style "unrestricted unions"
--user-defined-literalsC++11 user-defined literals are permitted.
--variadic-templatesaccept C++11 variadic templates (i.e., parameter packs)

Note: With the new STLport library all identifiers defined in the C++ headers for C library facilities have been moved to the std namespace.


#include <iostream>
#include <cstdio>

int f()
    std::cout << "test\n";

To build existing applications you can specify the --using-std command-line option instead.

With this update the following options of cp166 have been removed:

Debugger improvements and changes

* - Does not apply to Linux version

Notes on Linux version

Some notes on the TASKING VX-toolset v4.0r1 on the Linux platform:

Fixed issues for v4.0r1

New Features


Fixed Problems

The list of open issues for v4.0r1 can be found on the internet.

License Information

TASKING products are protected with TASKING license management software.

License key

You need a license key when you install a TASKING product on a computer. When you order a TASKING product from Altium or one of its distributors, a license key will be sent to you by email or on paper.

See the Getting Started with the TASKING VX-toolset for C166 guide for information on obtaining a license.

Local TASKING License Server (not applicable to evaluation licenses)

If you have ordered a TASKING product with a floating license, you can have it serviced by the Remote TASKING License Server (the most convenient solution) or through a Local TASKING License Server (in case you have no external network access for example). Consult your Altium representative for assistance on deciding what the best setup would be for your situation.

If you like to setup up a local license server, we kindly refer you for more information to Support for TASKING License Management System (TLM) on our website. Here you can also download the Local TASKING License Server package.

It is advised that you install the Local TASKING License Server before you install products that require this server.