Skip to main content
Visitor II
November 8, 2010
Question

STM32-DISCOVERY Atollic toolset ST-Link debugger not working

  • November 8, 2010
  • 8 replies
  • 4779 views

Posted on November 08, 2010 at 20:51

I have the STM32-Discovery board - it appears to be working, lights blinking, etc. When plugged into a USB port on my Windows XP machine, I can see 3 files that direct my browser to the STM website, i.e. USB communications are working.

I have downloaded the Atollic lite toolset. I can build the embedded example. It seems to be working except that it appears that the ST-Link debugger is not working.

I have successfully updated the ST-Link debugger to the latest firmware version from the STM website. The process reports successful update i.e. communications via USB is ok.

The problem seems to be that when the Atollic TrueSTUDIO gdbserver is launched it reports that there is an ''error initializing the ST-Link device'' and exits.

Atollic has not replied to questions - can anyone help? Thanks!

    This topic has been closed for replies.

    8 replies

    Graduate II
    November 9, 2010
    Posted on November 09, 2010 at 03:56

    Atollic has not replied to questions - can anyone help?  Thanks!

    Probably a level of support commensurate with the amount you have paid them for the product.

    The ST-LINK is somewhat less refined than the J-Link and U-Link JTAG pods, and has some issues.

    I'd suggest you give the Keil uVision 4 demo/eval a try, there is an issue with downloading code directly with the ST-LINK, but the download/debug does work.

    sarnsAuthor
    Visitor II
    November 10, 2010
    Posted on November 10, 2010 at 17:55

    Thanks.  I had already tried IAR with similar results (''unable to stop core'').  At least the IAR support staff is in the process of attempting to help.  Per your suggestion I tried the Kiel without much hope - but it does work.  If anyone needs to know -> you must reconfigure the debugger in two places, one to use the ST-Link debugger and another to specify SWD mode.

    sarnsAuthor
    Visitor II
    November 10, 2010
    Posted on November 10, 2010 at 19:14

    Per the IAR support team, the default configuration must be changed to: 

    Select:  Project->Options->General Options->Library configuration->Library

    low-level interface implementation->None

    Now IAR is working.

    sarnsAuthor
    Visitor II
    November 10, 2010
    Posted on November 10, 2010 at 19:38

    The Atollic debugger works after the following procedure:

    right click on the project in the Project Explorer

    select properties

    select run/debug settings

    select your project name and click on ''edit''

    select debugger

    select SWD

    Super User
    November 10, 2010
    Posted on November 10, 2010 at 22:00

    The STM32 chips supports two types of debug connection: JTAG and SWD - so you obviously need to configure your debugger accordingly.

    The discovery board is wired for SWD.

    JTAG has been the more common connection to date, so it's unsurprising that debuggers default to JTAG and have to be specifically reconfigured for SWD

    Visitor II
    November 16, 2010
    Posted on November 16, 2010 at 19:52

    I was struggling with exactly this issue, and changing it to SWD fixed the problem.    Thanks everyone!

    Visitor II
    November 25, 2010
    Posted on November 25, 2010 at 13:49

    Hello,

    there is a serious bug in Atollic SW. When you close the chip once (e.g. you disable to readout of flash), Atollic gdb server doesn't work at all and crash!

    In such case you have to use Bootloader via USART to remove the fuses. I spent days on this stupid issue...

    Graduate II
    November 25, 2010
    Posted on November 25, 2010 at 16:13

    ROP is designed to make debugging impossible/difficult after all. The CPU does not operate in a ''normal'' manner, with ROP enabled. Disabling JTAG/SWD can also make things even more fun.

    The USART and JTAG methods are both workable ways off getting out of ROP mode, as is implementing an exit method in your own code.