Debug port answered, no core behind it
The chip answered but no Cortex-M core was found behind its debug port. This is what a chip held in reset, or one whose core domain is unpowered, looks like from here.
CORTEX_M_NO_CORE_FOUND
Symptoms
- The chip answered — this is not the silent case — but the error says no cores were discovered.
- The same board works from a vendor tool that connects under reset.
- It happens on a custom board and never on the dev-board equivalent of the same part.
Likely causes
- The chip is held in reset. The debug port stays alive across reset on Cortex-M, so the port answers while the core behind it does not.
- The core’s power domain is off. On parts with separate debug and core domains, the DP responds before the core is powered up.
- The link is good enough to read the port but not to walk the ROM table — a marginal clock or a long cable can stop exactly here.
- A part where the core is released by a bootloader or a security controller that has not run yet.
How to fix it
-
Release reset
Check NRST is not held low by a supervisor, a stuck button or a second debugger. This is the most common reason a live port has nothing behind it.
-
Give the board its own supply
Power the board from its normal supply rather than the probe alone, so the core domain comes up as designed.
-
Lower the debug clock
If the port reads but discovery does not finish, drop the SWD clock (4 MHz → 500 kHz) and try again. Short the wiring at the same time.
-
Try connecting under reset
This catches the case where something in the firmware takes the core away right after boot.
pyocd commander -M under-reset