I can no longer run the simulator, debugger, or download code to my target. When I try to download code to my target I get the below error message, which I can't seem to find any reference to online or in any of the PDF files in my KEIL tools directory, etc.
*** error 59: invalid absolute module
Can anyone point me to where this error is defined, or tell me what it means and how to recover from it?
Thanks, Dave.
After restoring all my source files to their prior working state, the problem persisted.
So... I tried un-installing and re-installing the KEIL tools, but that didn't help either.
So... I tried deleting all KEIL files from my project directory and re-creating the project and rebuilding it from scratch. At last... I could once again load code into my target.
However, as soon as I added the last piece of code to my project that I had added just before I got error 59, I now got error 59 again after I did a build all and when I tried to load it into my target.
I have the compiler's warning level set to all warnings, but when I do a build all I get zero errors or warnings.
What's worse is that now when I try to download the code to my target I either get an error about not being able to write to my project's AXF file (unless I close uVision first and then delete that file), or the uVision IDE crashes.
Sigh... it's not even a Monday morning...!
HELP...
Dave.
Hmmm... the plot thickens...
I had recently installed mdk302a.exe to fix the problem I was having with automatic dependency checking. In the "grasping at straws" mode I decided to un-install this version and go back to the prior mdk301a.exe version of the tools.
Guess what...?
All the above mentioned problems went away.
I'd still like to know what error 59 means, and find out where it's documented in the KEIL doc's.
I guess I'll stay with the prior version of the tools for now.
Dave,
there is a 'small glitch' in the SARM.DLL which somtimes causes this error being thrown. Alternatively, a GPF may be raised instead of E59.
This has been fixed, the next RV-MDK release will include the fix. Meanwhile, you should contact Keil support for the latest SARM.DLL (V3.02b) to get the E59 issue fixed. This dll works with 3.01a and also with 3.02a version so you can use the dependency-checking again.
Regards, Peter
Thanks Peter.
Will do. I'll go back to mdk302a.exe, and if the problem re-occurs (I've changed my project since I ran into this problem), I'll try using that DLL to see if it fixes it.
Do you know if E59 is documented in any of the user manuals?
I failed looking it up in the online documentation, but this could be my fault.
Basically, the conditions for getting error 59 are: a) the loaded file is corrupted
b) the loaded file does not match the architecture (for example loading an OMF51/251 file with the ARM7 debugger)
c) the loaded file is not finalized due to incomplete incremental linking (OMF166)
None of these is relevant in your case, E59 is caused by a bug where the loader may get out of sync while analyzing the elf/dwarf file.
Hmmm... scenario B is interesting...
I often switch the target for my project back and forth between AT91SAM7S32 and AT91SAM7S256, by going back to the device tab in the target option dialog and selecting one of those two choices. As I've been having this trouble, several times this dialog box indicated that my project was configured for an 8051 type part. I have no idea how that was happening, but I'd switch it back to a SAM7 part and move on. I don't believe I'd experienced this E59 problem until after that device switching anomaly surfaced. Perhaps it's related.
Hopefully this problem will disappear with the next release of the tools.
Thanks for your support, Dave.