Categories

TriCore VX-toolset
Cross-Linking in TriCore 03-Dec-2024
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...
Dedicated placement of ROM copy sections for initialized data 26-Nov-2024
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...
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...
GCC to TASKING migration guide for Infineon AURIX 25-Nov-2024
This application note explains the migration of an AURIX/TriCore software project built with GCC to the TASKING toolset. It outlines the necessary changes to the C/C++ source code to address implementation-defined behavior and support intrinsic functions, attributes, etc. Additionally, it ...
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 ...
TriCore Compiler Internal Generated Sections 19-Nov-2024
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 following compiler-generated internal sections and describes how they can be utilized: Initializers: *.n.ini.* String literals: *.n....
Linker Script Language (LSL) tips & tricks for the TriCore toolset 19-Nov-2024
This application note provides several helpful tips and tricks to help you use Linker Script Language (LSL) effectively in a TriCore VX-toolset. The key topics include: LSL code core association and data core association Using the overflow keyword for distributed output sections Using the ...
Memory usage information included in a map file 15-Nov-2024
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 ...
Section is not assigned to an LSL group as expected 15-Nov-2024
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 be due to the wrong space selection in the section_layout in the LSL file. Possible solution Although group names are optional, consider usi...
Change the section attribute at link stage / prevent initialization of sections 15-Nov-2024
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...
Linker Warning W132: cannot bind symbol _lc_ub_heap … and cannot bind symbol _lc_ue_heap … 12-Nov-2024
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 12-Nov-2024
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 12-Nov-2024
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 12-Nov-2024
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? 12-Nov-2024
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 12-Nov-2024
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...
Change the code core or data core association using "modify input" in the LSL file 12-Nov-2024
Our TriCore tools feature the language extensions __share , __private0 , __private1 , __private2 , and __clone to assign a code or data section to multiple cores or a single core only. You can achieve the same goal with the following pragmas: #pragma code_core_association share | private{0...
C compiler error on using control program with --eabi-compliant or --eabi=F / --eabi=-float options 12-Nov-2024
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...
Does the TriCore toolset work with the Amazon Corretto distribution of OpenJDK? 12-Nov-2024
Yes, the 64-bit version of Amazon Corretto has been tested successfully with the TriCore toolset v6.3r1. Also, the 32-bit version of Amazon Corretto JRE8 can be used for the 32-bit versions of the TASKING TriCore tools (versions up to v6.2r2) which are JRE8 compliant. To force the Eclipse ...
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...
Application does not start on a target board after the Program Flash memory was erased 12-Nov-2024
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...
TriCore VX-toolset: Determine the version, revision, and patch level 12-Nov-2024
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...
Do the Eclipse-based products for TriCore, GTM, and the Embedded Debugger work with OpenJDK? 22-Oct-2024
Yes, you can use the free OpenJDK 8 with our products that use the Eclipse platform v4.5.1 (Mars 1). These products are: TASKING VX-toolset for TriCore versions v6.1r1 and higher GTM v3.2r1 and higher TASKING Embedded Debugger v1.0r3 and higher Note that Eclipse requires you to have a Java...
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 ...
TriCore Eclipse IDE: An Error had occured. See the log file 17-Sep-2024
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...