5.1.13. My application works using ARMulator but quickly crashes when I use Multi-ICE

This fault might be because there is no memory where in memory the application stack has been placed by Multi-ICE, or because stack memory and other memory used by the application overlap.

The default memory model for ARMulator creates memory pages as required through the whole address space, and therefore the ARMulator configuration file can specify a value for top of stack in high memory. Consequently, programs in low memory do not normally interfere with the stack.

Multi-ICE must use whatever memory the target has available, but is never told what the memory map of the target is. Whether this matters depends on the how the application is linked:

Simple semihosted image

The location of the stack is defined by the debugger variable top_of_memory. The default value is 0x80000. It is important that this variable is set correctly.


The location of the stack and heap is defined by a function called by the C-library, and Multi-ICE is not involved.

Refer to Internal variable descriptions for more information about top_of_memory and how the ARM C-library uses it.

Copyright © 1998-2002 ARM Limited. All rights reserved.ARM DUI 0048F