NOTICE: This website will be shut down in the near future. Product content has moved to Forum content and FAQs have been moved to We encourage you to create a user account on to use the new community forums and access NXP microcontroller content. We greatly appreciate your contributions and look forward to seeing you at our new web location.


Reserving RAM for IAP Flash Programming

lpcxpresso-support's picture

The IAP flash programming routines available in NXP's MCUs make use of some of the onchip RAM when executed. For example on the LPC1343 the top 32 bytes of onchip RAM are used. Thus if you are calling the IAP routines from your own application, you need to ensure that this memory is not used by your application.

By default this memory will be used by the application stack. However, if you are using the managed linker script mechanism, it is easy to modify the start position of the stack (remember that stacks grow down) to avoid this clash with the IAP routines. To do this go to:

Project Properties ->  C/C++ Build -> Settings -> MCU Linker -> Target

and modify the value in the "Stack Offset" field from 0 to 32.


  1. The value you enter in this field must be a multiple of 4.
  2. You are advised to check the documentation for the actual MCU that you are using to confirm the amount of memory required by the IAP routines.
Your rating: None Average: 5 (1 vote)