Tool/software: TI C/C++ Compiler
Hi,
Customer faced one illegal interrupt issue when calling a function by absolute address. Any comment for the issue? Thanks a lot.
Their codes A/B/C are saved into three different Flash addresses.
A is the entry point, with C2000 peripheral drivers.
B is the motor control code, with several functions.
C is the application code, with several functions.
Two CCS projects are created, A+B as project 1, C as project 2. Or A+C as project 1, B as project 2. They are programmed to Flash separately. Compilers are both V6.2.4 and setting are the save, except optimization.
After system reset, A will call the functions from B and C, by absolute address.
The issue is like this:
Optimize | |||||
Project 1 | A+B | O3 | A calls B's function successfully | ||
Project 2 | C | O3 | |||
Project 1 | A+C | O3 | A calls B's function, illegal interrupt happens | ||
Project 2 | B | Disable | |||
Project 1 | A+C | Disable | A calls B's function, illegal interrupt happens | ||
Project 2 | B | Disable | |||
Project 1 | A+B | Disable | A calls B's function successfully | ||
Project 2 | C | Disable |
I'm thinking, if it is due to the long branch.
They are using this kind of structure for 2 years. This is the first time to have the issue. Several new improvement are implemented in code B.
Br, Jordan