summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAntonio Borneo <borneo.antonio@gmail.com>2010-10-12 16:47:24 +0800
committerØyvind Harboe <oyvind.harboe@zylin.com>2010-10-12 11:22:32 +0200
commited44447e3dfe69084b9960b844c326746681e539 (patch)
tree15e48148aeeb06f20061efd35fee7d5198823d9b /src
parent2ee47b22c6228b80c5a8f1e74209cbf7ad53f775 (diff)
downloadopenocd+libswd-ed44447e3dfe69084b9960b844c326746681e539.tar.gz
openocd+libswd-ed44447e3dfe69084b9960b844c326746681e539.tar.bz2
openocd+libswd-ed44447e3dfe69084b9960b844c326746681e539.tar.xz
openocd+libswd-ed44447e3dfe69084b9960b844c326746681e539.zip
TARGET: review handle_load_image_command()
Collect variable definitions. Report syntax error to command dispatcher. Propagate error when unable to open file. Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/target/target.c24
1 files changed, 8 insertions, 16 deletions
diff --git a/src/target/target.c b/src/target/target.c
index 3c85502e..6edc2398 100644
--- a/src/target/target.c
+++ b/src/target/target.c
@@ -2596,33 +2596,25 @@ COMMAND_HANDLER(handle_load_image_command)
COMMAND_HANDLER(handle_dump_image_command)
{
struct fileio fileio;
-
uint8_t buffer[560];
- int retvaltemp;
-
-
+ int retval, retvaltemp;
+ uint32_t address, size;
+ struct duration bench;
struct target *target = get_current_target(CMD_CTX);
if (CMD_ARGC != 3)
- {
- command_print(CMD_CTX, "usage: dump_image <filename> <address> <size>");
- return ERROR_OK;
- }
+ return ERROR_COMMAND_SYNTAX_ERROR;
- uint32_t address;
COMMAND_PARSE_NUMBER(u32, CMD_ARGV[1], address);
- uint32_t size;
COMMAND_PARSE_NUMBER(u32, CMD_ARGV[2], size);
- if (fileio_open(&fileio, CMD_ARGV[0], FILEIO_WRITE, FILEIO_BINARY) != ERROR_OK)
- {
- return ERROR_OK;
- }
+ retval = fileio_open(&fileio, CMD_ARGV[0], FILEIO_WRITE, FILEIO_BINARY);
+ if (retval != ERROR_OK)
+ return retval;
- struct duration bench;
duration_start(&bench);
- int retval = ERROR_OK;
+ retval = ERROR_OK;
while (size > 0)
{
size_t size_written;