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

Ask Keil Support: Are the C51, AX51, LX51 backward compatible?

Hi,

We build a project which can be compiled and linked in success with PK51 V7.0(C51 V7.5 etc..).

But my colleague bought a new PK51, which has latest version (C51 V8.x). The project is failed to be compiled.

Do we have to fine tune our code to make it comply with newer version?
Or there is option in Keil that customer can choose which older version to be used for compiling? Otherwise, it is not good that we have to run through code every time a new Compiler is released.

Thanks

Parents
  • The project is failed to be compiled.

    I can not, in any way, state that this is what you experience; however, if you go back years of Keil releases, you will see that the earlier the release, the more likely it is that a slightly erroneous construct will 'slip through'. My expereience is that the 'error detection' has been improved from release to release. If, indeed you have an "error that don't hurt" that the earlier release pass through, fix it.

    another possibility is that Keil in their infinite wisdom tend to change defaults from release to release.

    another possibility is (was it from 7 to 8?) the minimum optimization level required for overlaying variables increased.

    Anyhow with the NON-information "if failed to be compiled" all you can expect in return is GUESSES. If, however you fully document what happens it might be possible to help you.

    Erik

Reply
  • The project is failed to be compiled.

    I can not, in any way, state that this is what you experience; however, if you go back years of Keil releases, you will see that the earlier the release, the more likely it is that a slightly erroneous construct will 'slip through'. My expereience is that the 'error detection' has been improved from release to release. If, indeed you have an "error that don't hurt" that the earlier release pass through, fix it.

    another possibility is that Keil in their infinite wisdom tend to change defaults from release to release.

    another possibility is (was it from 7 to 8?) the minimum optimization level required for overlaying variables increased.

    Anyhow with the NON-information "if failed to be compiled" all you can expect in return is GUESSES. If, however you fully document what happens it might be possible to help you.

    Erik

Children
  • "If, indeed you have an 'error that don't hurt' that the earlier release pass through, fix it."

    For example, I once worked with some code which built successfully, despite having a typo in a variable name!

    How can this be?
    Because the name was very long, and the typo was beyond the length considered "significant" by the (old) tools!

    So, you can imagine that a "new improved" version of the tools with "extra long name support" would fail to build that code...