From 78cbbba8e0bc8b0288f5ce4360b4689ab893aa13 Mon Sep 17 00:00:00 2001 From: Luis Machado Date: Fri, 20 Jan 2017 08:13:03 -0600 Subject: Add command to erase all flash memory regions Changes in v4: - Replaced phex call with hex_string. Changes in v3: - Addressed comments by Pedro. - Output of memory region size now in hex format. - Misc formatting fixups. - Addressed Simon's comments on formatting. - Adjusted command text in the manual entry. - Fixed up ChangeLog. - Renamed flash_erase_all_command to flash_erase_command. Changes in v2: - Added NEWS entry. - Fixed long lines. - Address printing with paddress. Years ago we contributed flash programming patches upstream. The following patch is a leftover one that complements that functionality by adding a new command to erase all reported flash memory blocks. The command is most useful when we're dealing with flash-enabled targets (mostly bare-metal) and we need to reset the board for some reason. The wiping out of flash memory regions should help the target come up with a known clean state from which the user can load a new image and resume debugging. It is convenient enough to do this from the debugger, and there is also an MI command to expose this functionality to the IDE's. gdb/doc/ChangeLog: 2017-01-20 Mike Wrighton Luis Machado * gdb.texinfo (-target-flash-erase): New MI command description. (flash-erase): New CLI command description. gdb/ChangeLog: 2017-01-20 Mike Wrighton Luis Machado * NEWS (New commands): Mention flash-erase. (New MI commands): Mention target-flash-erase. * mi/mi-cmds.c (mi_cmd_target_flash_erase): Add target-flash-erase MI command. * mi/mi-cmds.h (mi_cmd_target_flash_erase): New declaration. * mi/mi-main.c (mi_cmd_target_flash_erase): New function. * target.c (flash_erase_command): New function. (initialize_targets): Add new flash-erase command. * target.h (flash_erase_command): New declaration. --- gdb/doc/gdb.texinfo | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'gdb/doc/gdb.texinfo') diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 2b6b654..dcca91b 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -19622,6 +19622,16 @@ load programs into flash memory. @code{load} does not repeat if you press @key{RET} again after using it. @end table +@table @code + +@kindex flash-erase +@item flash-erase +@anchor{flash-erase} + +Erases all known flash memory regions on the target. + +@end table + @node Byte Order @section Choosing Target Byte Order @@ -31859,6 +31869,28 @@ No equivalent. @subsubheading Example N.A. +@subheading The @code{-target-flash-erase} Command +@findex -target-flash-erase + +@subsubheading Synopsis + +@smallexample + -target-flash-erase +@end smallexample + +Erases all known flash memory regions on the target. + +The corresponding @value{GDBN} command is @samp{flash-erase}. + +The output is a list of flash regions that have been erased, with starting +addresses and memory region sizes. + +@smallexample +(gdb) +-target-flash-erase +^done,erased-regions=@{address="0x0",size="0x40000"@} +(gdb) +@end smallexample @subheading The @code{-target-select} Command @findex -target-select -- cgit v1.1