I recently switched to the 1284p Âµc. In the beginning, everything was ok. The software was working fine. Now, after the code has grown a little bit more, I encounter missbehaviour in the software.
After long analysis, I figured out, that the code works fine, when I change the linking order.
When I put the api for a lib to the end of the linklist and the software works.
When I put the api in the beginning of the linklist the software does not work correctly, but the compiled package size is still the same.
My actual programm size using WinAVR-20100110 is like this:
Program: 53970 bytes (41.2% Full) (.text + .data + .bootloader) Data: 4886 bytes (29.8% Full) (.data + .bss + .noinit) EEPROM: 467 bytes (11.4% Full)
Plus the bootloader space of 4096 WORDS.
This seems to me like a problem occuring when the address space between the api functions and the library is to far.
I can fix the problem by changing the linkorder.
But I want to understand what happens here.
I'm sure, some of you can give me some hints.