Narasimma DLN
/
NUCLEO_F091RC_IAP_UART
Sample IAP test code for Nucleo_F091RC
stm_iap.h
- Committer:
- narasimma23
- Date:
- 2017-06-17
- Revision:
- 0:de2687a62a94
File content as of revision 0:de2687a62a94:
/** * Author: Narasimma DLN * Email: narasimma23@gmail.com */ #include "mbed.h" #define FLASH_START_ADDR 0x08000000 #define FLASH_SIZE_ADDR 0x1FFFF7CC #define FLASH_SIZE (256 * 1024) #define FLASH_SECTOR_SIZE (2 * FLASH_PAGE_SIZE) #define FLASH_SECTORS 64 /* #define FLASH_SECTOR_0 0x08000000 #define FLASH_SECTOR_1 0x08001000 #define FLASH_SECTOR_2 0x08002000 #define FLASH_SECTOR_3 0x08003000 #define FLASH_SECTOR_4 0x08004000 #define FLASH_SECTOR_5 0x08005000 #define FLASH_SECTOR_6 0x08006000 #define FLASH_SECTOR_7 0x08007000 #define FLASH_SECTOR_8 0x08008000 #define FLASH_SECTOR_9 0x08009000 #define FLASH_SECTOR_10 0x0800A000 #define FLASH_SECTOR_11 0x0800B000 #define FLASH_SECTOR_12 0x0800C000 #define FLASH_SECTOR_13 0x0800D000 #define FLASH_SECTOR_14 0x0800E000 #define FLASH_SECTOR_15 0x0800F000 #define FLASH_SECTOR_16 0x08010000 #define FLASH_SECTOR_17 0x08011000 #define FLASH_SECTOR_18 0x08012000 #define FLASH_SECTOR_19 0x08013000 #define FLASH_SECTOR_20 0x08014000 #define FLASH_SECTOR_21 0x08015000 #define FLASH_SECTOR_22 0x08016000 #define FLASH_SECTOR_23 0x08017000 #define FLASH_SECTOR_24 0x08018000 #define FLASH_SECTOR_25 0x08019000 #define FLASH_SECTOR_26 0x0801A000 #define FLASH_SECTOR_27 0x0801B000 #define FLASH_SECTOR_28 0x0801C000 #define FLASH_SECTOR_29 0x0801D000 #define FLASH_SECTOR_30 0x0801E000 #define FLASH_SECTOR_31 0x0801F000 #define FLASH_SECTOR_32 0x08020000 #define FLASH_SECTOR_33 0x08021000 #define FLASH_SECTOR_34 0x08022000 #define FLASH_SECTOR_35 0x08023000 #define FLASH_SECTOR_36 0x08024000 #define FLASH_SECTOR_37 0x08025000 #define FLASH_SECTOR_38 0x08026000 #define FLASH_SECTOR_39 0x08027000 #define FLASH_SECTOR_40 0x08028000 #define FLASH_SECTOR_41 0x08029000 #define FLASH_SECTOR_42 0x0802A000 #define FLASH_SECTOR_43 0x0802B000 #define FLASH_SECTOR_44 0x0802C000 #define FLASH_SECTOR_45 0x0802D000 #define FLASH_SECTOR_46 0x0802E000 #define FLASH_SECTOR_47 0x0802F000 #define FLASH_SECTOR_48 0x08030000 #define FLASH_SECTOR_49 0x08031000 #define FLASH_SECTOR_50 0x08032000 #define FLASH_SECTOR_51 0x08033000 #define FLASH_SECTOR_52 0x08034000 #define FLASH_SECTOR_53 0x08035000 #define FLASH_SECTOR_54 0x08036000 #define FLASH_SECTOR_55 0x08037000 #define FLASH_SECTOR_56 0x08038000 #define FLASH_SECTOR_57 0x08039000 #define FLASH_SECTOR_58 0x0803A000 #define FLASH_SECTOR_59 0x0803B000 #define FLASH_SECTOR_60 0x0803C000 #define FLASH_SECTOR_61 0x0803D000 #define FLASH_SECTOR_62 0x0803E000 #define FLASH_SECTOR_63 0x0803F000 */ /* Return Code */ typedef enum { Success = 0, WriteProtError, ProgrammingError, }IAPCode; // Get the flash sectors void get_flash_sectors(void); // Get Flash Size uint32_t get_flash_size(void); // Get Sector Number uint8_t get_sector_number(uint32_t _addr); // Get Sector Size uint32_t get_sector_size(uint32_t addr); // Erase a Flash Sector IAPCode erase_sector(int address); // Programming Flash Memory IAPCode program_flash(uint32_t address, uint16_t *data, unsigned int length);