LPCOpen Platform for LPC112X microcontrollers  112X
LPCOpen Platform for the NXP LPC112X family of Microcontrollers
romapi_112x.h
Go to the documentation of this file.
1 /*
2  * @brief LPC11xx ROM API declarations and functions
3  *
4  * @note
5  * Copyright(C) NXP Semiconductors, 2012
6  * All rights reserved.
7  *
8  * @par
9  * Software that is described herein is for illustrative purposes only
10  * which provides customers with programming information regarding the
11  * LPC products. This software is supplied "AS IS" without any warranties of
12  * any kind, and NXP Semiconductors and its licensor disclaim any and
13  * all warranties, express or implied, including all implied warranties of
14  * merchantability, fitness for a particular purpose and non-infringement of
15  * intellectual property rights. NXP Semiconductors assumes no responsibility
16  * or liability for the use of the software, conveys no license or rights under any
17  * patent, copyright, mask work right, or any other intellectual property rights in
18  * or to any products. NXP Semiconductors reserves the right to make changes
19  * in the software without notification. NXP Semiconductors also makes no
20  * representation or warranty that such application will be suitable for the
21  * specified use without further testing or modification.
22  *
23  * @par
24  * Permission to use, copy, modify, and distribute this software and its
25  * documentation is hereby granted, under NXP Semiconductors' and its
26  * licensor's relevant copyrights in the software, without fee, provided that it
27  * is used in conjunction with NXP Semiconductors microcontrollers. This
28  * copyright, permission, and disclaimer notice must appear in all copies of
29  * this code.
30  */
31 
32 #ifndef __ROMAPI_1125_H_
33 #define __ROMAPI_1125_H_
34 
35 #include "iap.h"
36 #include "error.h"
37 #include "romdiv_112x.h"
38 
39 #ifdef __cplusplus
40 extern "C" {
41 #endif
42 
51 typedef struct {
52  const uint32_t usbdApiBase;
53  const uint32_t reserved0;
54  const uint32_t candApiBase;
55  const uint32_t pwrApiBase;
56 #if defined(INCLUDE_ROM_DIV)
57  const ROM_DIV_API_T *divApiBase;
58 #else
59  const uint32_t reserved1;
60 #endif
61  const uint32_t reserved2;
62  const uint32_t reserved3;
63  const uint32_t reserved4;
65 
66 /* Pointer to ROM API function address */
67 #define LPC_ROM_API_BASE_LOC 0x1FFF1FF8
68 #define LPC_ROM_API (*(LPC_ROM_API_T * *) LPC_ROM_API_BASE_LOC)
69 
70 /* Pointer to ROM IAP entry functions */
71 #define IAP_ENTRY_LOCATION 0X1FFF1FF1
72 
76 static INLINE void iap_entry(unsigned int cmd_param[], unsigned int status_result[])
77 {
78  ((IAP_ENTRY_T) IAP_ENTRY_LOCATION)(cmd_param, status_result);
79 }
80 
85 #ifdef __cplusplus
86 }
87 #endif
88 
89 #endif /* __ROMAPI_1125_H_ */