Keil Logo

ULINK: Could Not Stop Cortex-M Device

Information in this knowledgebase article applies to:

  • Keil MDK V4 All versions
  • Keil MDK V5 All versions


When I try to connect my ULINK adapter to my target board, I get the following message:

Could not stop Cortex-M device!
Please check the JTAG cable

What can cause the error?


This error is an indication that the ULINK adapter cannot control the Cortex-M device. There are many possible reasons for this. Note: This is not an exhaustive list:

  • The target device is not powered.
  • The ULINK ribbon cable is too long or broken.
  • The Max Clock setting is wrong for this device. Reducing the clock setting often helps. See ULINK JTAG/SW Adapter
  • The JTAG or SWD signals are missing or not connected properly. See Target Connectors.
  • You may need to modify the Connect and Reset Options if you are using a custom Cortex-M implementation. If you believe the device is held in reset, it may be required to power on/off the device, when re-configuring to a *different* reset option. (Commonly, in our MCB line of boards, a set of LEDs will all turn on, to show the reset occurred, then LEDs turn off. If the same group of LEDs remains on, then this could mean either the LEDs are part of the image or the device is held in reset).
  • For ULINK and CMSIS DAP debug units, in Options for Target => Debug tab => Settings (the Target Driver Setup), there is a Pack tab, when a device family pack supports the CMSIS debug description. A user may consider disabling the "Enable" option. While the debug description is useful, especially for establishing an initial connection, it can override parts of the manual configuration. Temporarily, turn this off, and retry the Connect and Reset options from earlier.
  • To use on-chip flash, in some NXP Cortex-M devices, µVision requires a special signature creator, called ElfDwT, as a User command, Post-build. In this case, failing to call ElfDwT.exe causes user code placed in internal flash to be considered invalid. For more information on how to use ElfDwT, see the knowledgebase article below or refer to Options for Target => User tab, in MCB1800/4300 example's on-chip flash targets.

If error message appears at beginning of debug mode, try disabling Run to main in Options for Target => Debug tab. This may allow user to step through initial startup or boot code to view more debug information, before the error message.



Last Reviewed: Saturday, October 3, 2020

Did this article provide the answer you needed?
Not Sure
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.