/** ****************************************************************************** * @file EEPROM_Emulation/inc/eeprom.h * @author MCD Application Team * @version V3.1.0 * @date 07/27/2009 * @brief This file contains all the functions prototypes for the EEPROM * emulation firmware library. ****************************************************************************** * @copy * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2009 STMicroelectronics

*/ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __EEPROM_H #define __EEPROM_H /* Includes ------------------------------------------------------------------*/ #include "stm32f10x.h" /* Exported constants --------------------------------------------------------*/ /* Define the STM32F10Xxx Flash page size depending on the used STM32 device */ #if defined (STM32F10X_LD) || defined (STM32F10X_MD) #define PAGE_SIZE (uint16_t)0x400 /* Page size = 1KByte */ #elif defined (STM32F10X_HD) || defined (STM32F10X_CL) #define PAGE_SIZE (uint16_t)0x800 /* Page size = 2KByte */ #endif /* EEPROM start address in Flash */ #define EEPROM_START_ADDRESS ((uint32_t)0x0800C000) /* EEPROM emulation start address: after 64KByte of used Flash memory */ /* Pages 0 and 1 base and end addresses */ #define PAGE0_BASE_ADDRESS ((uint32_t)(EEPROM_START_ADDRESS + 0x000)) #define PAGE0_END_ADDRESS ((uint32_t)(EEPROM_START_ADDRESS + (PAGE_SIZE - 1))) #define PAGE1_BASE_ADDRESS ((uint32_t)(EEPROM_START_ADDRESS + PAGE_SIZE)) #define PAGE1_END_ADDRESS ((uint32_t)(EEPROM_START_ADDRESS + (2 * PAGE_SIZE - 1))) /* Used Flash pages for EEPROM emulation */ #define PAGE0 ((uint16_t)0x0000) #define PAGE1 ((uint16_t)0x0001) /* No valid page define */ #define NO_VALID_PAGE ((uint16_t)0x00AB) /* Page status definitions */ #define ERASED ((uint16_t)0xFFFF) /* PAGE is empty */ #define RECEIVE_DATA ((uint16_t)0xEEEE) /* PAGE is marked to receive data */ #define VALID_PAGE ((uint16_t)0x0000) /* PAGE containing valid data */ /* Valid pages in read and write defines */ #define READ_FROM_VALID_PAGE ((uint8_t)0x00) #define WRITE_IN_VALID_PAGE ((uint8_t)0x01) /* Page full define */ #define PAGE_FULL ((uint8_t)0x80) /* Variables' number */ #define NumbOfVar ((uint8_t)20) /* Virtual address defined by the user: 0xFFFF value is prohibited */ extern uint16_t VirtAddVarTab[NumbOfVar]; // Define virtual EEPROM addresses to be used here enum { Addr_TimeBase = 0, Addr_HPos, Addr_Vsen, Addr_Cpl, Addr_Vpos, Addr_VPosOfs, Addr_TrigMode, Addr_TrigEdge, Addr_TrigLvl, Addr_TrigPos, Addr_RecLen, Addr_SettingStatus, }; /* Exported types ------------------------------------------------------------*/ /* Exported macro ------------------------------------------------------------*/ /* Exported functions ------------------------------------------------------- */ uint16_t EE_Init(void); uint16_t EE_ReadVariable(uint16_t VirtAddress, uint16_t* Data); uint16_t EE_WriteVariable(uint16_t VirtAddress, uint16_t Data); #endif /* __EEPROM_H */ /******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/