flash/nor/tcl: Make write_bank parameter optional
Make the 'offset' parameter optional, if omitted simply start at the beginning of the flash bank. Additionally, check if the argument is out of bounds of the flash bank. Change-Id: I8e9632b539ad9e83211e1ac6a06da4c8109cbc60 Signed-off-by: Marc Schink <openocd-dev@marcschink.de> Reviewed-on: http://openocd.zylin.com/3860 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz>macbuild
parent
2de82d39a2
commit
bdc71c5252
|
@ -4715,9 +4715,10 @@ each block, and the specified length must stay within that bank.
|
||||||
@end deffn
|
@end deffn
|
||||||
@comment no current checks for errors if fill blocks touch multiple banks!
|
@comment no current checks for errors if fill blocks touch multiple banks!
|
||||||
|
|
||||||
@deffn Command {flash write_bank} num filename offset
|
@deffn Command {flash write_bank} num filename [offset]
|
||||||
Write the binary @file{filename} to flash bank @var{num},
|
Write the binary @file{filename} to flash bank @var{num},
|
||||||
starting at @var{offset} bytes from the beginning of the bank.
|
starting at @var{offset} bytes from the beginning of the bank. If @var{offset}
|
||||||
|
is omitted, start at the beginning of the flash bank.
|
||||||
The @var{num} parameter is a value shown by @command{flash banks}.
|
The @var{num} parameter is a value shown by @command{flash banks}.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
|
|
|
@ -585,7 +585,7 @@ COMMAND_HANDLER(handle_flash_write_bank_command)
|
||||||
uint8_t *buffer;
|
uint8_t *buffer;
|
||||||
struct fileio *fileio;
|
struct fileio *fileio;
|
||||||
|
|
||||||
if (CMD_ARGC != 3)
|
if (CMD_ARGC < 2 || CMD_ARGC > 3)
|
||||||
return ERROR_COMMAND_SYNTAX_ERROR;
|
return ERROR_COMMAND_SYNTAX_ERROR;
|
||||||
|
|
||||||
struct duration bench;
|
struct duration bench;
|
||||||
|
@ -596,7 +596,16 @@ COMMAND_HANDLER(handle_flash_write_bank_command)
|
||||||
if (ERROR_OK != retval)
|
if (ERROR_OK != retval)
|
||||||
return retval;
|
return retval;
|
||||||
|
|
||||||
COMMAND_PARSE_NUMBER(u32, CMD_ARGV[2], offset);
|
offset = 0;
|
||||||
|
|
||||||
|
if (CMD_ARGC > 2)
|
||||||
|
COMMAND_PARSE_NUMBER(u32, CMD_ARGV[2], offset);
|
||||||
|
|
||||||
|
if (offset > p->size) {
|
||||||
|
LOG_ERROR("Offset 0x%8.8" PRIx32 " is out of range of the flash bank",
|
||||||
|
offset);
|
||||||
|
return ERROR_COMMAND_ARGUMENT_INVALID;
|
||||||
|
}
|
||||||
|
|
||||||
if (fileio_open(&fileio, CMD_ARGV[1], FILEIO_READ, FILEIO_BINARY) != ERROR_OK)
|
if (fileio_open(&fileio, CMD_ARGV[1], FILEIO_READ, FILEIO_BINARY) != ERROR_OK)
|
||||||
return ERROR_FAIL;
|
return ERROR_FAIL;
|
||||||
|
@ -921,10 +930,9 @@ static const struct command_registration flash_exec_command_handlers[] = {
|
||||||
.name = "write_bank",
|
.name = "write_bank",
|
||||||
.handler = handle_flash_write_bank_command,
|
.handler = handle_flash_write_bank_command,
|
||||||
.mode = COMMAND_EXEC,
|
.mode = COMMAND_EXEC,
|
||||||
.usage = "bank_id filename offset",
|
.usage = "bank_id filename [offset]",
|
||||||
.help = "Write binary data from file to flash bank, "
|
.help = "Write binary data from file to flash bank. Allow optional "
|
||||||
"starting at specified byte offset from the "
|
"offset from beginning of the bank (defaults to zero).",
|
||||||
"beginning of the bank.",
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.name = "write_image",
|
.name = "write_image",
|
||||||
|
|
Loading…
Reference in New Issue