Nxp semiconductors – NXP Semiconductors LPC24XX UM10237 User Manual

Page 707

Advertising
background image

UM10237_4

© NXP B.V. 2009. All rights reserved.

User manual

Rev. 04 — 26 August 2009

707 of 792

NXP Semiconductors

UM10237

Chapter 31: LPC24XX On-chip bootloader for flashless parts

Setting function pointer:

iap_entry=(IAP) IAP_LOCATION;

Whenever you wish to call IAP you could use the following statement.

iap_entry (command, result);

The IAP call could be simplified further by using the symbol definition file feature
supported by ARM Linker in ADS (ARM Developer Suite). You could also call the IAP
routine using assembly code.

The following symbol definitions can be used to link IAP routine and user application:

#<SYMDEFS># ARM Linker, ADS1.2 [Build 826]: Last Updated: Wed May 08 16:12:23 2002

0x7fffff90 T rm_init_entry

0x7fffffa0 A rm_undef_handler

0x7fffffb0 A rm_prefetchabort_handler

0x7fffffc0 A rm_dataabort_handler

0x7fffffd0 A rm_irqhandler

0x7fffffe0 A rm_irqhandler2

0x7ffffff0 T iap_entry

As per the ARM specification (The ARM Thumb Procedure Call Standard SWS ESPC
0002 A-05) up to 4 parameters can be passed in the r0, r1, r2 and r3 registers
respectively. Additional parameters are passed on the stack. Up to 4 parameters can be
returned in the r0, r1, r2 and r3 registers respectively. Additional parameters are returned
indirectly via memory. Some of the IAP calls require more than 4 parameters. If the ARM
suggested scheme is used for the parameter passing/returning then it might create
problems due to difference in the C compiler implementation from different vendors. The
suggested parameter passing scheme reduces such risk.

Table 643. IAP Command Summary

IAP Command

Command Code

Described in

Read Part ID

54

10

Table 31–644

Read Boot code version

55

10

Table 31–645

Compare

56

10

Table 31–646

Reinvoke ISP

57

10

Table 31–647

Advertising