move mcu cmsis file to /mcu
This commit is contained in:
		
							
								
								
									
										153
									
								
								mcu/lpc175x_6x/LPC17xx_DriverLib/include/lpc17xx_iap.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										153
									
								
								mcu/lpc175x_6x/LPC17xx_DriverLib/include/lpc17xx_iap.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,153 @@ | ||||
| /********************************************************************** | ||||
| * $Id$      lpc17xx_iap.h           2012-04-18 | ||||
| *//** | ||||
| * @file     lpc17xx_iap.h | ||||
| * @brief    Contains all functions support for IAP | ||||
| *           on lpc17xx | ||||
| * @version  1.0 | ||||
| * @date     18. April. 2012 | ||||
| * @author   NXP MCU SW Application Team | ||||
| *  | ||||
| * Copyright(C) 2011, NXP Semiconductor | ||||
| * All rights reserved. | ||||
| * | ||||
| *********************************************************************** | ||||
| * Software that is described herein is for illustrative purposes only | ||||
| * which provides customers with programming information regarding the | ||||
| * products. This software is supplied "AS IS" without any warranties. | ||||
| * NXP Semiconductors assumes no responsibility or liability for the | ||||
| * use of the software, conveys no license or title under any patent, | ||||
| * copyright, or mask work right to the product. NXP Semiconductors | ||||
| * reserves the right to make changes in the software without | ||||
| * notification. NXP Semiconductors also make no representation or | ||||
| * warranty that such application will be suitable for the specified | ||||
| * use without further testing or modification. | ||||
| * Permission to use, copy, modify, and distribute this software and its | ||||
| * documentation is hereby granted, under NXP Semiconductors' | ||||
| * relevant copyright in the software, without fee, provided that it | ||||
| * is used in conjunction with NXP Semiconductors microcontrollers.  This | ||||
| * copyright, permission, and disclaimer notice must appear in all copies of | ||||
| * this code. | ||||
| **********************************************************************/ | ||||
|  | ||||
| #ifndef _LPC17xx_IAP_H | ||||
| #define _LPC17xx_IAP_H | ||||
| #include "lpc_types.h" | ||||
|  | ||||
| /** @defgroup IAP   IAP (In Application Programming) | ||||
|  * @ingroup LPC1700CMSIS_FwLib_Drivers | ||||
|  * @{ | ||||
|  */ | ||||
|  | ||||
| /** @defgroup IAP_Public_Macros IAP Public Macros | ||||
|  * @{ | ||||
|  */ | ||||
|  | ||||
| /** IAP entry location */ | ||||
| #define IAP_LOCATION              (0x1FFF1FF1UL) | ||||
|  | ||||
| /** | ||||
|  * @} | ||||
|  */ | ||||
|  | ||||
| /** @defgroup IAP_Public_Types IAP Public Types | ||||
|  * @{ | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * @brief IAP command code definitions | ||||
|  */ | ||||
| typedef enum | ||||
| { | ||||
|     IAP_PREPARE = 50,       // Prepare sector(s) for write operation | ||||
|     IAP_COPY_RAM2FLASH = 51,     // Copy RAM to Flash | ||||
|     IAP_ERASE = 52,              // Erase sector(s) | ||||
|     IAP_BLANK_CHECK = 53,        // Blank check sector(s) | ||||
|     IAP_READ_PART_ID = 54,       // Read chip part ID | ||||
|     IAP_READ_BOOT_VER = 55,      // Read chip boot code version | ||||
|     IAP_COMPARE = 56,            // Compare memory areas | ||||
|     IAP_REINVOKE_ISP = 57,       // Reinvoke ISP | ||||
|     IAP_READ_SERIAL_NUMBER = 58, // Read serial number | ||||
| }  IAP_COMMAND_CODE; | ||||
|  | ||||
| /** | ||||
|  * @brief IAP status code definitions | ||||
|  */ | ||||
| typedef enum | ||||
| { | ||||
|     CMD_SUCCESS,                 // Command is executed successfully. | ||||
|     INVALID_COMMAND,             // Invalid command. | ||||
|     SRC_ADDR_ERROR,              // Source address is not on a word boundary. | ||||
|     DST_ADDR_ERROR,              // Destination address is not on a correct boundary. | ||||
|     SRC_ADDR_NOT_MAPPED,         // Source address is not mapped in the memory map. | ||||
|     DST_ADDR_NOT_MAPPED,         // Destination address is not mapped in the memory map. | ||||
|     COUNT_ERROR,                   // Byte count is not multiple of 4 or is not a permitted value. | ||||
|     INVALID_SECTOR,            // Sector number is invalid. | ||||
|     SECTOR_NOT_BLANK,              // Sector is not blank. | ||||
|     SECTOR_NOT_PREPARED_FOR_WRITE_OPERATION,    // Command to prepare sector for write operation was not executed. | ||||
|     COMPARE_ERROR,               // Source and destination data is not same. | ||||
|     BUSY,                          // Flash programming hardware interface is busy. | ||||
| } IAP_STATUS_CODE; | ||||
|  | ||||
| /** | ||||
|  * @brief IAP write length definitions | ||||
|  */ | ||||
| typedef enum { | ||||
|   IAP_WRITE_256  = 256, | ||||
|   IAP_WRITE_512  = 512, | ||||
|   IAP_WRITE_1024 = 1024, | ||||
|   IAP_WRITE_4096 = 4096, | ||||
| } IAP_WRITE_SIZE; | ||||
|  | ||||
| /** | ||||
|  * @brief IAP command structure | ||||
|  */ | ||||
| typedef struct { | ||||
|     uint32_t cmd;   // Command | ||||
|     uint32_t param[4];      // Parameters | ||||
|     uint32_t status;        // status code | ||||
|     uint32_t result[4];     // Result | ||||
| } IAP_COMMAND_Type; | ||||
|  | ||||
| /** | ||||
|  * @} | ||||
|  */ | ||||
|   | ||||
| /* Public Functions ----------------------------------------------------------- */ | ||||
| /** @defgroup IAP_Public_Functions IAP Public Functions | ||||
|  * @{ | ||||
|  */ | ||||
|  | ||||
| /**  Get sector number of an address */ | ||||
| uint32_t GetSecNum (uint32_t adr); | ||||
| /**  Prepare sector(s) for write operation */ | ||||
| IAP_STATUS_CODE PrepareSector(uint32_t start_sec, uint32_t end_sec); | ||||
| /**  Copy RAM to Flash */ | ||||
| IAP_STATUS_CODE CopyRAM2Flash(uint8_t * dest, uint8_t* source, IAP_WRITE_SIZE size); | ||||
| /**  Prepare sector(s) for write operation */ | ||||
| IAP_STATUS_CODE EraseSector(uint32_t start_sec, uint32_t end_sec); | ||||
| /**  Blank check sectors */ | ||||
| IAP_STATUS_CODE BlankCheckSector(uint32_t start_sec, uint32_t end_sec, | ||||
|                                  uint32_t *first_nblank_loc,  | ||||
|                                  uint32_t *first_nblank_val); | ||||
| /**  Read part identification number */ | ||||
| IAP_STATUS_CODE ReadPartID(uint32_t *partID); | ||||
| /**  Read boot code version */ | ||||
| IAP_STATUS_CODE ReadBootCodeVer(uint8_t *major, uint8_t* minor); | ||||
| /**  Read Device serial number */ | ||||
| IAP_STATUS_CODE ReadDeviceSerialNum(uint32_t *uid); | ||||
| /**  Compare memory */ | ||||
| IAP_STATUS_CODE Compare(uint8_t *addr1, uint8_t *addr2, uint32_t size); | ||||
| /**  Invoke ISP */ | ||||
| void InvokeISP(void); | ||||
|  | ||||
| /** | ||||
|  * @} | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * @} | ||||
|  */ | ||||
|  | ||||
| #endif /*_LPC17xx_IAP_H*/ | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 hathach
					hathach