We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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
"my colleague bought a new PK51, which has latest version (C51 V8.x). The project is failed to be compiled."
If you are both working on the same project, then you absolutely must both use the same tool versions!!
You need to speak to Keil about this - either upgrade your version, or get an additional licence for your colleague to use your version...
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
"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...