TASKING SmartCode v10.1r1
Release Note
Scope
This release note covers the release of version v10.1r1 of
TASKING SmartCode.
Contents
This is the first public release of TASKING SmartCode which supports
Infineon's AURIX TC4xx series. It is the successor of the TASKING VX-toolset
for TriCore product, that has support for previous generations of TriCore microcontollers.
The product includes the following features:
- TASKING SmartCode contains toolsets for TriCore, ARC (PPU), 8051 (SCR) and MCS (GTM).
- All tools (C/C++ compiler, Assembler, Linker, etc.) support the same
features (e.g. intrinsics, instructions) as the tools in the TASKING
VX-toolset for TriCore v6.3r1 product.
- The product contains a brand new C compiler toolset for the Parallel Processing Unit.
- The PPU toolset compiles code that is intended to run on the PPU which employs
Synopsys DesignWare ARC EV7x Processor IP.
- The PPU toolset supports both ARCv2 baseline and Vector DSP Instruction Set Architecture.
- Includes support for Infineon's TC4xx Virtual Prototype.
- There is no hardware debugger support, because no hardware is available yet.
- TASKING SmartCode is a 64-bit product. It shall be installed on
64-bit versions of the Windows operating system. The release has been tested on Windows 7 64-bit and on
Windows 10 64-bit, using the included simulator of Infineon.
- TASKING Eclipse plugins support all toolsets included in the product.
- The Eclipse/CDT distribution version 2021-09 is shipped with the product.
- Eclipse requires a JRE (Java 11) to run and therefore the TASKING installer detects if a JRE
supporting Java version 11 is installed on your system by checking the registry for either an Oracle
or AdoptOpenJDK version. If no JRE is found or an incorrect version is installed on your system, the
TASKING installer suggests to install AdoptOpenJDK. When you opt for installing AdoptOpenJDK then be
aware of the following consequences.
-
AdoptOpenJDK has no automated updates like Oracle. You must update the JRE yourself on a regular base.
-
AdoptOpenJDK updates the PATH variable and this will prevent older versions of Eclipse (using 32-bit java)
to be started. You will have to manually update the eclipse.ini files of older TASKING products and specify a
virtual machine by using the -vm option.
All executable files in this release have the following build number: Build 21121068.
TriCore toolset
- The device TC49x is the default in the product and is used in the examples.
You can use this device for running your application on Infineon's TC4xx Virtual Prototype as well.
- The TriCore SFR header files for device
TC49x
as published by Infineon are included in the product,
therefore the set of supported registers is considered to be complete.
- The SCR SFR header files of Infineon are also included in the product.
- Several compiler optimizations to improve the EEMBC benchmarks have been implemented.
- Several EABI compliance issues were fixed.
- An interrupt function qualifier _vm() was introduced to associate an interrupt handler with a specific virtual machine.
- The safety manuals for the TriCore and PPU toolsets are included in the product.
- The TriCore startup code has a configuration to start up and initialize the PPU memory.
- The ARC/PPU debugger is included in this product, but there is currently no debug target in the product available to
debug your ARC/PPU project. The Synopsys Metaware Simulator must be purchased from Synopsys separately.
- Due to a number of small changes with respect to the previous version of the SCR implementation, the new
implementation is referred to as SCR 3G. A new core option has been introduced to support this new architecture
(
--core=scr3g
).
- The ELF strip utility is a new tool that is added to the SmartCode product.
- The floating-point run-time library is replaced by an improved version.
PPU toolset
The PPU toolset supports three PPU configurations for AURIX 3G devices TC49x, TC4Dx and TC43x.
PPU Compiler
- The PPU compiler supports data allocation in vector memory using the __vccm memory qualifier.
- The PPU compiler supports native operations on Vector DSP and Vector FPU data types.
- The PPU compiler supports intrinsics for Vector DSP and Vector FPU instructions.
- The PPU compiler supports intrinsic function overloading.
- The PPU compiler offers auto-vectorization support with the following features:
- Vectorization of well-behaved loops iterating over array elements in vector memory.
- Support for iteration count calculated compile-time or run-time.
- Conversion of conditional code to predicated vector stores.
- Flattening of nested loops for matrix processing.
- Auto-vectorization support of array subscripts with a scaled iterator, using gather/scatter vector instructions.
- The PPU compiler supports the vector ABI (vector parameters and return values).
- The PPU compiler performs auto-bundling of instructions during code generation (activated with either -O3 or -Ok option).
- The PPU compiler supports loads and stores by means of the vgather() and vscatter() routines including
predicated operations for 32-bit types.
- The PPU compiler supports intrinsics for baseline SIMD, DSP and other miscellaneous instructions.
- The PPU compiler supports the half-precision scalar floating-point type.
- The PPU compiler supports the __aligned__ attribute.
- The PPU compiler implicitly treats double data type as float for TC43x PPU core architecture.
Other features
- The PPU assembler and disassembler support the Vector DSP and Vector FPU instruction set including predication instructions.
- The PPU assembler and disassembler support all instruction bundling formats up to three vector instructions and a
scalar instruction.
- The PPU library supports the functionality of fenv.h.
- The PPU assembler restricts the instructions which are prohibited at the end of a zero-overhead loop body.
- The PPU assembler supports --no-reg-prefix option to allow registers without % prefix in assembly code.
- The PPU toolset provides additional FP run-time library support for TC43x PPU core architecture.
Other noteworhty updates
SmartCode v10.1r1 is protected by two different license keys.
- The license for the SmartCode standard product (product code: 07-200-260-804) protects the TriCore, ARC (PPU) and 8051 (SCR) toolsets.
- The second license for the GTM compiler add-on product (product code: 07-200-260-891) protects the MCS (GTM) toolset.
Both licenses can be obtained from TASKING.
The license for the SmartCode standard product must be specified during the installation of the product.
The license for the GTM compiler add-on product shall be manually added to the licopt.txt
file,
by default located in the product's etc
directory. As a result the
file will contain two license keys, as shown below:
TSK_LICENSE_KEY_SW260800 = <license key for the SmartCode standard product>
TSK_LICENSE_KEY_SW260891 = <license key for the GTM compiler add-on product>
For a quick start, just start the IDE from the Start menu.
This will start the Eclipse based development environment. You will be asked to select a workspace. In
case you used Eclipse before it is recommended to select a new workspace. After clicking OK, you will see the 'Welcome' view.
On this view you will see icons that link to specific 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 TASKING or one of its distributors, a license key will be sent to you by email or on paper.
See the TASKING License Management (TLM) Support page for information on obtaining a license.