Skip to content

Commit 052c8a0

Browse files
committed
remove stm32L0x and stm32L1x outside the use of EEPROM
The specific functions for stm32L0x and stm32L1x are defined with the DATA_EEPROM_BASE. So that they are no more required elsewhere. Signed-off-by: Francois Ramu <francois.ramu@st.com>
1 parent dea7f9f commit 052c8a0

File tree

1 file changed

+13
-31
lines changed

1 file changed

+13
-31
lines changed

libraries/SrcWrapper/src/stm32/stm32_eeprom.c

Lines changed: 13 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ extern "C" {
4242
/* Be able to change FLASH_BANK_NUMBER to use if relevant */
4343
#if !defined(FLASH_BANK_NUMBER) &&\
4444
(defined(STM32F0xx) || defined(STM32F1xx) || defined(STM32G4xx) ||\
45-
defined(STM32H7xx) || defined(STM32L1xx) || defined(STM32L4xx))
46-
/* Fo STM32F0xx, FLASH_BANK_1 is not defined only FLASH_BANK1_END is defined */
45+
defined(STM32H7xx) || defined(STM32L4xx))
46+
/* For STM32F0xx, FLASH_BANK_1 is not defined only FLASH_BANK1_END is defined */
4747
#if defined(STM32F0xx)
4848
#define FLASH_BANK_1 1U
4949
#endif
@@ -58,7 +58,7 @@ extern "C" {
5858
#endif /* !FLASH_BANK_NUMBER */
5959

6060
/* Be able to change FLASH_DATA_SECTOR to use if relevant */
61-
#if defined(STM32F2xx) || defined(STM32F4xx) || defined(STM32F7xx) ||\
61+
#if defined(STM32F2xx) || defined(STM32F4xx) || defined(STM32F7xx) ||\
6262
defined(STM32H7xx)
6363
#if !defined(FLASH_DATA_SECTOR)
6464
#define FLASH_DATA_SECTOR ((uint32_t)(FLASH_SECTOR_TOTAL - 1))
@@ -77,8 +77,8 @@ extern "C" {
7777
#endif /* !FLASH_PAGE_NUMBER */
7878

7979
/* Be able to change FLASH_END to use */
80-
#if !defined(FLASH_END) && !defined(STM32L0xx)
81-
#if defined (STM32F0xx) || defined (STM32F1xx) || defined(STM32L1xx)
80+
#if !defined(FLASH_END)
81+
#if defined (STM32F0xx) || defined (STM32F1xx)
8282
#if defined (FLASH_BANK2_END) && (FLASH_BANK_NUMBER == FLASH_BANK_2)
8383
#define FLASH_END FLASH_BANK2_END
8484
#elif defined (FLASH_BANK1_END) && (FLASH_BANK_NUMBER == FLASH_BANK_1)
@@ -117,6 +117,8 @@ static inline uint32_t get_flash_end(void)
117117
#define FLASH_END ((uint32_t)(FLASH_BASE + (((FLASH_PAGE_NUMBER +1) * FLASH_PAGE_SIZE))-1))
118118
#elif defined(EEPROM_RETRAM_MODE)
119119
#define FLASH_END ((uint32_t)(EEPROM_RETRAM_START_ADDRESS + EEPROM_RETRAM_MODE_SIZE -1))
120+
#elif defined(DATA_EEPROM_END)
121+
#define FLASH_END DATA_EEPROM_END
120122
#endif
121123
#ifndef FLASH_END
122124
#error "FLASH_END could not be defined"
@@ -130,9 +132,7 @@ static inline uint32_t get_flash_end(void)
130132
* in order to prevent overwritting
131133
* program data
132134
*/
133-
#if defined(STM32L0xx)
134-
#define FLASH_BASE_ADDRESS ((uint32_t)(DATA_EEPROM_BASE))
135-
#elif defined(EEPROM_RETRAM_MODE)
135+
#if defined(EEPROM_RETRAM_MODE)
136136
#define FLASH_BASE_ADDRESS EEPROM_RETRAM_START_ADDRESS
137137
#else
138138
#define FLASH_BASE_ADDRESS ((uint32_t)((FLASH_END + 1) - FLASH_PAGE_SIZE))
@@ -223,7 +223,7 @@ void eeprom_buffer_fill(void)
223223
memcpy(eeprom_buffer, (uint8_t *)(DATA_EEPROM_BASE), E2END + 1);
224224
#else
225225
memcpy(eeprom_buffer, (uint8_t *)(FLASH_BASE_ADDRESS), E2END + 1);
226-
#endif /* STM32L0xx */
226+
#endif /* DATA_EEPROM_BASE */
227227
}
228228

229229
#if defined(EEPROM_RETRAM_MODE)
@@ -268,8 +268,8 @@ void eeprom_buffer_flush(void)
268268
uint32_t address = FLASH_BASE_ADDRESS;
269269
uint32_t address_end = FLASH_BASE_ADDRESS + E2END;
270270
#if defined (STM32F0xx) || defined (STM32F1xx) || defined (STM32F3xx) || \
271-
defined (STM32G0xx) || defined (STM32G4xx) || defined (STM32L0xx) || \
272-
defined (STM32L1xx) || defined (STM32L4xx) || defined (STM32WBxx)
271+
defined (STM32G0xx) || defined (STM32G4xx) || \
272+
defined (STM32L4xx) || defined (STM32WBxx)
273273
uint32_t pageError = 0;
274274
uint64_t data = 0;
275275

@@ -287,38 +287,20 @@ void eeprom_buffer_flush(void)
287287
EraseInitStruct.NbPages = 1;
288288

289289
if (HAL_FLASH_Unlock() == HAL_OK) {
290-
#if defined(STM32L0xx)
291-
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | \
292-
FLASH_FLAG_SIZERR | FLASH_FLAG_OPTVERR | FLASH_FLAG_RDERR | \
293-
FLASH_FLAG_FWWERR | FLASH_FLAG_NOTZEROERR);
294-
#elif defined(STM32L1xx)
295-
#if defined(FLASH_SR_RDERR)
296-
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | \
297-
FLASH_FLAG_SIZERR | FLASH_FLAG_OPTVERR | FLASH_FLAG_RDERR);
298-
#else
299-
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | \
300-
FLASH_FLAG_SIZERR | FLASH_FLAG_OPTVERR);
301-
#endif
302-
#elif defined (STM32G0xx) || defined (STM32G4xx) || defined (STM32L4xx) || \
290+
#if defined (STM32G0xx) || defined (STM32G4xx) || defined (STM32L4xx) || \
303291
defined (STM32WBxx)
304292
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_ALL_ERRORS);
305293
#else
306294
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_WRPERR | FLASH_FLAG_PGERR);
307295
#endif
308296
if (HAL_FLASHEx_Erase(&EraseInitStruct, &pageError) == HAL_OK) {
309297
while (address <= address_end) {
310-
#if defined(STM32L0xx) || defined(STM32L1xx)
311-
memcpy(&data, eeprom_buffer + offset, sizeof(uint32_t));
312-
if (HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, address, data) == HAL_OK) {
313-
address += 4;
314-
offset += 4;
315-
#else
298+
316299
data = *((uint64_t *)((uint8_t *)eeprom_buffer + offset));
317300

318301
if (HAL_FLASH_Program(FLASH_TYPEPROGRAM_DOUBLEWORD, address, data) == HAL_OK) {
319302
address += 8;
320303
offset += 8;
321-
#endif
322304
} else {
323305
address = address_end + 1;
324306
}

0 commit comments

Comments
 (0)