2 ******************************************************************************
\r
3 * @file EEPROM_Emulation/inc/eeprom.h
\r
4 * @author MCD Application Team
\r
7 * @brief This file contains all the functions prototypes for the EEPROM
\r
8 * emulation firmware library.
\r
9 ******************************************************************************
\r
12 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
\r
13 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
\r
14 * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
\r
15 * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
\r
16 * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
\r
17 * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
\r
19 * <h2><center>© COPYRIGHT 2009 STMicroelectronics</center></h2>
\r
22 /* Define to prevent recursive inclusion -------------------------------------*/
\r
26 /* Includes ------------------------------------------------------------------*/
\r
27 #include "stm32f10x.h"
\r
29 /* Exported constants --------------------------------------------------------*/
\r
30 /* Define the STM32F10Xxx Flash page size depending on the used STM32 device */
\r
31 #if defined (STM32F10X_LD) || defined (STM32F10X_MD)
\r
32 #define PAGE_SIZE (uint16_t)0x400 /* Page size = 1KByte */
\r
33 #elif defined (STM32F10X_HD) || defined (STM32F10X_CL)
\r
34 #define PAGE_SIZE (uint16_t)0x800 /* Page size = 2KByte */
\r
37 /* EEPROM start address in Flash */
\r
38 #define EEPROM_START_ADDRESS ((uint32_t)0x0800C000) /* EEPROM emulation start address:
\r
39 after 64KByte of used Flash memory */
\r
41 /* Pages 0 and 1 base and end addresses */
\r
42 #define PAGE0_BASE_ADDRESS ((uint32_t)(EEPROM_START_ADDRESS + 0x000))
\r
43 #define PAGE0_END_ADDRESS ((uint32_t)(EEPROM_START_ADDRESS + (PAGE_SIZE - 1)))
\r
45 #define PAGE1_BASE_ADDRESS ((uint32_t)(EEPROM_START_ADDRESS + PAGE_SIZE))
\r
46 #define PAGE1_END_ADDRESS ((uint32_t)(EEPROM_START_ADDRESS + (2 * PAGE_SIZE - 1)))
\r
48 /* Used Flash pages for EEPROM emulation */
\r
49 #define PAGE0 ((uint16_t)0x0000)
\r
50 #define PAGE1 ((uint16_t)0x0001)
\r
52 /* No valid page define */
\r
53 #define NO_VALID_PAGE ((uint16_t)0x00AB)
\r
55 /* Page status definitions */
\r
56 #define ERASED ((uint16_t)0xFFFF) /* PAGE is empty */
\r
57 #define RECEIVE_DATA ((uint16_t)0xEEEE) /* PAGE is marked to receive data */
\r
58 #define VALID_PAGE ((uint16_t)0x0000) /* PAGE containing valid data */
\r
60 /* Valid pages in read and write defines */
\r
61 #define READ_FROM_VALID_PAGE ((uint8_t)0x00)
\r
62 #define WRITE_IN_VALID_PAGE ((uint8_t)0x01)
\r
64 /* Page full define */
\r
65 #define PAGE_FULL ((uint8_t)0x80)
\r
67 /* Variables' number */
\r
68 #define NumbOfVar ((uint8_t)20)
\r
70 /* Virtual address defined by the user: 0xFFFF value is prohibited */
\r
71 extern uint16_t VirtAddVarTab[NumbOfVar];
\r
73 // Define virtual EEPROM addresses to be used here
\r
90 /* Exported types ------------------------------------------------------------*/
\r
91 /* Exported macro ------------------------------------------------------------*/
\r
92 /* Exported functions ------------------------------------------------------- */
\r
93 uint16_t EE_Init(void);
\r
94 uint16_t EE_ReadVariable(uint16_t VirtAddress, uint16_t* Data);
\r
95 uint16_t EE_WriteVariable(uint16_t VirtAddress, uint16_t Data);
\r
97 #endif /* __EEPROM_H */
\r
99 /******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/
\r