X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Ftarget%2Ftarget.c;h=3797c3cffa01029bc7d36332d0be36d862addd0a;hp=b7f842e7b8f85e8641a00bc79a9e063774e64395;hb=53d1f9b2ca5718e4996e9cf3406f857d0ed26df2;hpb=f94d66d7c5f3c018ba72593b720746e4c5be1a16 diff --git a/src/target/target.c b/src/target/target.c index b7f842e7b8..3797c3cffa 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -873,7 +873,7 @@ int target_register_user_commands(struct command_context_s *cmd_ctx) register_command(cmd_ctx, NULL, "wp", handle_wp_command, COMMAND_EXEC, "set watchpoint
[value] [mask]"); register_command(cmd_ctx, NULL, "rwp", handle_rwp_command, COMMAND_EXEC, "remove watchpoint "); - register_command(cmd_ctx, NULL, "load_image", handle_load_image_command, COMMAND_EXEC, "load_image
['bin'|'ihex']"); + register_command(cmd_ctx, NULL, "load_image", handle_load_image_command, COMMAND_EXEC, "load_image
['bin'|'ihex'|'elf']"); register_command(cmd_ctx, NULL, "dump_image", handle_dump_image_command, COMMAND_EXEC, "dump_image
"); register_command(cmd_ctx, NULL, "load_binary", handle_load_image_command, COMMAND_EXEC, "[DEPRECATED] load_binary
"); register_command(cmd_ctx, NULL, "dump_binary", handle_dump_image_command, COMMAND_EXEC, "[DEPRECATED] dump_binary
"); @@ -1654,7 +1654,6 @@ int handle_mw_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int handle_load_image_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { - u32 address; u8 *buffer; u32 buf_cnt; u32 image_size; @@ -1668,22 +1667,28 @@ int handle_load_image_command(struct command_context_s *cmd_ctx, char *cmd, char target_t *target = get_current_target(cmd_ctx); - if (argc < 2) + if (argc < 1) { - command_print(cmd_ctx, "usage: load_image
[type]"); + command_print(cmd_ctx, "usage: load_image [address] [type]"); return ERROR_OK; } - identify_image_type(&image.type, (argc == 3) ? args[2] : NULL); - - image.base_address_set = 1; - image.base_address = strtoul(args[1], NULL, 0); + /* a base address isn't always necessary, default to 0x0 (i.e. don't relocate) */ + if (argc >= 2) + { + image.base_address_set = 1; + image.base_address = strtoul(args[1], NULL, 0); + } + else + { + image.base_address_set = 0; + } image.start_address_set = 0; duration_start_measure(&duration); - if (image_open(&image, args[0], FILEIO_READ) != ERROR_OK) + if (image_open(&image, args[0], (argc >= 3) ? args[2] : NULL) != ERROR_OK) { command_print(cmd_ctx, "load_image error: %s", image.error_str); return ERROR_OK;