🎉 TriCore v6.3r1p10 available! We're happy to announce the public patch release of TASKING VX-toolset for TriCore v6.3r1p10. Contact us

Categories

TriCore VX-toolset
Linker Script Language (LSL) tips & tricks for the TriCore toolset 01-Oct-2025
This article is for the TriCore toolset. A similar approach applies to SmartCode as well. However, the keywords or code snippets would be different. This application note provides several helpful tips and tricks to help you use Linker Script Language (LSL) effectively in a TriCore VX-tools...
Detect stack overflow during run-time using the C compiler options 01-Oct-2025
Possible solution To detect a stack overflow during run-time, using the C compiler options, you can use Stack overflow check. To add a stack overflow check , you can use the following C compiler option: --runtime (-r) :+/-stack s/S check for stack overflow In the Eclipse IDE, you can enabl...
Include address information about static variables in a map file 01-Oct-2025
By default static symbols are not included in the linker-generated map file. Possible Solution This article is for the TriCore toolset. A similar approach applies to our other products like SmartCode, and Arm. To have the linker include information about static symbols, such as static vari...
GCC to TASKING migration guide for Infineon AURIX 01-Oct-2025
This article is for the TriCore toolset. A similar approach applies to SmartCode. However, the keywords or naming conventions would be different. This application note explains the migration of an AURIX/TriCore software project built with GCC to the TASKING toolset. It outlines the necessa...
Change the code core or data core association using "modify input" in the LSL file 01-Oct-2025
This article is for the TriCore toolset. A similar approach applies to our other products like SmartCode, and Arm. Note that the keywords or naming conventions are different in Arm. Our TriCore tools feature the language extensions __share , __private0 , __private1 , __private2 , and __clo...
Section is not assigned to an LSL group as expected 01-Oct-2025
This article and the provided examples are for the TriCore toolset. Note that you can use a similar approach for our other products as well. When you use an LSL group to select sections, for example, for a dedicated placement in memory, a section might not be assigned as expected. This may...
TriCore Compiler Internal Generated Sections 01-Oct-2025
This article is applicable for the TriCore toolset. If you need to know SmartCode-specifc details for the same, please contact us . This application note provides details on the internal sections that are generated in addition to the normal code and data sections. It walks you through the ...
Check stack usage during run-time 01-Oct-2025
This article and the provided examples are for the TriCore toolset. Note that you can use a similar approach for SmartCode as well. If you need to do run-time stack checking, you will have to implement this yourself. A simple way to check the linker calculation result versus the actual sta...
C compiler: Error: syntax error - token "<token>" inserted before "<text>" 01-Oct-2025
The description of the TASKING C compiler error E208 is generic, as it does not clearly explain what is wrong. Furthermore, the source code line indicated by the error message is not necessarily where the root cause of the error is present. The cause of the error itself is often trivial. B...
Eclipse IDE/Command line : Show help on tool errors 29-Sep-2025
Possible solution Eclipse IDE When you encounter errors or warnings in the TASKING Eclipse IDE during the build process , they are displayed in the Problems view. To get more details or information about errors or warnings encountered : 1. Right-click on an error or warning in the Problems...
Install multiple patch levels next to each other on one machine 19-Sep-2025
As our patches do not contain the baseline software, you must first install the baseline software of the product and then install the respective patch. Also, before proceeding with the installation of a patch, please make sure to refer What is a patch release to avoid any mistakes during t...
View the command line invocations of all executed tools during a build 17-Sep-2025
To view all tool invocations during a build in the Console view of Eclipse: 1. Select Project | Properties | C/C++ Build | Settings | Global Options 2. Enable the option Verbose mode of control program and rebuild your application or file. From the command line, you can use the control pro...
Install/uninstall a patch 16-Sep-2025
As our patches do not contain the baseline software, you must first install the baseline software of the product and then install the respective patch. Also, before proceeding with the installation of a patch, please make sure to refer What is a patch release to avoid any mistakes during t...
Patch release 16-Sep-2025
A patch release is an update to a released compiler product that includes modified or new files to address specific issues or improvements. It is not a complete product but rather a set of changes that modify an existing installation. The changes between the baseline software and the patch...
Change the section attribute at link stage / prevent initialization of sections 21-Aug-2025
This article is for the TriCore product. A similar approach applies to our other products as they use the same linker script language. The C compiler adds section attributes to all code and data sections it creates. The available section attributes are:  r readable sections w writable sec...
Configure TriCore VX-toolset in CMake 21-Aug-2025
Prerequisite CMake and its respective Generators Make sure that CMake is installed on your system along with the respective Generators . This article considers the use of Ninja and Ninja Multi-Config generators. 1. Place the Generator executable, in this case, ninja.exe , in the ..\ CMake ...
Dedicated placement of ROM copy sections for initialized data 21-Aug-2025
This article is for the TriCore toolset. A similar approach applies to our other toolchains as they use the same linker script language. When a variable is initialized as shown below, the initialization value for this variable needs to be placed in flash memory : int var_1 = 10; The linker...
Define the address of a function or variable using an LSL symbol 21-Aug-2025
If an address of a variable or a function is not known by the application, for example, because the variable or function is part of another application that is linked separately, you can use LSL symbols to specify the address of those symbols during link time. This approach prevents a reco...
Retrieve information about the copy table content for initialized and zeroed global variables 21-Aug-2025
This article is for the TriCore toolset. According to the ISO C standard, global variables need to be initialized. If a variable is not initialized as shown below, it will be initialized with zeroes. int var_1; The initialization is conducted during the execution of the startup code. For i...
TriCore VX-toolset: Determine the version, revision, and patch level 20-Aug-2025
To determine the version, revision, and patch level information of a TriCore product, follow the below steps: 1. Navigate to the installation path\ctc\bin directory of the TriCore VX-toolset , for example, C:\Program Files\TASKING\TriCore v6.3r1\ctc\bin . 2. Open the command prompt (cmd.ex...
Supported free JREs for the Eclipse-based TASKING products to replace Oracle JRE 02-Jul-2025
Note that you need to install a Java Virtual Machine (JVM) to use Eclipse. A 64-bit version of Eclipse requires a 64-bit JVM, and a 32-bit version requires a 32-bit JVM. You can install either a Java Runtime Environment (JRE) or a Java Development Kit (JDK). TASKING product releases up to ...
Migrate an ADS example from the Infineon GitHub to the TASKING TriCore Eclipse IDE 25-Jun-2025
The AURIX Development Studio (ADS) can import example projects downloaded and extracted fromthe Infineon GitHub . Meanwhile, the TASKING TriCore Eclipse environment does not support the import of an existing ADS project into a TASKING Eclipse workspace. Possible solution To mitigate this, ...
Strategies for reducing the build time of a compiler project 10-Jun-2025
Possible solutions The following are several recommended practices to optimize and reduce the build time of the TASKING compiler project: Use a workstation with a multi-core CPU and a large amount of PC RAM (32 GB+ is beneficial) to take full advantage of concurrent processing capabilities...
Application does not start on a target board after the Program Flash memory was erased 22-May-2025
During the execution of the erase memory command, i t is likely that the Boot Mode Header (BMHD) was also cleared . This is the case for TriCore 2xx devices where the Boot ROM is part of the Program Memory Unit. For TriCore 3xx devices, the Boot ROM is located in another part of the memory...
C compiler: System Error: S9xx internal consistency check failed - please report 10-Apr-2025
System errors such as S900, S903, S911, and S917 indicate an internal problem with the TASKING C compiler. There is a good chance this is caused by an issue with a certain C compiler optimization. Therefore, disabling this optimization might be a possible mitigation. Possible solution To d...
C compiler: Minimize the impact of disabling a specific optimization 02-Apr-2025
For the TASKING C compiler, enabling and disabling optimizations for the complete project or one of its modules can have a significant impact on the entire project. With the #pragma optimize instructions you can selectively enable or disable specific optimizations at the source level, and ...
AURIX Multi-Core TriCore programming essentials 19-Feb-2025
This application note explains the various multi-core aspects that are important while working on an AURIX™-based project. It presents the flow of functions in an embedded application, which starts with the synchronization of the startup codes, followed by the main entry point, and the act...
ASIL level of functions of the run-time libraries and the floating-point run-time libraries 28-Jan-2025
This article is valid for TriCore only. Information about the ASIL level of all functions of the run-time library ( librt.a ) and the floating-point run-time libraries ( libfp[t].a / libfp[t]_fpu.a ) is included in the Safety & Cybersecurity Manual . If you do not have access to the Compil...
Stack size estimation in TriCore 23-Jan-2025
This application note explains the different stack types and provides guidance on estimating the stack size in the VX-toolset for TriCore. It also walks you through the process of setting up and selecting a stack type in a multi-core TriCore project, adding entry points, and estimating sta...
Memory usage information included in a map file 07-Jan-2025
The available on-chip memory of an Infineon AURIX family derivative is distributed across various memory areas. You need to be aware of the extent to which the application code and data use individual memory ranges. This can indicate potential bottlenecks that may require you toadjust the ...
Linker Warning W132: cannot bind symbol _lc_ub_heap … and cannot bind symbol _lc_ue_heap … 07-Jan-2025
The cause of these warnings after upgrading to v6.3r1 is that the heap definition was moved from tc_mc_arch.lsl to derivative .lsl to support core-specific LSL files, where each core has its own heap. The tc_mc_arch.lsl file is now included in derivative .lsl . Possible solutions When the ...
Debugger Error: Loading failed: A problem occurred during downloading 07-Jan-2025
When your application is fully located in RAM, the debugger may fail to download and run it on the target. In that case, the debugger issues an error: Loading failed: A problem occurred during downloading Possible solution Certain parts of the internal memory are automatically cleared duri...
User stack size calculation in the map file shows zero-sized stacks after upgrading to TriCore v6.3r1 07-Jan-2025
Possible solution In TriCore v6.3r1, the entry_points keyword was introduced to specify different entry points for the stack size calculation. If those entry points are not defined, the map file will show a stack size of zero bytes in the 'Estimated stack usage' section like: * Estimated s...
Symptoms of a stack overflow in a TriCore application 07-Jan-2025
Typically a stack overflow will show: a strange behavior of the application and/or a subsequent out-of-control behavior (crash/application trap). The post-mortem analysis will have to include an inspection of the stack pointer (A10 register), the trap status register, and possibly a trace ...
Does the TriCore CPU have a hardware stack and support for explicit stack checking? 07-Jan-2025
The TriCore CPU does not have a hardware stack. Instead, the run-time environment uses a synthetic stack managed through the register A10 for stack usage. As a result, there is no explicit stack checking option, as implementing such a feature would cause significant run-time penalties. Mor...
Types of stacks in a TriCore application 07-Jan-2025
Typically, a TriCore application has the following types of stacks: User Stack (ustack) The user stack demand for a single function is calculated by the C compiler . Furthermore, the C compiler generates information for the call graph generation. The call graph is generated by the linker a...
Cross-Linking in TriCore 07-Jan-2025
This article provides information regarding the TriCore v6.3r1 cross-linking in addition to the existing Chapter 7.5 Cross-Linking in the TriCore user guide . It explains the changes introduced in the v6.3r1-based patches due to EABI compliance reasons. Moreover, this article includes deta...
C compiler error on using control program with --eabi-compliant or --eabi=F / --eabi=-float options 07-Jan-2025
The TriCore CPU core versions v1.3.1 up to v1.6.2 (AURIX 2G) include a hardware FPU unit for floating-point calculations. This makes float calculations very efficient because there are dedicated assembly instructions, for example, for floating-point multiplication, division, addition, or s...
TriCore Eclipse IDE: An Error had occured. See the log file 07-Jan-2025
TriCore VX-toolset v6.3r1 Eclipse IDE requires a 64-bit Java Runtime Environment (JRE) v8 or above. The installer tries to detect if a 64-bit JRE is already present. If not, it will install JRE build v1.8.0_162. If multiple JRE versions are installed, it might happen that the Eclipse inclu...
Are there dedicated licenses for patches? 03-Dec-2024
No. There are no dedicated licenses for patches. All patches use the same license options file, which is specified by the Windows environment variable named TSK_OPTIONS_FILE_ Product-Codeversion number r revision number For example, for Tricore v6.3r1, the variable name is TSK_OPTIONS_FILE...
Migrate from BIFACES to TriCore Eclipse IDE 25-Nov-2024
This application note outlines the comprehensive process of migrating an Infineon BIFACES ( Build and Integration Framework for Automotive Controller Embedded Software) project to the VX-toolset for TriCore Eclipse IDE. It provides a step-by-step guide, including the preparation of the BIF...
Alignment requirements/restrictions for the TriCore architecture 25-Nov-2024
This application note provides detailed information on the alignment restrictions of the TriCore architecture. Additionally, it covers the alignment restrictions for Infineon EABI, and outlines the alignment options supported by the C compiler and the Linker Script Language (LSL). It also ...
Why isn't the control program a part of the qualified toolset components? 12-Nov-2024
The control program (cctc) facilitates the invocation of the qualified tools of the TriCore toolset from a single command line. If you would like to know which options are passed to the individual tools, you can enable the verbose option -v and review the output. The control program itself...
TriCore Qualification Kit: Qualified toolset components and options 12-Nov-2024
To see which tools are qualified, refer to section 1.7 Qualified toolset components in the Safety & Cybersecurity Manual TASKING VX- toolset for TriCore v6.3r1 . To see which tool options are qualified, refer to the Annex J List of qualified tool options in the Safety & Cybersecurity Manua...
TriCore VX-toolset Qualification Kit Package 12-Nov-2024
The Qualification Kit includes the following: Safety Manual for the TriCore VX-toolset Perennial CVSA (C) and CCVS (C++) test suite configuration files, which allow users to run the Perennial test suites with the TASKING TriCore tools (using customized tool options). The Perennial test sui...
Build and run Windows Docker Image 26-Sep-2024
This application note provides detailed guidance for creating and running a Docker image for VX-toolset for TriCore v6.3r1 whether on local disks or in remote repositories. It walks you through setting up Docker Desktop, preparing a Dockerfile, building and running the image, and managing ...
Eclipse quits with an error after updating Java JRE or installing a product 24-Sep-2024
After updating Java JRE, the following Eclipse error may show up: An error has occured. See the log file workspace\.metadata\.log. The log file shows a line like this: Caused by: java.lang.IllegalArgumentException: Invalid version number: Version number may be negative or greater than 255 ...