/** ****************************************************************************** * @file USB_Host/FWupgrade_Standalone/Inc/flash_if.h * @author MCD Application Team * @brief Header file for flash_if.c ****************************************************************************** * @attention * * Copyright (c) 2017 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it is provided AS-IS. * ****************************************************************************** *//* ... *//* Define to prevent recursive inclusion -------------------------------------*/#ifndef__FLASH_IF_H#define__FLASH_IF_H#ifdef__cplusplusextern"C"{#endif/* Includes ------------------------------------------------------------------*/#include"stm32f4xx_hal.h"Includes/* Exported types ------------------------------------------------------------*/typedefvoid(*pFunction)(void);Exported types/* Exported constants --------------------------------------------------------*//* Define the flash memory start address */#defineUSER_FLASH_STARTADDRESS((uint32_t)0x08000000)/* Define the address from where user application will be loaded.Note: the 1st and the second sectors 0x08000000-0x0800BFFF are reservedfor the Firmware upgrade code *//* ... */#defineAPPLICATION_ADDRESS(uint32_t)0x0800C000/* Last Page Address */#defineUSER_FLASH_LAST_PAGE_ADDRESS0x080FFFFF-4/* Define the user application size */#defineUSER_FLASH_SIZE(USER_FLASH_LAST_PAGE_ADDRESS-APPLICATION_ADDRESS+1)/* Base address of the Flash sectors */#defineADDR_FLASH_SECTOR_0((uint32_t)0x08000000)/* Base @ of Sector 0, 16 Kbyte */#defineADDR_FLASH_SECTOR_1((uint32_t)0x08004000)/* Base @ of Sector 1, 16 Kbyte */#defineADDR_FLASH_SECTOR_2((uint32_t)0x08008000)/* Base @ of Sector 2, 16 Kbyte */#defineADDR_FLASH_SECTOR_3((uint32_t)0x0800C000)/* Base @ of Sector 3, 16 Kbyte */#defineADDR_FLASH_SECTOR_4((uint32_t)0x08010000)/* Base @ of Sector 4, 64 Kbyte */#defineADDR_FLASH_SECTOR_5((uint32_t)0x08020000)/* Base @ of Sector 5, 128 Kbyte */#defineADDR_FLASH_SECTOR_6((uint32_t)0x08040000)/* Base @ of Sector 6, 128 Kbyte */#defineADDR_FLASH_SECTOR_7((uint32_t)0x08060000)/* Base @ of Sector 7, 128 Kbyte */#defineADDR_FLASH_SECTOR_8((uint32_t)0x08080000)/* Base @ of Sector 8, 128 Kbyte */#defineADDR_FLASH_SECTOR_9((uint32_t)0x080A0000)/* Base @ of Sector 9, 128 Kbyte */#defineADDR_FLASH_SECTOR_10((uint32_t)0x080C0000)/* Base @ of Sector 10, 128 Kbyte */#defineADDR_FLASH_SECTOR_11((uint32_t)0x080E0000)/* Base @ of Sector 11, 128 Kbyte */16 definesExported constants/* Exported macros -----------------------------------------------------------*//* Exported functions ------------------------------------------------------- */voidFLASH_If_FlashUnlock(void);FlagStatusFLASH_If_ReadOutProtectionStatus(void);uint32_tFLASH_If_EraseSectors(uint32_tAddress);uint32_tFLASH_If_Write(uint32_tAddress,uint32_tData);#ifdef__cplusplus}extern "C" { ... }#endif/* ... */#endif/* __FLASH_IF_H */