summaryrefslogtreecommitdiff
path: root/src/target/etm.c
diff options
context:
space:
mode:
authordrath <drath@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2007-06-15 14:10:23 +0000
committerdrath <drath@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2007-06-15 14:10:23 +0000
commit3d026ce94393e5e53cccb5d5364f9d500d5b3733 (patch)
tree493a91caf9c2cab8e4109219b89eb132b6f8d717 /src/target/etm.c
parent972ca49d3a5e285492e4c1680289f819f26eaec3 (diff)
downloadopenocd_libswd-3d026ce94393e5e53cccb5d5364f9d500d5b3733.tar.gz
openocd_libswd-3d026ce94393e5e53cccb5d5364f9d500d5b3733.tar.bz2
openocd_libswd-3d026ce94393e5e53cccb5d5364f9d500d5b3733.tar.xz
openocd_libswd-3d026ce94393e5e53cccb5d5364f9d500d5b3733.zip
- added support for pseudo image type "mem", currently only used for etm analysis: "etm image <target#> <dummy base address> mem"
git-svn-id: svn://svn.berlios.de/openocd/trunk@173 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src/target/etm.c')
-rw-r--r--src/target/etm.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/target/etm.c b/src/target/etm.c
index a775bbd1..dd6e6025 100644
--- a/src/target/etm.c
+++ b/src/target/etm.c
@@ -1313,7 +1313,7 @@ int handle_etm_image_command(struct command_context_s *cmd_ctx, char *cmd, char
if (argc < 1)
{
- command_print(cmd_ctx, "usage: etm image <file> ['bin'|'ihex'|'elf'] [base address]");
+ command_print(cmd_ctx, "usage: etm image <file> [base address] [type]");
return ERROR_OK;
}
@@ -1342,18 +1342,18 @@ int handle_etm_image_command(struct command_context_s *cmd_ctx, char *cmd, char
etm_ctx->image->base_address_set = 0;
etm_ctx->image->start_address_set = 0;
- for (i = 1; i < argc; i++)
+ /* a base address isn't always necessary, default to 0x0 (i.e. don't relocate) */
+ if (argc >= 2)
{
- /* optional argument could be image type */
- if (identify_image_type(&etm_ctx->image->type, args[i], args[0]) == ERROR_IMAGE_TYPE_UNKNOWN)
- {
- /* if it wasn't a valid image type, treat it as the base address */
- etm_ctx->image->base_address_set = 1;
- etm_ctx->image->base_address = strtoul(args[i], NULL, 0);
- }
+ etm_ctx->image->base_address_set = 1;
+ etm_ctx->image->base_address = strtoul(args[1], NULL, 0);
}
-
- if (image_open(etm_ctx->image, args[0], FILEIO_READ) != ERROR_OK)
+ else
+ {
+ etm_ctx->image->base_address_set = 0;
+ }
+
+ if (image_open(etm_ctx->image, args[0], (argc >= 3) ? args[2] : NULL) != ERROR_OK)
{
command_print(cmd_ctx, "image opening error: %s", etm_ctx->image->error_str);
free(etm_ctx->image);