*
*Home|Chinese|Japanese*About ARM|Forums|Events|News|Employment|Contact Us|Investors*
dotted rule
*ARM - the architecture for the digital worldARM - the architecture for the digital world
search
*
*
***
*MARKETS:PRODUCTS & SOLUTIONS:CONNECTED COMMUNITY:TECHNICAL SUPPORT:DOCUMENTATION*
*
technical support
*
*
****
*.Technical Support
*
*
*>>Home Page*
*
*.Obtaining Support*
*
*.FAQs*
*
**Development Tool FAQs*
**IP FAQs*
**Embedded Software FAQs*
**Artisan Physical IP FAQs (Login Required)*
*
*.Downloads*
*
*.Documentation*
*
*.Training*
*
*.Where To Buy*
*
*.Keil MCU Tools*
*
*.What's New*
*
*.ARM Newsgroups*
*
*.Active Assist On-site Services*
*
*
*
technical support FAQsask ARM*
*

Technical Support Search
*     (Advanced Search)
  FAQs   Documentation   Downloads   Forums

*

 
downarrowFilling Memory with armsd, ADW or ADU
Applies to: ADW/ADU/armsd, Software Development Toolkit (SDT)

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





back to top

*
**
*4 dots*Other ARM Websites
*
shadow *LEGAL STATEMENTshadow