This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Main OpenOCD repository".
The branch, master has been updated
via f66a16c4a06fde23ae25f39c92990aa049c3c970 (commit)
from 4626af440122272a6c18ad293edc81d3051d83ec (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit f66a16c4a06fde23ae25f39c92990aa049c3c970
Author: Tomas Vanek <va...@fb...>
Date: Mon Nov 22 13:50:01 2021 +0100
target/hla_target: set cortex_m->common_magic
hla_target uses the same struct cortex_m_common as the standard cortex_m
target. Unlike the cortex_m target hla missed setting of common_magic.
Set commont_magic to help pointer verification.
Add convenience tests is_cortex_m_or_hla() and
is_cortex_m_with_dap_access()
Use proper test in cortex_m_verify_pointer() - this code relied on
unset common_magic on hla target before the change.
Change-Id: I4dae79f056c3d73adf524e26aa8ef2d3a57b471e
Signed-off-by: Tomas Vanek <va...@fb...>
Reviewed-on: https://review.openocd.org/c/openocd/+/6741
Tested-by: jenkins
Reviewed-by: Antonio Borneo <bor...@gm...>
diff --git a/src/target/cortex_m.c b/src/target/cortex_m.c
index 721cf0a24..649ee32f2 100644
--- a/src/target/cortex_m.c
+++ b/src/target/cortex_m.c
@@ -2589,7 +2589,7 @@ static int cortex_m_target_create(struct target *target, Jim_Interp *interp)
static int cortex_m_verify_pointer(struct command_invocation *cmd,
struct cortex_m_common *cm)
{
- if (cm->common_magic != CORTEX_M_COMMON_MAGIC) {
+ if (!is_cortex_m_with_dap_access(cm)) {
command_print(cmd, "target is not a Cortex-M");
return ERROR_TARGET_INVALID;
}
diff --git a/src/target/cortex_m.h b/src/target/cortex_m.h
index 57ef1e7e8..c2f836a35 100644
--- a/src/target/cortex_m.h
+++ b/src/target/cortex_m.h
@@ -254,6 +254,19 @@ target_to_cm(struct target *target)
struct cortex_m_common, armv7m);
}
+static inline bool is_cortex_m_or_hla(const struct cortex_m_common *cortex_m)
+{
+ return cortex_m->common_magic == CORTEX_M_COMMON_MAGIC;
+}
+
+static inline bool is_cortex_m_with_dap_access(const struct cortex_m_common *cortex_m)
+{
+ if (!is_cortex_m_or_hla(cortex_m))
+ return false;
+
+ return !cortex_m->armv7m.is_hla_target;
+}
+
int cortex_m_examine(struct target *target);
int cortex_m_set_breakpoint(struct target *target, struct breakpoint *breakpoint);
int cortex_m_unset_breakpoint(struct target *target, struct breakpoint *breakpoint);
diff --git a/src/target/hla_target.c b/src/target/hla_target.c
index a0f2d7608..3e359b950 100644
--- a/src/target/hla_target.c
+++ b/src/target/hla_target.c
@@ -214,6 +214,8 @@ static int adapter_target_create(struct target *target,
return ERROR_FAIL;
}
+ cortex_m->common_magic = CORTEX_M_COMMON_MAGIC;
+
adapter_init_arch_info(target, cortex_m, target->tap);
return ERROR_OK;
-----------------------------------------------------------------------
Summary of changes:
src/target/cortex_m.c | 2 +-
src/target/cortex_m.h | 13 +++++++++++++
src/target/hla_target.c | 2 ++
3 files changed, 16 insertions(+), 1 deletion(-)
hooks/post-receive
--
Main OpenOCD repository
|