I have two development systems set up with uVision for developing on an Atmel Sam9 processor. The output .axf files are not the same, however, and it's a bit puzzling since I have the same version of uVision, development tools and RSX installed. Can anyone know of some sort of checklist of things to make sure two development systems are identical?
I meant to say RTX.
It seems every bit as likely that the project is not the same. But we shall find out won't we.
The first place to look is at the generated map file on both machines. Do a diff between these 2 files. They should be the same if everything is the same. If the first line in each file is different, than that is a big clue. If they are the same, then you need to look at the differences in the rest of the file and determine why they are different. Is it because the source code is different? Is it because a linked library is different? Are there some optimization settings different? Any differences in the map file should point to something that you needed to fix to make it not different. The map file compare will show you exactly were the problem is with very little effort. Good Luck.
The output .axf files are not the same, however, and it's a bit puzzling
It shouldn't be. You should expect the AXF to be different on every build, even on the same machine, building two times in a row. Go ahead and run the experiment: make a copy of your project's entire object folder (.axf, .hex and everything else), and perform a full rebuild. Then see which files are different, and which are the same.
If you want to compare files, do it with HEX files (or BIN files if you absolutely have to). That's what really counts, because that's the code that actually ends up on the microcontroller. The .axf holds all kinds of extra information (time stamps, path names, debug information, even names of temporary files) that can change without affecting the outcome.
Only if the hex file is different is it time to check other files: MAP, LST, source code, and preprocessed source, in that order, to figure out where the difference may have come from.