Skip to main content

[TriCore] Core local addressing and "ambiguous symbol" error - Knowledgebase / FAQs by core architecture / TriCore - Lauterbach Support

[TriCore] Core local addressing and "ambiguous symbol" error

Each TriCore core of an AURIX chip is equipped with directly attached memories: Program Scratch Pad Ram (PSPR) and Data Scratch Pad Ram (DSPR), accessible by itself via core-local and global addressing, accessible by other cores via global addressing.

When accessing its own memory, accessing via global addresses has no (!) impact on access speed.

When having different code and therefore different symbols on each core, core-local addressing can easily lead to ambiguous symbols. Imagine a function "foo" at address P:0xC0000100 on core 0 and a completely different function "bar" at address P:0xC0000100 on core 1.

Using global addressing avoids such ambiguities, in the above example "foo" would be at address P:0x70100100 and "bar" at P:0x60100100 .

In general, it is recommended to use global addressing only, avoid core-local-addressing whenever possible. Modify the linker script file in your compiler toolchain.

Helpful Unhelpful

1 of 1 people found this page helpful

Add a comment

To prove you are a human, please tell us the text you see in the CAPTCHA image