Vesrion IAP with LPC11U24_EEPROM_ONLY options
Fork of IAP by
This is IAP library from http://mbed.org/users/okano/notebook/iap-in-application-programming-internal-flash-eras/ Added option LPC11U24_EEPROM_ONLY in IAP.h that disable flash write/read functions if they not needed and working only EEPROM write/read functions. It make for clear memory allocation for flash write functions (4k).
Revision 2:0c7ec806673e, committed 2013-12-28
- Comitter:
- Verbix
- Date:
- Sat Dec 28 21:01:05 2013 +0000
- Parent:
- 1:ff906ad52cf9
- Commit message:
- Added option LPC11U24_EEPROM_ONLY disabling Flash write/read functions and RAM allocation for it. Only EEPROM functions for LPC11U24 will work.
Changed in this revision
| IAP.cpp | Show annotated file Show diff for this revision Revisions of this file |
| IAP.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/IAP.cpp Mon Nov 26 06:02:24 2012 +0000
+++ b/IAP.cpp Sat Dec 28 21:01:05 2013 +0000
@@ -30,8 +30,9 @@
#define USER_FLASH_AREA_START_STR( x ) STR( x )
#define STR( x ) #x
+#ifndef LPC11U24_EEPROM_ONLY
unsigned char user_area[ USER_FLASH_AREA_SIZE ] __attribute__((section( ".ARM.__at_" USER_FLASH_AREA_START_STR( USER_FLASH_AREA_START ) ), zero_init));
-
+#endif
/*
* Reserve of flash area is explained by Igor. Please refer next URL
@@ -102,6 +103,7 @@
* @return error code: CMD_SUCCESS | BUSY | SECTOR_NOT_BLANK | INVALID_SECTOR
*/
+#ifndef LPC11U24_EEPROM_ONLY
int IAP::blank_check( int start, int end ) {
IAP_command[ 0 ] = IAPCommand_Blank_check_sector;
IAP_command[ 1 ] = (unsigned int)start; // Start Sector Number
@@ -227,6 +229,7 @@
{
return ( USER_FLASH_AREA_SIZE );
}
+#endif
#if defined(TARGET_LPC11U24)
/** Copy RAM to EEPROM (LPC11U24)
--- a/IAP.h Mon Nov 26 06:02:24 2012 +0000
+++ b/IAP.h Sat Dec 28 21:01:05 2013 +0000
@@ -29,6 +29,8 @@
#include "mbed.h"
+#define LPC11U24_EEPROM_ONLY
+
#if defined(TARGET_LPC1768)
#define USER_FLASH_AREA_START FLASH_SECTOR_29
@@ -258,7 +260,8 @@
IAP() : iap_entry( reinterpret_cast<IAP_call>(IAP_LOCATION) ), cclk_kHz( SystemCoreClock / 1000 ) {}
int read_ID( void );
int read_serial( void );
- int blank_check( int start, int end );
+#ifndef LPC11U24_EEPROM_ONLY
+ int blank_check( int start, int end );
int erase( int start, int end );
int prepare( int start, int end );
int write( char *source_addr, char *target_addr, int size );
@@ -267,7 +270,8 @@
char *reserved_flash_area_start( void );
int reserved_flash_area_size( void );
-
+#endif
+
#if defined(TARGET_LPC11U24)
int write_eeprom( char *source_addr, char *target_addr, int size );
int read_eeprom( char *source_addr, char *target_addr, int size );
