SPRUIG8J January 2018 – March 2024
On C7000 devices, most symbol references are handled in a position-independent manner through a PC-relative relocation. This sort of relocation can reach only +/- 2GB away from the current PC value. However, C7000 devices can have objects beyond this +/- 2GB reach, in which case a PC-relative relocation would overflow and a linker error would occur.
To access such far-away objects, use the _symval operator to get the full address. Using _symval forces the linker to use an absolute relocation, which uses the full address.