PokittoLib is the library needed for programming the Pokitto DIY game console (www.pokitto.com)

Revision:
36:771321e70814
diff -r 4f7edccf8ed6 -r 771321e70814 POKITTO_HW/iap.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/POKITTO_HW/iap.h	Mon Apr 02 22:37:22 2018 +0000
@@ -0,0 +1,81 @@
+#ifndef IAP_H_INCLUDED
+#define IAP_H_INCLUDED
+
+#include "Pokitto_settings.h"
+
+extern int HelloFromIAP();
+extern int CopyPageToFlash(uint32_t,uint8_t*);
+extern char iaptest();
+extern void IAPstacksave();
+#define EEPROM_PROFILE 1
+extern void writeEEPROM( uint16_t* eeAddress, uint8_t* buffAddress, uint32_t byteCount );
+extern void readEEPROM( uint16_t* eeAddress, uint8_t* buffAddress, uint32_t byteCount );
+extern uint8_t eeprom_read_byte(uint16_t*);
+extern void eeprom_write_byte(uint16_t*,uint8_t);
+
+/*****************************************************************************
+ * $Id$
+ *
+ * Project:		NXP LPC1100 Secondary Bootloader Example
+ *
+ * Description: Provides access to In-Application Programming (IAP) routines
+ * 			    		contained within the bootROM sector of LPC1100 devices.
+ *
+ * Copyright(C) 2010, 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.
+ *****************************************************************************/
+
+#include <stdint.h>
+
+/* IAP Command Status Codes */
+#define IAP_STA_CMD_SUCCESS 																0
+#define IAP_STA_INVALID_COMMAND 														1
+#define IAP_STA_SRC_ADDR_ERROR 															2
+#define IAP_STA_DST_ADDR_ERROR 															3
+#define IAP_STA_SRC_ADDR_NOT_MAPPED 												4
+#define IAP_STA_DST_ADDR_NOT_MAPPED 												5
+#define IAP_STA_COUNT_ERROR 																6
+#define IAP_STA_INVALID_SECTOR 															7
+#define IAP_STA_SECTOR_NOT_BLANK														8
+#define IAP_STA_SECTOR_NOT_PREPARED_FOR_WRITE_OPERATION 		9
+#define IAP_STA_COMPARE_ERROR 															10
+#define IAP_STA_BUSY 																				11
+#define IAP_STA_INVALD_PARAM 																12
+
+/* Define the flash page size, this is the minimum amount of data can be written in one operation */
+#define IAP_FLASH_PAGE_SIZE_BYTES							256
+#define IAP_FLASH_PAGE_SIZE_WORDS							(IAP_FLASH_PAGE_SIZE_BYTES >> 2)
+
+void vIAP_ReinvokeISP(void);
+uint32_t u32IAP_ReadPartID(uint32_t *pu32PartID);
+uint32_t u32IAP_ReadBootVersion(uint32_t *pu32Major, uint32_t *pu32Minor);
+//uint32_t u32IAP_ReadBootVersion(uint32_t *pu32Major);
+uint32_t u32IAP_EraseSectors(uint32_t u32StartSector, uint32_t u32EndSector);
+uint32_t u32IAP_PrepareSectors(uint32_t u32StartSector, uint32_t u32EndSector);
+uint32_t u32IAP_CopyRAMToFlash(uint32_t u32DstAddr, uint32_t u32SrcAddr, uint32_t u32Len);
+uint32_t u32IAP_BlankCheckSectors(uint32_t u32StartSector, uint32_t u32EndSector, uint32_t *pu32Result);
+uint32_t u32IAP_Compare(uint32_t u32DstAddr, uint32_t u32SrcAddr, uint32_t u32Len, uint32_t *pu32Offset);
+uint32_t u32IAP_ReadUID(uint32_t * pu32UID);
+uint32_t u32IAP_ErasePage(uint32_t u32StartPage, uint32_t u32EndPage);
+
+/*****************************************************************************
+**                            End Of File
+******************************************************************************/
+
+
+
+#endif /* IAP_H_INCLUDED */
+
+