TASKING VX-toolset for ARM v3.1r1
Release Note

Scope

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

Contents

Important Notices

Between v3.0r3 an v3.1r1 a major overhaul of the device support has been made. This will require attention to existing projects that were using the following product resources:

New in v3.1

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

Board Support

In v3.1r1 board support has been added. The following boards are supported using the SEGGER J-Link ARM, J-Link ARM Pro and J-Trace ARM debug probes:

Before using the SEGGER debug probes it is required to install the drivers for these probes. These can be downloaded from http://www.segger.com/cms/jlink-software.html.

The debugger supports programming the on-chip flash when downloading the application. See the section "2.7. Configuring the Target" in the Getting Started with the TASKING VX-toolset for ARM guide for information on selecting the target board for your project.

Device Support and CMSIS

With v3.1r1 a full range of Cortex-M0 and Cortex-M3 devices from NXP, STMicroelectronics and TI (Luminary Micro) have been added. These devices can now easily be selected from the processors properties page in Eclipse.

The SFR files are now CMSIS header files located in the cmsis directory in the product installation.

Standard linker script files (LSL files) are included for each device. When using the new template.lsl file Eclipse will control automatically the inclusion of the device specific LSL file. New projects will automatically get a copy of this template added to the project. For existing projects you may choose to update the project's LSL file with contents of the template.lsl file from the product's include.lsl directory.

Improved Optimization

Several improvements to the optimization have been made:

Application Wide Optimizations (MIL linking)

When the compiler has an overview of all modules in an application, more, global, optimizations can be performed. This is now supported by the TASKING compiler by linking the intermediate code (MIL) of all the modules in an application. The option to enable this can be found in Eclipse in the "C/C++ Build > Settings > C/C++ Compiler > Optimization" properties page. See for more information about MIL linking the User's Guide section "4.5.1. Generic Optimizations".

Code Compaction

This optimization, often called reverse inlining, has been added to the compiler. With this optimization the compiler creates functions for code that multiply occurs, and replaces the original code with a call to the created function. This is a code size optimization and its effect depends on the trade-off between size and speed setting (--tradeoff). Code compaction is enabled by default.

Global Data Clustering

When this option is enabled the compiler will cluster global data into a single section, allowing it to use a single base register for all data in the in that section. As a result the constant pool will be smaller and more registers become available to the compiler. The global data clustering can be enabled by switching to the highest optimization level (-O3)

Default Optimizing for Size

The trade-off between size and speed has been changed from speed (--tradeoff=0) to size (--tradeoff=4).

Global Type Checking

The linker has been extended with global type checking. When enabled, the linker checks if the global C level definitions match with the external declarations. Only types can be checked for modules that are translated with a minimal set of symbolic debug information (-g1). The C libraries are built with this option.

CERT C Secure Coding Standard Checks Added

The C compiler in the VX-toolset now has support for checking CERT C Secure Coding Standard rules and recommendations.
All level 1 checks that can be performed by a compiler without significantly impacting the compilation time are supported, as well as some checks at other levels.

The compiler can check for the following rules and recommendations:

Category Implemented Checks
01. Preprocessor PRE01, PRE02, PRE10, PRE11
02. Declarations and Initialization DCL30, DCL31, DCL32, DCL35
03. Expressions EXP01, EXP12, EXP30, EXP32, EXP33, EXP34, EXP37, EXP38
04. Integers INT30, INT34, INT35
05. Floating Point FLP30, FLP35, FLP36
06. Arrays ARR01, ARR34, ARR35
07. Characters and Strings STR30, STR33, STR34, STR36
08. Memory Management MEM00, MEM08, MEM30, MEM31, MEM32, MEM33, MEM34, MEM35
10. Environment ENV32
11. Signals SIG30, SIG32
49. Miscellaneous MSC32

See the CERT site for more information: https://www.securecoding.cert.org/confluence/display/seccode/CERT+C+Secure+Coding+Standard

High Level Dump Tool

A new high level dump tool has been added, hldumparm. This tool can be used to dump the contents of an absolute file with high level symbolic information in an easy to read format. It's output includes:

The output can be generated in plain text format or as XML. See for details section "12.9. HLL Object Dumper Options" in the User's Guide.

Improved Map File Viewer in Eclipse

The map file viewer in Eclipse has been improved to make it easier to analyze the results of your build. The following improvements have been made:

See the User Guide, section "14.2. Linker Map File Format" for a detailed description of the map file viewer

Fixed issues for v3.1r1

Improvements

New Features

Fixed Problems

The list of open issues for v3.1r1 can be found on the internet.

Fixed issues for v3.0r3

Fixed Problems

The list of open issues for v3.0r3 can be found on the internet.

Fixed issues for v3.0r2

New Features

Fixed Problems

The list of open issues for v3.0r2 can be found on the internet.

License Information

15-day Trial

When using the product without a valid license, the tools will run in trial mode. This means you can use the toolset 15 days with full functionality. When running in trial mode, each tool will report the number of days left. When using a license that does not cover the full toolset, the tools that are not covered by the license will run in trial mode.

When after installing the license file the tools that are covered by the license still report that they are running in trial mode, this means that there is a license error. If you want to force the termination of the trial mode to get the FLEXlm error message you can set the environment variable FORCE_NO_TRIAL to "yes".

How to Obtain a License Key

All TASKING products include the industry standard FLEXlm license management software. In order to be able to run this toolset, you will need a license key, although you can use the full functionality during the 15 day trial period as described above. You can only obtain a license key if you have purchased this product.

To obtain a license key, you can start the License Administrator from the program group of your installed TASKING toolset. In case you still need to install the toolset, you can start the License Administrator by setting a check mark at the end of the setup/installation process. The wizard of the License Administrator will guide you through the steps to obtain your license key.
Once you have received your license key from Altium, you can install it on your system by running the License Administrator again. Alternatively you can simply save the license key as the file 'license.dat' in the C:\FLEXLM folder on your PCs hard disk.

More information is available on http://www.tasking.com/support/flexlm. On this page you also find assistance to setup a floating network license, or for installation on Linux or Sun systems.