Using STM32L031 Nucleo for detailed investigation, although suspect similar problem on STM32L050 Nucleo. Running ST-Link software 2J28M18 (latest as of now). OpenOCD release 0.10 final
Fails to connect to target.
Relevant debug output:
Debug: 256 47 stlink_usb.c:817 stlink_usb_init_mode(): MODE: 0x01
Debug: 257 47 stlink_usb.c:442 stlink_usb_error_check(): unknown/unexpected STLINK status code 0x9
Error: 258 47 stlink_usb.c:1779 stlink_usb_open(): init mode failed (unable to connect to the target)
Looking in the source, this status code does not appear to be recognised at all - presumably recent addition.
I tried reducing clock speed from 300kHz to 100kHz without any difference.
Note: I can connect to the target using ST-Link.
Hello,
On Fri, Mar 31, 2017 at 11:44:33AM +0000, steve wrote:
No idea what this might mean, it's not present in the information
available to me.
Have you tried "reset_config connect_assert_srst" with OpenOCD?
--
Be free, use free (http://www.gnu.org/philosophy/free-sw.html) software!
mailto:fercerpav@gmail.com
Check with -v if there is some successfull communication with the device? I suspect not, perhaps the device is in deep sleep or openocd refuses to attach, as I have seen often with openocd.
Otherwise some header file tells 0x09 = STLINK_JTAG_IDCODE_ERROR.
Uwe,
I think the error code you've found is right, and should be added - I've been doing some more debugging, and am getting an ID code of zero returned.
Will pursue your suggestion of 'deep sleep' - that could have happened in the course of messing around.
I tried Paul's suggestion on reset, and that enabled me to connect sufficiently to get back the ID code, although it did give an error message!
Error: BUG: can't assert SRSTWill investigate further.
On Fri, Mar 31, 2017 at 02:45:31PM +0000, steve wrote:
Does it mean you use a board config that lacks "reset_config
srst_only" when in fact this board has SRST properly connected?
--
Be free, use free (http://www.gnu.org/philosophy/free-sw.html) software!
mailto:fercerpav@gmail.com
Just had a scan through some docs that ST sent us ages ago and I have the following error codes listed.
Thanks all for very prompt and helpful responses.
I managed to use ST-Link to upload a known good program and everything burst into life - so looks like Uwe was right about some odd mode having been set.
I used the stm32l0discovery.cfg file (unchanged, in the end), even though I was on a STM32L031 Nucleo-32 board.
So in summary:
a) Spencer's error code list looks worth comparing against current support - since at least code 0x09 isn't currently supported
b) Maybe investigate why ST-Link can access the target when OpenOCD can't. One possible clue is that ST-Link says ' Debug in Low Power mode enabled.' when connecting.
Found the root cause of the inability to connect to the target; must have had brain in neutral when configuring the I/O, and had reassigned PA13/PA14 away from SWD function. The ST-Link software obviously manages to handle this - maybe connects soon enough after reset to prevent software execution on the target.
[A further source of confusion was that the Nucleo uses ST-Link 2-1 transport, whereas my standalone ST-Link uses ST-Link 2 - is auto-identification a possibility?]
On Sun, Apr 02, 2017 at 11:47:26AM +0000, steve wrote:
The most usual cause indeed.
Most probably it uses the reset line and approach that's called
connect_assert_srst in OpenOCD. Haven't you tried it yet?
Please see http://openocd.zylin.com/#/c/3961/ . I do not know why but
this patch is not getting any traction. Feel free to add you review.
--
Be free, use free (http://www.gnu.org/philosophy/free-sw.html) software!
mailto:fercerpav@gmail.com
Hello,
I've the same error on STM8s001J3 which have no reset pin.
do i need to set some config to explain openocd that the mcu don't have reset pin ?
how to check that frequency is correct ? between target and openocd config ?
i'm sure that ST-link v2 is doing well and MCU too.
[...] MODE: 0x01
[...] stlink_usb.c:442 stlink_usb_error_check(): unknown/unexpected STLINK status code 0x9
[...]
don't know where to look for this error. what is this "init" refers to? (rephrased : "init" of what ?)
thanks in advance.