Hi Martin
2) It is a long time ago and I don't remember the exact details but after upgrading Crossworks it would no longer link due to the fact that some Luminary Micro libraries (supplied with Crossworks and used by the compiler) were no longer found.
The reason was that the package used by Crossworks (installed as a plug-in for the processor family) was no longer at the same directory location as before. The project file contains some paths used by the linker and these were no longer valid and so the linker would error.
I think that I asked Rowley Associates and they suggested editing the project file rather than needing to rebuild the project.
3) (possibly) I also needed to remove a library entry when using a Crossworks 3.0 version and learned that it was due to the fact that the original library had been removed from the environment and integrated into a standard one.
Assert:
I don't understand the assert case since the assert was not 'firing' before but started 'firing' in a newer Crossworks release, although nothing else has changed.
In fact it looks more like the assert is 'incorrectly' firing since the check looks fine to me (it is saying that a data area of 0 size doesn't fit into the available RAM (
))
The reason for the assert was simply to check that there was enough space in specific areas for the generated data, whereby it is usually easier to have the linker informing of something that may be critical than finding the cause only after debugging unexpected behavior.
The check is however not very important since I wouldn't expect it to fail unless one were to do something "extremely" wrong with the start-up code, so removing a troublesome check that looks to be incorrectly 'firing' is not a problem.
Regards
Mark