ARM Technical Support Knowledge Articles


Applies to: MCBSTR9 Evaluation Board


Information in this article applies to:


My Keil MCBSTR9 Board used to work, but now I cannot the Flash ROM anymore. I can't communicate with the device or even read the JTAG ID from the device.

How can I fix this?


The JTAG on the STR9 device can be blocked by user code with invalid values for the register SCU_CLKCNTR (AHBDIV, RCLKDIV, MCLKSEL). When a program with invalid SCU_CLKCNTR values is in FLASH ROM, the JTAG is blocked and standard access via ULINK is not possible.

To solve this problem, you must hold the device in RESET state (which prevents the incorrect code from being executed until the debugger gains control) and issue the command Flash — Erase from the µVision menu.

This sequence is implemented in UL2ARM.DLL V1.20a or higher which is part of MDK-ARM Version 3.02.

The unlock procedure in detail is:

  1. Power off the device.
  2. Power on the device while holding the reset button on the target.
  3. Start uVision with a STR9 project (and the correct Flash algorithm) and select from the µVision menu Flash — Erase.
  4. Wait at least 0.5 second,  but not more then 1.5 seconds.
  5. Release the Reset button on the target.
  6. Flash will be erased (with the bad code) and JTAG will be fully functional again.


Article last edited on: 2006-11-30 14:44:19

Rate this article

Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential