The TI compiler can generate references to external objects in two ways: using one instruction or using two. References using single instructions are faster than those using two instructions but they have limited addressing capabilities: objects that are too far away or are too large may not be reachable. References using two instructions can reach anywhere in the processor's address space.
'Relocation errors' indicate that the configurer has discovered a single-instruction reference that cannot reach its target. To ensure the compiler generates the longer instruction sequences when necessary, you should ensure that your source declares the objects as 'far'. For example:
extern far int Counter;
extern far void SpecialProcessing(void);
This usually happens only when you explicitly put data or functions in separate sections and not in the usual '.data' or '.text' sections.
|