summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRodrigo L. Rosa <rodrigorosa.lg@gmail.com>2011-06-10 12:20:18 -0700
committerØyvind Harboe <oyvind.harboe@zylin.com>2011-06-12 11:18:27 +0200
commitf42353d82137d0a3f5e2433bae931c82b8407c74 (patch)
tree9dc86c34b1f23fccff2ba867874c5a4344f637d5
parentf4a3db0d4a353ccc6d701a2645390ef9039e0d02 (diff)
downloadopenocd_libswd-f42353d82137d0a3f5e2433bae931c82b8407c74.tar.gz
openocd_libswd-f42353d82137d0a3f5e2433bae931c82b8407c74.tar.bz2
openocd_libswd-f42353d82137d0a3f5e2433bae931c82b8407c74.tar.xz
openocd_libswd-f42353d82137d0a3f5e2433bae931c82b8407c74.zip
fix read speed improved by queueing commands
-rw-r--r--src/target/dsp5680xx.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/target/dsp5680xx.c b/src/target/dsp5680xx.c
index c79ee3ae..f503e081 100644
--- a/src/target/dsp5680xx.c
+++ b/src/target/dsp5680xx.c
@@ -714,7 +714,14 @@ static int dsp5680xx_read(struct target * target, uint32_t address, unsigned siz
retval = dsp5680xx_convert_address(&address, &pmem);
err_check_propagate(retval);
+ context.flush = 0;
+ int counter = FLUSH_COUNT_READ_WRITE;
+
for (unsigned i=0; i<count; i++){
+ if(--counter==0){
+ context.flush = 1;
+ counter = FLUSH_COUNT_FLASH;
+ }
switch (size){
case 1:
if(!(i%2)){
@@ -734,7 +741,13 @@ static int dsp5680xx_read(struct target * target, uint32_t address, unsigned siz
break;
}
err_check_propagate(retval);
+ context.flush = 0;
}
+
+ context.flush = 1;
+ retval = dsp5680xx_execute_queue();
+ err_check_propagate(retval);
+
return retval;
}