ARM Technical Support Knowledge Articles


Applies to: General Topics


Information in this article applies to:


When I debug my application in the uVision simulator I see a NOP instruction at address 0x0022. However, when I generate a HEX file and program it to an Flash ROM this NOP instruction is missing. It looks like the HEX file is incomplete. What can be the reason?


The HEX file only contains content for program space that is allocated in your application. Therefore, it is important that you refer to the MAP file (*.M51 for the BL51 linker, *.MAP for other linkers) of your application to be sure that all required memory space is properly allocated.

The MEMORY MAP OF MODULE section displays how memory is allocated. For example:

CODE    0000H     0003H     ABSOLUTE
CODE    0003H     001FH     UNIT         ?PR?MAIN?TEST
        0022H     0001H                  *** GAP ***
CODE    0023H     0003H     ABSOLUTE
CODE    0026H     035CH     UNIT         ?PR?PRINTF?PRINTF

As you can see from this example, there is no content for code address 0x0022. For this reason, no content will be output in the HEX file.

By default, uVision initializes all unused memory with 0. So, when you load this program into the uVision2 simulator you will see a NOP instruction at unused/unallocated memory addresses.


Article last edited on: 2004-05-06 13:05:25

Rate this article

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