DipCortex EEprom IAP library
Dependents: DipCortex-USB-EEProm vfd_modular_clock_mbed
DipCortex EEprom library.
Example project :
Import programDipCortex-USB-EEProm
DipCortex USB CDC + EEprom
Diff: DipCortex-EEprom.h
- Revision:
- 0:53297f36733d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DipCortex-EEprom.h Sun Feb 23 22:52:19 2014 +0000 @@ -0,0 +1,83 @@ +#define USER_START_SECTOR SECTOR_2_START + +#ifndef _SBL_IAP_H +#define _SBL_IAP_H + + +#define SECTOR_0_START 0x00000000 +#define SECTOR_1_START 0x00001000 +#define SECTOR_2_START 0x00002000 +#define SECTOR_3_START 0x00003000 +#define SECTOR_4_START 0x00004000 +#define SECTOR_5_START 0x00005000 +#define SECTOR_6_START 0x00006000 +#define SECTOR_7_START 0x00007000 +#define SECTOR_8_START 0x00008000 +#define SECTOR_9_START 0x00009000 +#define SECTOR_10_START 0x0000A000 +#define SECTOR_11_START 0x0000B000 +#define SECTOR_12_START 0x0000C000 +#define SECTOR_13_START 0x0000D000 +#define SECTOR_14_START 0x0000E000 +#define SECTOR_15_START 0x0000F000 + + +#define SECTOR_0_END 0x00000FFF +#define SECTOR_1_END 0x00001FFF +#define SECTOR_2_END 0x00002FFF +#define SECTOR_3_END 0x00003FFF +#define SECTOR_4_END 0x00004FFF +#define SECTOR_5_END 0x00005FFF +#define SECTOR_6_END 0x00006FFF +#define SECTOR_7_END 0x00007FFF +#define SECTOR_8_END 0x00008FFF +#define SECTOR_9_END 0x00009FFF +#define SECTOR_10_END 0x0000AFFF +#define SECTOR_11_END 0x0000BFFF +#define SECTOR_12_END 0x0000CFFF +#define SECTOR_13_END 0x0000DFFF +#define SECTOR_14_END 0x0000EFFF +#define SECTOR_15_END 0x0000FFFF + +#define CCLK 72000 /* 72,000 KHz for IAP call WiFI Dip and M3 - TODO : Addjust for M0*/ + +#define FLASH_BUF_SIZE 256 +#define SECTOR_0_START_ADDR 0 +#define SECTOR_SIZE 4096 +#define MAX_USER_SECTOR 16 +#define PAGES_PER_SECTOR 16 + +//extern const unsigned sector_start_map[]; +//extern const unsigned sector_end_map[]; +extern const unsigned crp; + +unsigned write_flash(unsigned * dst, char * src, unsigned no_of_bytes); +void erase_user_flash(void); +void IAP_Init(void); +int IAP_CheckForUserCode(void); +int IAP_WritePage (unsigned * dst, char * src, unsigned no_of_bytes); +void IAP_Eeprom_Write ( uint32_t eeAddress, uint8_t* buffAddress, uint32_t byteCount ); +void IAP_Eeprom_Read ( uint32_t eeAddress, uint8_t* buffAddress, uint32_t byteCount ); + +typedef enum +{ +PREPARE_SECTOR_FOR_WRITE=50, +COPY_RAM_TO_FLASH=51, +ERASE_SECTOR=52, +BLANK_CHECK_SECTOR=53, +READ_PART_ID=54, +READ_BOOT_VER=55, +COMPARE=56, +REINVOKE_ISP=57, +ERASE_PAGE=59, +EEPROM_WRITE=61, +EEPROM_READ=62, + +}IAP_Command_Code; + +#define CMD_SUCCESS 0 +#define IAP_ADDRESS 0x1FFF1FF1 + +#define UPDATE_REQD 133 + +#endif /* _SBL_IAP_H */