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...
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...
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...
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...
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 ...
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 ...
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...
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 ...
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...
The TriCore CPU does not have a hardware stack. Instead, the run-time environment uses a synthetic stack managed through 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. More re...