title: STM32CubeIDE can only flash once, no SWD debugging
body: <p>For a couple of years I have been using the mbed online compiler to create .bin files, and then flash them at the command line like this, using a ST-LINK/V2 USB dongle, and everything works flawlessly:</p>
  
  <pre><code>st-flash write 01_blink.NUCLEO_F103RB.bin 0x8000000
  </code></pre>
  
  <p>Today I downloaded the STM32CubeIDE for Linux (Fedora 30) and started going through this tutorial, using a maple mini (STM32F103CBT6).</p>
  
  <p><a href="https://www.digikey.co.nz/en/maker/projects/getting-started-with-stm32-introduction-to-stm32cubeide/6a6c60a670c447abb90fd0fd78008697" rel="noreferrer">https://www.digikey.co.nz/en/maker/projects/getting-started-with-stm32-introduction-to-stm32cubeide/6a6c60a670c447abb90fd0fd78008697</a></p>
  
  <p>After building the project and starting a debug run, I get the output:</p>
  
  <pre><code>STMicroelectronics ST-LINK GDB server. Version 5.3.2
  Copyright (c) 2019, STMicroelectronics. All rights reserved.
  
  Starting server with the following options:
          Persistent Mode            : Disabled
          Logging Level              : 1
          Listen Port Number         : 61234
          Status Refresh Delay       : 15s
          Verbose Mode               : Disabled
          SWD Debug                  : Enabled
  
  Waiting for debugger connection...
  Debugger connected
        -------------------------------------------------------------------
                          STM32CubeProgrammer v2.2.0                  
        -------------------------------------------------------------------
  
  
  
  Log output file:   /tmp/STM32CubeProgrammer_2ZxzGk.log
  ST-LINK SN  : 34006B063058373138650943
  ST-LINK FW  : V2J34S7
  Voltage     : 3.21V
  SWD freq    : 4000 KHz
  Connect mode: Under Reset
  Reset mode  : Hardware reset
  Device ID   : 0x410
  Device name : STM32F101/F102/F103 Medium-density
  Flash size  : 64 KBytes
  Device type : MCU
  Device CPU  : Cortex-M3
  
  
  
  Memory Programming ...
  Opening and parsing file: ST-LINK_GDB_server_Q2zZSF.srec
    File          : ST-LINK_GDB_server_Q2zZSF.srec
    Size          : 4648 Bytes
    Address       : 0x08000000 
  
  
  Erasing memory corresponding to segment 0:
  Erasing internal memory sectors [0 4]
  Download in Progress:
  
  
  File download complete
  Time elapsed during download operation: 00:00:00.595
  
  
  
  Verifying ...
  
  
  
  
  Download verified successfully 
  
  
  Target is not responding, retrying...
  Target is not responding, retrying...
  Target is not responding, retrying...
  Target is not responding, retrying...
  Target is not responding, retrying...
  Target is not responding, retrying...
  Target is not responding, retrying...
  Target is not responding, retrying...
  Target is not responding, retrying...
  Target is not responding, retrying...
  Error! Failed to read target status 
  Debugger connection lost.
  Shutting down...
  </code></pre>
  
  <p>After that I can no longer start a debug session because I get this:</p>
  
  <p><a href="https://i.stack.imgur.com/6pfCS.png" rel="noreferrer"><img src="https://i.stack.imgur.com/6pfCS.png" alt="enter image description here"></a></p>
  
  <p>I can see the LED blinking as expected so I know the program was actually flashed to the board ok. But I can't do anything further with STM32CubeIDE and when I try to flash via the command line as before, now that doesn't work either:</p>
  
  <pre><code>[root@localhost Downloads]# st-flash write 01_blink.NUCLEO_F103RB.bin 0x8000000 
  st-flash 1.5.1-38-gc3577b5
  2020-03-24T13:51:09 INFO common.c: Loading device parameters....
  2020-03-24T13:51:09 WARN common.c: Invalid flash type, please check device declaration
    core status: unknown
  Unknown memory region
  </code></pre>
  
  <p>Fortunately I can return to my starting point by using ST-Link UTILITY (on Windows) and holding the reset button before connecting, then doing a full erase, as mentioned here:</p>
  
  <p><a href="http://www.kerrywong.com/2012/08/02/the-dreaded-cannot-connect-to-st-link-error-message/" rel="noreferrer">http://www.kerrywong.com/2012/08/02/the-dreaded-cannot-connect-to-st-link-error-message/</a></p>
  
  <p>But obviously this is not a viable situation for getting any productive development done. What am I doing wrong?</p>
  
  <p>In the 'Debugger' tab of the 'Debug configurations' dialog, I have tried setting 'Interface' as SWD (it was already actually) and I've also tried all options for 'Reset behaviour', with no change in outcome.</p>