cancel
Showing results for 
Search instead for 
Did you mean: 

GDBserver flash programming problem

glory_man
Associate II
Posted on January 27, 2012 at 13:47

I use Eclipse-IDE and CodeSourcery G++ Lite to create programs for STM32F4xx.

As debugger I use CodeSourcery gdb and gdb-server from Atollic TrueSTUDIO Lite package.

If I debug program located in flash on Sector 0 (start addresses from 0x08000000) all workes fine - server erase old application and write new. Attached file debug_log_ok.txt - keep gdbserver log after debugging this application started from 0x08000000.

But when I try to debug prgramm started from 0x08020200 (sector 5) (sector0 keep bootloader) [program start location edited in ld-file, vector table offset changed] application doesn't write to flash. I have error message:

Failed to execute MI command:

Error message from debugger back end:

Error writing data to flash

GDBserver log is in attached file debug_log_fail.zip. There is following string in it

get_f2_flash_error_status():  FuncExit

lock_flash_f2_prg_and_erase_ctrler():  FuncEntry

It seems like after sector erasing server locks them.

If I manually erase sector 5 with ST-Link utility before debuger start - all ok to - program writed to flash.

Is it possible to debug such application? May be I missed some options. Which ones I need to set?

Atollic doesn't provide support for Lite. :(

Thanks in advance

Vyacheslav
1 REPLY 1
tg22410
Associate II
Posted on August 19, 2013 at 10:02

I'm having the same problem with other devices (STM32F2) and it happends when the linker file is modified. It seems that the flash sectors are not erased before writting the new data. I have the problems with Atollic TrueSTUDIO gdbserver 1.4.1.

Any clue to solve this?

Thank you!