1 /* 2 * @brief Error code returned by Boot ROM drivers/library functions 3 * @ingroup Common 4 * 5 * This file contains unified error codes to be used across driver, 6 * middleware, applications, hal and demo software. 7 * 8 * 9 * @note 10 * Copyright(C) NXP Semiconductors, 2012 11 * All rights reserved. 12 * 13 * @par 14 * Software that is described herein is for illustrative purposes only 15 * which provides customers with programming information regarding the 16 * LPC products. This software is supplied "AS IS" without any warranties of 17 * any kind, and NXP Semiconductors and its licensor disclaim any and 18 * all warranties, express or implied, including all implied warranties of 19 * merchantability, fitness for a particular purpose and non-infringement of 20 * intellectual property rights. NXP Semiconductors assumes no responsibility 21 * or liability for the use of the software, conveys no license or rights under any 22 * patent, copyright, mask work right, or any other intellectual property rights in 23 * or to any products. NXP Semiconductors reserves the right to make changes 24 * in the software without notification. NXP Semiconductors also makes no 25 * representation or warranty that such application will be suitable for the 26 * specified use without further testing or modification. 27 * 28 * @par 29 * Permission to use, copy, modify, and distribute this software and its 30 * documentation is hereby granted, under NXP Semiconductors' and its 31 * licensor's relevant copyrights in the software, without fee, provided that it 32 * is used in conjunction with NXP Semiconductors microcontrollers. This 33 * copyright, permission, and disclaimer notice must appear in all copies of 34 * this code. 35 */ 36 37 #ifndef __LPC_ERROR_H__ 38 #define __LPC_ERROR_H__ 39 40 /** Error code returned by Boot ROM drivers/library functions 41 * 42 * Error codes are a 32-bit value with : 43 * - The 16 MSB contains the peripheral code number 44 * - The 16 LSB contains an error code number associated to that peripheral 45 * 46 */ 47 typedef enum { 48 /**\b 0x00000000*/ LPC_OK = 0, /**< enum value returned on Success */ 49 /**\b 0xFFFFFFFF*/ ERR_FAILED = -1, /**< enum value returned on general failure */ 50 /**\b 0xFFFFFFFE*/ ERR_TIME_OUT = -2, /**< enum value returned on general timeout */ 51 /**\b 0xFFFFFFFD*/ _ERR_BUSY = -3, /**< enum value returned when resource is busy */ 52 53 /* ISP related errors */ 54 ERR_ISP_BASE = 0x00000000, 55 /*0x00000001*/ ERR_ISP_INVALID_COMMAND = ERR_ISP_BASE + 1, 56 /*0x00000002*/ ERR_ISP_SRC_ADDR_ERROR, /* Source address not on word boundary */ 57 /*0x00000003*/ ERR_ISP_DST_ADDR_ERROR, /* Destination address not on word or 256 byte boundary */ 58 /*0x00000004*/ ERR_ISP_SRC_ADDR_NOT_MAPPED, 59 /*0x00000005*/ ERR_ISP_DST_ADDR_NOT_MAPPED, 60 /*0x00000006*/ ERR_ISP_COUNT_ERROR, /* Byte count is not multiple of 4 or is not a permitted value */ 61 /*0x00000007*/ ERR_ISP_INVALID_SECTOR, 62 /*0x00000008*/ ERR_ISP_SECTOR_NOT_BLANK, 63 /*0x00000009*/ ERR_ISP_SECTOR_NOT_PREPARED_FOR_WRITE_OPERATION, 64 /*0x0000000A*/ ERR_ISP_COMPARE_ERROR, 65 /*0x0000000B*/ ERR_ISP_BUSY,/* Flash programming hardware interface is busy */ 66 /*0x0000000C*/ ERR_ISP_PARAM_ERROR, /* Insufficient number of parameters */ 67 /*0x0000000D*/ ERR_ISP_ADDR_ERROR, /* Address not on word boundary */ 68 /*0x0000000E*/ ERR_ISP_ADDR_NOT_MAPPED, 69 /*0x0000000F*/ ERR_ISP_CMD_LOCKED, /* Command is locked */ 70 /*0x00000010*/ ERR_ISP_INVALID_CODE,/* Unlock code is invalid */ 71 /*0x00000011*/ ERR_ISP_INVALID_BAUD_RATE, 72 /*0x00000012*/ ERR_ISP_INVALID_STOP_BIT, 73 /*0x00000013*/ ERR_ISP_CODE_READ_PROTECTION_ENABLED, 74 75 /* ROM API related errors */ 76 ERR_API_BASE = 0x00010000, 77 /**\b 0x00010001*/ ERR_API_INVALID_PARAMS = ERR_API_BASE + 1, /**< Invalid parameters*/ 78 /**\b 0x00010002*/ ERR_API_INVALID_PARAM1, /**< PARAM1 is invalid */ 79 /**\b 0x00010003*/ ERR_API_INVALID_PARAM2, /**< PARAM2 is invalid */ 80 /**\b 0x00010004*/ ERR_API_INVALID_PARAM3, /**< PARAM3 is invalid */ 81 /**\b 0x00010005*/ ERR_API_MOD_INIT,/**< API is called before module init */ 82 83 /* SPIFI API related errors */ 84 ERR_SPIFI_BASE = 0x00020000, 85 /*0x00020001*/ ERR_SPIFI_DEVICE_ERROR = ERR_SPIFI_BASE + 1, 86 /*0x00020002*/ ERR_SPIFI_INTERNAL_ERROR, 87 /*0x00020003*/ ERR_SPIFI_TIMEOUT, 88 /*0x00020004*/ ERR_SPIFI_OPERAND_ERROR, 89 /*0x00020005*/ ERR_SPIFI_STATUS_PROBLEM, 90 /*0x00020006*/ ERR_SPIFI_UNKNOWN_EXT, 91 /*0x00020007*/ ERR_SPIFI_UNKNOWN_ID, 92 /*0x00020008*/ ERR_SPIFI_UNKNOWN_TYPE, 93 /*0x00020009*/ ERR_SPIFI_UNKNOWN_MFG, 94 95 /* Security API related errors */ 96 ERR_SEC_BASE = 0x00030000, 97 /*0x00030001*/ ERR_SEC_AES_WRONG_CMD = ERR_SEC_BASE + 1, 98 /*0x00030002*/ ERR_SEC_AES_NOT_SUPPORTED, 99 /*0x00030003*/ ERR_SEC_AES_KEY_ALREADY_PROGRAMMED, 100 101 /* USB device stack related errors */ 102 ERR_USBD_BASE = 0x00040000, 103 /**\b 0x00040001*/ ERR_USBD_INVALID_REQ = ERR_USBD_BASE + 1,/**< invalid request */ 104 /**\b 0x00040002*/ ERR_USBD_UNHANDLED, /**< Callback did not process the event */ 105 /**\b 0x00040003*/ ERR_USBD_STALL, /**< Stall the endpoint on which the call back is called */ 106 /**\b 0x00040004*/ ERR_USBD_SEND_ZLP, /**< Send ZLP packet on the endpoint on which the call back is called */ 107 /**\b 0x00040005*/ ERR_USBD_SEND_DATA, /**< Send data packet on the endpoint on which the call back is called */ 108 /**\b 0x00040006*/ ERR_USBD_BAD_DESC, /**< Bad descriptor*/ 109 /**\b 0x00040007*/ ERR_USBD_BAD_CFG_DESC, /**< Bad config descriptor*/ 110 /**\b 0x00040008*/ ERR_USBD_BAD_INTF_DESC, /**< Bad interface descriptor*/ 111 /**\b 0x00040009*/ ERR_USBD_BAD_EP_DESC,/**< Bad endpoint descriptor*/ 112 /**\b 0x0004000a*/ ERR_USBD_BAD_MEM_BUF,/**< Bad alignment of buffer passed. */ 113 /**\b 0x0004000b*/ ERR_USBD_TOO_MANY_CLASS_HDLR,/**< Too many class handlers. */ 114 115 /* CGU related errors */ 116 ERR_CGU_BASE = 0x00050000, 117 /*0x00050001*/ ERR_CGU_NOT_IMPL = ERR_CGU_BASE + 1, 118 /*0x00050002*/ ERR_CGU_INVALID_PARAM, 119 /*0x00050003*/ ERR_CGU_INVALID_SLICE, 120 /*0x00050004*/ ERR_CGU_OUTPUT_GEN, 121 /*0x00050005*/ ERR_CGU_DIV_SRC, 122 /*0x00050006*/ ERR_CGU_DIV_VAL, 123 /*0x00050007*/ ERR_CGU_SRC, 124 125 /* I2C related errors */ 126 ERR_I2C_BASE = 0x00060000, 127 /*0x00060001*/ ERR_I2C_NAK = ERR_I2C_BASE + 1, 128 /*0x00060002*/ ERR_I2C_BUFFER_OVERFLOW, 129 /*0x00060003*/ ERR_I2C_BYTE_COUNT_ERR, 130 /*0x00060004*/ ERR_I2C_LOSS_OF_ARBRITRATION, 131 /*0x00060005*/ ERR_I2C_SLAVE_NOT_ADDRESSED, 132 /*0x00060006*/ ERR_I2C_LOSS_OF_ARBRITRATION_NAK_BIT, 133 /*0x00060007*/ ERR_I2C_GENERAL_FAILURE, 134 /*0x00060008*/ ERR_I2C_REGS_SET_TO_DEFAULT, 135 /*0x00060009*/ ERR_I2C_TIMEOUT, 136 /*0x0006000A*/ ERR_I2C_BUFFER_UNDERFLOW, 137 138 /* UART related errors */ 139 ERR_UART_BASE = 0x00080000, 140 /**\b 0x00080001*/ ERR_UART_RXD_BUSY = ERR_UART_BASE + 1, /*!< Receive is busy */ 141 /**\b 0x00080002*/ ERR_UART_TXD_BUSY, /*!< Transmit is busy */ 142 /**\b 0x00080003*/ ERR_UART_OVERRUN_FRAME_PARITY_NOISE, /*!< Overrun, Frame, Parity , Receive Noise error */ 143 /**\b 0x00080004*/ ERR_UART_UNDERRUN, /*!< Underrun */ 144 /**\b 0x00080005*/ ERR_UART_PARAM, /*!< Parameter error */ 145 146 ERR_DMA_BASE = 0x000D0000, 147 /*0x000D0001*/ ERR_DMA_ERROR_INT = ERR_DMA_BASE + 1, 148 /*0x000D0002*/ ERR_DMA_CHANNEL_NUMBER, 149 /*0x000D0003*/ ERR_DMA_CHANNEL_DISABLED, 150 /*0x000D0004*/ ERR_DMA_BUSY, 151 /*0x000D0005*/ ERR_DMA_NOT_ALIGNMENT, 152 /*0x000D0006*/ ERR_DMA_PING_PONG_EN, 153 /*0x000D0007*/ ERR_DMA_CHANNEL_VALID_PENDING, 154 155 /* SPI related errors */ 156 ERR_SPI_BASE = 0x000E0000, 157 /*0x000E0001*/ ERR_SPI_RXOVERRUN=ERR_SPI_BASE+1, 158 /*0x000E0002*/ ERR_SPI_TXUNDERRUN, 159 /*0x000E0003*/ ERR_SPI_SELNASSERT, 160 /*0x000E0004*/ ERR_SPI_SELNDEASSERT, 161 /*0x000E0005*/ ERR_SPI_CLKSTALL, 162 /*0x000E0006*/ ERR_SPI_PARAM, 163 /*0x000E0007*/ ERR_SPI_INVALID_LENGTH, 164 165 /* ADC related errors */ 166 ERR_ADC_BASE = 0x000F0000, 167 /*0x000F0001*/ ERR_ADC_OVERRUN = ERR_ADC_BASE + 1, 168 /*0x000F0002*/ ERR_ADC_INVALID_CHANNEL, 169 /*0x000F0003*/ ERR_ADC_INVALID_SEQUENCE, 170 /*0x000F0004*/ ERR_ADC_INVALID_SETUP, 171 /*0x000F0005*/ ERR_ADC_PARAM, 172 /*0x000F0006*/ ERR_ADC_INVALID_LENGTH, 173 /*0x000F0007*/ ERR_ADC_NO_POWER 174 } ErrorCode_t; 175 176 #ifndef offsetof 177 #define offsetof(s, m) (int) &(((s *) 0)->m) 178 #endif 179 180 #define COMPILE_TIME_ASSERT(pred) switch (0) { \ 181 case 0: \ 182 case pred:; } 183 184 #endif /* __LPC_ERROR_H__ */ 185