This release note covers the TASKING VX-toolset for MCS v3.1r2.
This is a stand-alone TASKING MCS C compiler toolset. This toolset is an open market product. The C compiler supports the BOSCH GTM-IP MCS versions 3.x. Due to restrictions in the instruction set architecture the GTM-IP MCS versions 1.x and 2.x can be programmed in assembly language only.
Typically the GTM-IP MCS core is part of a SoC where the MCS is initialized by the CPU. This TASKING VX-toolset for MCS v3.1r2 can be used in combination with TASKING as well as third party tools to program the CPU. The compiler output is available in ELF, HEX and C array format. The latter format has been introduced to support interoperability with third party compiler tools.
The C compiler is fully ISO-C99 compliant. Several language extensions have been build into the compiler to support the specific features of the MCS hardware architecture. Numerous code size and execution speed optimization have been implemented since the previous release v3.1r1.
A set of intrinsic functions is provided to give access to those features of the MCS that cannot be addressed efficiently via ISO-C language features. The set covers ARU transfer operations, bus master addressing, and suspending wait instructions. The intrinsic functions and their protypes have changed between versions v3.1r1 and v3.1r2. Refer to the User Guide for more information.
The compiler supports the channel concept of the MCS architecture. By assigning the __attribute__((channel(
The compiler can emit code for the default register set (called OREG) as well as for the extended register set (called XOREG). Code that uses the extended register set may execute faster.
All C data types such as _Bool, char, short, int, long, long long, float, double and complex are supported.
A 32-bit data type __aei_t is available to improve the efficiency of data transfers over the bus master interface. Due to the 24-bit architecture of the MCS this data type should not be used for arithmetic operations.
The compiler provides access to special function registers STA, ACB, CTRG, STRG, TBU_TS0, TBU_TS1, TBU_TS2, GMI0, GMI1, DSTA, DSTAX. SFR functionality has been augmented in the v3.1r2 release.
Refer to MCSVX-182.
Assembly instructions can be used within the C source code, however the available set of intrinsic functions should make the use of inline assembly superfluous.
The compiler can check source code against the rules defined in the MISRA C:2012 standard. Individual rules can be enabled and disabled on the compiler's command line as well as in the Eclipse IDE.
The compiler can also check code against the rules defined in the CERT C Programming Language Secure Coding standard.
The Eclipse IDE is provided to configure and execute the tools. However all tools can also be invoked from the command-line. The Eclipse platform and CDT are based on the Luna releases (Platform 4.4.1 and CDT 8.5.0).
This release is shipped with an instruction set simulator that supports GTM-IP MCS versions 1, 2, 3.0 and 3.1.
The product includes linker script files for all GTM-IP MCS versions, there files are stored in the include.lsl directory. The devices can be selected in the Eclipse IDE upon project creation, which also automatically selects the use of the belonging linker script file.
The debugger and instruction set simulator are integrated in Eclipse. Rudimentary support for debugging applications that exploid the multi-channel concept is available. The debugger addresses the state of channel 0, other channels execute in parallel, but the debugger does not show the state of these other channels.
The EABI has been modified, therefore object files created with version 3.1r1 are not compatible with v3.1r2. For more detail refer to the "MCS Multi Channel Sequencer - Embedded Applications Binary Interface (EABI)" which is included with the toolset.
Refer to MCSVX-648.
The output produced by the TASKING High Level Dump utility can be used as input for address calculation tools. The output format is compliant with "BOSCH ADX Specification, Address List Format for A2L Address Calculation Compiler vendors, Version 1.10, 2015-04-27".
Refer to MCSVX-484.
Interoperability with third party toolsets for programming the CPU has been realized by providing a "C array" output format.
The linker can emit the generated machine code in the form of C code. This is useful for the integration of MCS code in applications where the CPU is programmed with a non-TASKING compiler. Note that no symbolic debugging is possible unless you use the debug information from the ELF file.
The C array output format consists of a C source file with data encoded in a C array initializer combined with a C header file that contains necessary declarations and optionally provides access to the exported symbols of the program. You can use the C array format only for chip output files where, as with normal hex files, each memory gets its own output file that contains data for that memory only. The intended target for output files in C array format is a programmable peripheral where an application compiled for the peripheral is imported into a host application as C code. This "host application" must initialize the programmable peripheral's memory using the data in the C array(s).
Refer to MCSVX-545.
The list of open issues for v3.1r2 can be found on the internet.
The TASKING VX-toolset for MCS uses the TASKING license management software. In order to be able to run this toolset, you will need a license key.
See either section 22.214.171.124 of the Getting Started with the TASKING VX-toolset for MCS guide for information on obtaining a license, or consult the Support for TASKING License Management System (TLM) Support pages on our web site.
Important Information (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.