Description There is no 'fill memory' command provided by armsd, ADW or ADU. This is now supported by AXD's "setmem" command (as supplied with ADS). Solution To fill memory with a value, you can run a short script in the armsd command window. For example, to fill addresses 0x8000 through 0x9000 with the value 0, enter:
let r1 = 0x8000 *r1 = 0; r1 = r1 + 4; while r1 < 0x9000
Of course, you can use any register as the counter, not only r1. This destroys r1, but if you need to preserve r1 then just look at the value before the fill memory operation and then set it back afterwards. e.g.
print r1 let r1 = 0x8000 *r1 = 0; r1 = r1 + 4; while r1 < 0x9000 r1 = ??
where ?? is the value displayed as the result of the print r1 command. Alternatively, you can use the 'localvar' to create a local variable within ADW/armsd:
localvar unsigned int addr localvar unsigned int endaddr $addr = 0x8000 $endaddr=0x9000 *$addr = 0; $addr = $addr + 4; while $addr < $endaddr
|