This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

uvision3 on windows 10

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.

Parents
  • 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.

Reply
  • 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.

Children
  • 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.