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.
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
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
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