Hi George,
Many thanks for your reply.
It would be even more helpful if you can give me some more detailed information
about the compiler toolsets update.
Let me describe our code structure at first.
Our project has been divided into several modules, e.g., we are using nucleus OS
to be as an embedded operating system for our device, thus we link all .obj files
of nucleus system to be a .lib file.
Before we link the executable output file, we will use lnk30 to generate several
.lib files. Then we use lnk30.exe to link all static .lib files and other .obj
files to be an executable file, at last we use hex30.exe to convert the .out file
to a .dat file to download it to the Flash memory of our device.
Then I have made some test on our project.
Originally, we use C30 compiling toolsets v4.70 to compile our program, and we
can generate all .lib file, .out file and .dat file.
Then I update the toolsets to v5.11, then "PC-relative displacement overflowat ..."
error appears during the link procedure of .out file.
I compare the .asm files generated by the two toolsets, and I find that the .asm
file are far too different from each other.
For v5.11, it looks like
For the result of v4.70, it looks like
If I modify the order of the .obj files in the linked command file, if I am fortunate, the callne may become call, then the overflow problem will disappear.
I think the 64K size restriction always exists no matter we are using v4.70 or v5.11 or not on DSP C30 series, am I right?
Before we enhance our project, we always use v4.70 to compile the firmware, and the result shows that if the compiler do not tell us that there are overflow problems, the program runs well in our device. But as the discussion before, we should have seen the same overflow problem, why it isn't?
Can you give me some advice? I am almost crazy about this problem.
And thank you again.
Best regards
Alex REN