UM10503
All information provided in this document is subject to legal disclaimers.
© NXP B.V. 2015. All rights reserved.
User manual
Rev. 2.1 — 10 December 2015
87 of 1441
NXP Semiconductors
UM10503
Chapter 6: LPC43xx/LPC43Sxx flash programming/ISP and IAP
In C code, call the IAP function in the following way:
1. Extract the IAP invoke call (iap_entry) entry pointer. The IAP invoke call is located in
the IAP jump table which is pointed to by the ROM driver table at address 0x1040
0100 + 0x000. See
2. Define data structure or pointers to pass the IAP command table and result table to
the IAP function:
unsigned int command_param[5];
unsigned int status_result[5];
or
unsigned int * command_param;
unsigned int * status_result;
command_param = (unsigned int *) 0x...
status_result =(unsigned int *) 0x...
3. Define a pointer to function type, which takes two parameters and returns void. Note
the IAP returns the result with the base address of the table residing in R1:
#define IAP_LOCATION *(volatile unsigned int *)(0x10400100);
typedef void (*IAP)(unsigned int [],unsigned int[]);
Fig 24. IAP parameter passing
Command code
Param 0
Param 1
Param n
status_result[0]
status_result[1]
Status code
Result 0
Result 1
Result n
Command Parameter Array
Status Result Array
ARM REGISTER r0
ARM REGISTER r1
command_param[0]
command_param[1]
command_param[2]
command_param[n]
status_result[2]
status_result[n]