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
DipCortex-EEprom.h@0:53297f36733d, 2014-02-23 (annotated)
- Committer:
- SolderSplashLabs
- Date:
- Sun Feb 23 22:52:19 2014 +0000
- Revision:
- 0:53297f36733d
DipCortex EEprom, port of the NXP IAP code that allows reading and writing to the on chip 4KB eeprom.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
SolderSplashLabs | 0:53297f36733d | 1 | #define USER_START_SECTOR SECTOR_2_START |
SolderSplashLabs | 0:53297f36733d | 2 | |
SolderSplashLabs | 0:53297f36733d | 3 | #ifndef _SBL_IAP_H |
SolderSplashLabs | 0:53297f36733d | 4 | #define _SBL_IAP_H |
SolderSplashLabs | 0:53297f36733d | 5 | |
SolderSplashLabs | 0:53297f36733d | 6 | |
SolderSplashLabs | 0:53297f36733d | 7 | #define SECTOR_0_START 0x00000000 |
SolderSplashLabs | 0:53297f36733d | 8 | #define SECTOR_1_START 0x00001000 |
SolderSplashLabs | 0:53297f36733d | 9 | #define SECTOR_2_START 0x00002000 |
SolderSplashLabs | 0:53297f36733d | 10 | #define SECTOR_3_START 0x00003000 |
SolderSplashLabs | 0:53297f36733d | 11 | #define SECTOR_4_START 0x00004000 |
SolderSplashLabs | 0:53297f36733d | 12 | #define SECTOR_5_START 0x00005000 |
SolderSplashLabs | 0:53297f36733d | 13 | #define SECTOR_6_START 0x00006000 |
SolderSplashLabs | 0:53297f36733d | 14 | #define SECTOR_7_START 0x00007000 |
SolderSplashLabs | 0:53297f36733d | 15 | #define SECTOR_8_START 0x00008000 |
SolderSplashLabs | 0:53297f36733d | 16 | #define SECTOR_9_START 0x00009000 |
SolderSplashLabs | 0:53297f36733d | 17 | #define SECTOR_10_START 0x0000A000 |
SolderSplashLabs | 0:53297f36733d | 18 | #define SECTOR_11_START 0x0000B000 |
SolderSplashLabs | 0:53297f36733d | 19 | #define SECTOR_12_START 0x0000C000 |
SolderSplashLabs | 0:53297f36733d | 20 | #define SECTOR_13_START 0x0000D000 |
SolderSplashLabs | 0:53297f36733d | 21 | #define SECTOR_14_START 0x0000E000 |
SolderSplashLabs | 0:53297f36733d | 22 | #define SECTOR_15_START 0x0000F000 |
SolderSplashLabs | 0:53297f36733d | 23 | |
SolderSplashLabs | 0:53297f36733d | 24 | |
SolderSplashLabs | 0:53297f36733d | 25 | #define SECTOR_0_END 0x00000FFF |
SolderSplashLabs | 0:53297f36733d | 26 | #define SECTOR_1_END 0x00001FFF |
SolderSplashLabs | 0:53297f36733d | 27 | #define SECTOR_2_END 0x00002FFF |
SolderSplashLabs | 0:53297f36733d | 28 | #define SECTOR_3_END 0x00003FFF |
SolderSplashLabs | 0:53297f36733d | 29 | #define SECTOR_4_END 0x00004FFF |
SolderSplashLabs | 0:53297f36733d | 30 | #define SECTOR_5_END 0x00005FFF |
SolderSplashLabs | 0:53297f36733d | 31 | #define SECTOR_6_END 0x00006FFF |
SolderSplashLabs | 0:53297f36733d | 32 | #define SECTOR_7_END 0x00007FFF |
SolderSplashLabs | 0:53297f36733d | 33 | #define SECTOR_8_END 0x00008FFF |
SolderSplashLabs | 0:53297f36733d | 34 | #define SECTOR_9_END 0x00009FFF |
SolderSplashLabs | 0:53297f36733d | 35 | #define SECTOR_10_END 0x0000AFFF |
SolderSplashLabs | 0:53297f36733d | 36 | #define SECTOR_11_END 0x0000BFFF |
SolderSplashLabs | 0:53297f36733d | 37 | #define SECTOR_12_END 0x0000CFFF |
SolderSplashLabs | 0:53297f36733d | 38 | #define SECTOR_13_END 0x0000DFFF |
SolderSplashLabs | 0:53297f36733d | 39 | #define SECTOR_14_END 0x0000EFFF |
SolderSplashLabs | 0:53297f36733d | 40 | #define SECTOR_15_END 0x0000FFFF |
SolderSplashLabs | 0:53297f36733d | 41 | |
SolderSplashLabs | 0:53297f36733d | 42 | #define CCLK 72000 /* 72,000 KHz for IAP call WiFI Dip and M3 - TODO : Addjust for M0*/ |
SolderSplashLabs | 0:53297f36733d | 43 | |
SolderSplashLabs | 0:53297f36733d | 44 | #define FLASH_BUF_SIZE 256 |
SolderSplashLabs | 0:53297f36733d | 45 | #define SECTOR_0_START_ADDR 0 |
SolderSplashLabs | 0:53297f36733d | 46 | #define SECTOR_SIZE 4096 |
SolderSplashLabs | 0:53297f36733d | 47 | #define MAX_USER_SECTOR 16 |
SolderSplashLabs | 0:53297f36733d | 48 | #define PAGES_PER_SECTOR 16 |
SolderSplashLabs | 0:53297f36733d | 49 | |
SolderSplashLabs | 0:53297f36733d | 50 | //extern const unsigned sector_start_map[]; |
SolderSplashLabs | 0:53297f36733d | 51 | //extern const unsigned sector_end_map[]; |
SolderSplashLabs | 0:53297f36733d | 52 | extern const unsigned crp; |
SolderSplashLabs | 0:53297f36733d | 53 | |
SolderSplashLabs | 0:53297f36733d | 54 | unsigned write_flash(unsigned * dst, char * src, unsigned no_of_bytes); |
SolderSplashLabs | 0:53297f36733d | 55 | void erase_user_flash(void); |
SolderSplashLabs | 0:53297f36733d | 56 | void IAP_Init(void); |
SolderSplashLabs | 0:53297f36733d | 57 | int IAP_CheckForUserCode(void); |
SolderSplashLabs | 0:53297f36733d | 58 | int IAP_WritePage (unsigned * dst, char * src, unsigned no_of_bytes); |
SolderSplashLabs | 0:53297f36733d | 59 | void IAP_Eeprom_Write ( uint32_t eeAddress, uint8_t* buffAddress, uint32_t byteCount ); |
SolderSplashLabs | 0:53297f36733d | 60 | void IAP_Eeprom_Read ( uint32_t eeAddress, uint8_t* buffAddress, uint32_t byteCount ); |
SolderSplashLabs | 0:53297f36733d | 61 | |
SolderSplashLabs | 0:53297f36733d | 62 | typedef enum |
SolderSplashLabs | 0:53297f36733d | 63 | { |
SolderSplashLabs | 0:53297f36733d | 64 | PREPARE_SECTOR_FOR_WRITE=50, |
SolderSplashLabs | 0:53297f36733d | 65 | COPY_RAM_TO_FLASH=51, |
SolderSplashLabs | 0:53297f36733d | 66 | ERASE_SECTOR=52, |
SolderSplashLabs | 0:53297f36733d | 67 | BLANK_CHECK_SECTOR=53, |
SolderSplashLabs | 0:53297f36733d | 68 | READ_PART_ID=54, |
SolderSplashLabs | 0:53297f36733d | 69 | READ_BOOT_VER=55, |
SolderSplashLabs | 0:53297f36733d | 70 | COMPARE=56, |
SolderSplashLabs | 0:53297f36733d | 71 | REINVOKE_ISP=57, |
SolderSplashLabs | 0:53297f36733d | 72 | ERASE_PAGE=59, |
SolderSplashLabs | 0:53297f36733d | 73 | EEPROM_WRITE=61, |
SolderSplashLabs | 0:53297f36733d | 74 | EEPROM_READ=62, |
SolderSplashLabs | 0:53297f36733d | 75 | |
SolderSplashLabs | 0:53297f36733d | 76 | }IAP_Command_Code; |
SolderSplashLabs | 0:53297f36733d | 77 | |
SolderSplashLabs | 0:53297f36733d | 78 | #define CMD_SUCCESS 0 |
SolderSplashLabs | 0:53297f36733d | 79 | #define IAP_ADDRESS 0x1FFF1FF1 |
SolderSplashLabs | 0:53297f36733d | 80 | |
SolderSplashLabs | 0:53297f36733d | 81 | #define UPDATE_REQD 133 |
SolderSplashLabs | 0:53297f36733d | 82 | |
SolderSplashLabs | 0:53297f36733d | 83 | #endif /* _SBL_IAP_H */ |