I have some very old firmware builds I need to maintain, which were built using uvision3 on windows 7. As windows 7 support is due to end we are migrating to windows 10. Our modern builds using uvision4 are building and running fine. However, when I build the old projects under windows 10 using uvision3 the build succeeds, but won't run. Looking at the object code there are clear differences between the image built on windows7 and windows 10 using the same uvision3 project. Has anyone got uvision3 to perform under windows 10 as it did in windows 7? I have experimented with compatibility settings without success.
Under win10 most of the compiler objects are *_clz.o, whereas win10 is *.o.
Setting aside that you wrote Win10 for both, which doesn't make sense, those aren't quite "compiler objects". They're objects pulled from a library. That leaves two main possibilities:
1) somehow the project files ended up slightly different (or you picked a different target inside the project), causing different compiler/linker options to be used in the area of floating point support
2) the difference is in the libraries. E.g. one of the installation may have been updated at some point, and the other was not. Or maybe one is a fully licensed version, the other isn't (yet). Or you have library paths configured to look in strange places.
Time to take a thorough look at the tool invocations as documented in the list and map files.
Once again thank you for your help on these issues.
Following your suggestion, I found the library the objects are pulled from, Fz_5s.l.
When I compare this library, between the win7 and win10 installation, they are different. In fact, on win10, the uvision3 installation has the uvision4 library files under C:\Keil370\ARM\RV31\LIB\armlib. I have uvision4 installed under C:Keil\...; I suspect the installation wasn't performed correctly.
When I copied the win7 libary files accross to the win10 installation, the win10 build produced an identical hex file to the win7 build.
I think the safest thing to do is uninstall uvision3 and uvision4 and try installing again; then check the library files match the win7 installation.
Thanks again for your help.