aboutsummaryrefslogtreecommitdiff
path: root/src/target/cortex_m.c
diff options
context:
space:
mode:
authorAndreas Fritiofson <andreas.fritiofson@gmail.com>2014-09-02 21:51:51 +0200
committerSpencer Oliver <spen@spen-soft.co.uk>2014-09-15 08:22:56 +0000
commit45f01e0a1269ceb23bfd3a34d2d635bf07463bd0 (patch)
tree526cdea1b5b3abfd7dd081af592d9c7016fcff12 /src/target/cortex_m.c
parent910972fcec5f6a575bfe2e1255420b873f5568c8 (diff)
downloadriscv-openocd-45f01e0a1269ceb23bfd3a34d2d635bf07463bd0.zip
riscv-openocd-45f01e0a1269ceb23bfd3a34d2d635bf07463bd0.tar.gz
riscv-openocd-45f01e0a1269ceb23bfd3a34d2d635bf07463bd0.tar.bz2
cortex_m: Check return value from cortex_m_dcc_read.
Caught by clang. Change-Id: I26d2b845aca431612862ef432b217ca397d9b893 Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-on: http://openocd.zylin.com/2279 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
Diffstat (limited to 'src/target/cortex_m.c')
-rw-r--r--src/target/cortex_m.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/target/cortex_m.c b/src/target/cortex_m.c
index aafc097..72dbe9e 100644
--- a/src/target/cortex_m.c
+++ b/src/target/cortex_m.c
@@ -1910,7 +1910,9 @@ static int cortex_m_target_request_data(struct target *target,
uint32_t i;
for (i = 0; i < (size * 4); i++) {
- cortex_m_dcc_read(target, &data, &ctrl);
+ int retval = cortex_m_dcc_read(target, &data, &ctrl);
+ if (retval != ERROR_OK)
+ return retval;
buffer[i] = data;
}
@@ -1929,8 +1931,11 @@ static int cortex_m_handle_target_request(void *priv)
if (target->state == TARGET_RUNNING) {
uint8_t data;
uint8_t ctrl;
+ int retval;
- cortex_m_dcc_read(target, &data, &ctrl);
+ retval = cortex_m_dcc_read(target, &data, &ctrl);
+ if (retval != ERROR_OK)
+ return retval;
/* check if we have data */
if (ctrl & (1 << 0)) {
@@ -1938,12 +1943,12 @@ static int cortex_m_handle_target_request(void *priv)
/* we assume target is quick enough */
request = data;
- cortex_m_dcc_read(target, &data, &ctrl);
- request |= (data << 8);
- cortex_m_dcc_read(target, &data, &ctrl);
- request |= (data << 16);
- cortex_m_dcc_read(target, &data, &ctrl);
- request |= (data << 24);
+ for (int i = 1; i <= 3; i++) {
+ retval = cortex_m_dcc_read(target, &data, &ctrl);
+ if (retval != ERROR_OK)
+ return retval;
+ request |= ((uint32_t)data << (i * 8));
+ }
target_request(target, request);
}
}