µVISION DEBUGGER: ERROR 57: ILLEGAL ADDRESS IN DEBUGGER OUTPUT WINDOW
Information in this article applies to:
- MDK-ARM All Versions
- ULINK2/ULINKpro USB-JTAG Adapter
SYMPTOMS
After starting a debug session on a Cortex-M device the following message is printed in the debugger output window:
*** error 57: illegal address (...)
Why is there an illegal address access?
CAUSE
This can be caused by the debugger when, for example, a memory window's Address field points to a location that cannot be accessed during debugging. Furthermore, this can be caused when the option Download to Flash in Options for Target — Debug — Settings — Debug — Download Options is enabled.
Download to Flash writes code to all memory areas, including those areas defined as Flash. This behavior is not allowed. Instead of writing code directly to Flash memory, you need to program Flash with a Flash programming algorithm. Check the Target Driver Setup — Flash Download dialog.
The Download to Flash option is useful, for example, within systems that have indirect access to the boot memory, like NAND Flash, but execute from SDRAM. In such cases, the SDRAM area is defined as Flash. The code will be processed by a Flash programming algorithm and written to NAND Flash. When booting, the code is copied from NAND to SDRAM and executed there. But when debugging, the code needs to be downloaded to SDRAM by the debugger. With this option, one target can be used for debugging from SDRAM as well as for flashing the application from NAND.
RESOLUTION
Please disable Download to Flash in Options for Target — Debug — Settings — Debug. Now, the illegal address error disappears. If you want to update the target before debugging, please enable Options for Target — Utilities — Update Target before Debugging.