ARM Technical Support Knowledge Articles

How do I set top_of_memory?

Applies to: ARM Developer Suite (ADS), Integrator, Multi-ICE, RealView Development Suite (RVDS), RealView ICE and Trace (RVI / RVT)

Answer

The debugger internal variable '$top_of_memory' tells Multi-ICE or RealView ICE where the highest writable address is in the target's memory map, so that the stack and heap can be placed correctly in memory.

The default value of $top_of_memory may need to be changed to work with some Integrator core modules or third party boards. Failure to do this results in data aborts, crashes or the program branching to undefined areas of memory.

The following table includes the amount of SSRAM memory for all Integrator core modules and their highest possible location for $top_of_memory.

Core ModuleAmount of SSRAM$top_of_memory
CM7TDMI256KB0x40000
CM720T256KB0x40000
CM740T256KB0x40000
CM9x0T (HBI-0047B)256KB0x40000
CM920T (HBI-0070C)1MB0x100000
CM920T-ETM (HBI-0070C)1MB0x100000
CM922T-XA102.4MB0x266000
CM926EJ-S1MB0x100000
CM946E-S1MB0x100000
CM966E-S1MB0x100000
CM10200E2MB0x200000
Core TileAmount of SSRAM$top_of_memory
ARM7TDMI
ARM926EJ-S
ARM1136JF-S
ARM11 MPCore

Note that the REMAP bit in the core module control register needs to be set to map SSRAM at address 0.

You can extend the amount of RAM memory at address 0 by connecting an SDRAM DIMM to the core module.

For more information about $top_of_memory and how to place the stack and heap, please see Application Note 107: Embedded Software Development with ADS v1.2.

Article last edited on: 2008-09-09 15:47:31

Rate this article

[Bad]
|
|
[Good]
Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential