Skip to content

Commit 9a5672f

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 0f522e0 commit 9a5672f

File tree

1 file changed

+12
-30
lines changed

1 file changed

+12
-30
lines changed

libraries/SrcWrapper/src/stm32/stm32_eeprom.c

+12-30
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))
@@ -247,8 +247,8 @@ void eeprom_buffer_flush(void)
247247
uint32_t address = FLASH_BASE_ADDRESS;
248248
uint32_t address_end = FLASH_BASE_ADDRESS + E2END;
249249
#if defined (STM32F0xx) || defined (STM32F1xx) || defined (STM32F3xx) || \
250-
defined (STM32G0xx) || defined (STM32G4xx) || defined (STM32L0xx) || \
251-
defined (STM32L1xx) || defined (STM32L4xx) || defined (STM32WBxx)
250+
defined (STM32G0xx) || defined (STM32G4xx) || \
251+
defined (STM32L4xx) || defined (STM32WBxx)
252252
uint32_t pageError = 0;
253253
uint64_t data = 0;
254254

@@ -266,38 +266,20 @@ void eeprom_buffer_flush(void)
266266
EraseInitStruct.NbPages = 1;
267267

268268
if (HAL_FLASH_Unlock() == HAL_OK) {
269-
#if defined(STM32L0xx)
270-
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | \
271-
FLASH_FLAG_SIZERR | FLASH_FLAG_OPTVERR | FLASH_FLAG_RDERR | \
272-
FLASH_FLAG_FWWERR | FLASH_FLAG_NOTZEROERR);
273-
#elif defined(STM32L1xx)
274-
#if defined(FLASH_SR_RDERR)
275-
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | \
276-
FLASH_FLAG_SIZERR | FLASH_FLAG_OPTVERR | FLASH_FLAG_RDERR);
277-
#else
278-
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | \
279-
FLASH_FLAG_SIZERR | FLASH_FLAG_OPTVERR);
280-
#endif
281-
#elif defined (STM32G0xx) || defined (STM32G4xx) || defined (STM32L4xx) || \
269+
#if defined (STM32G0xx) || defined (STM32G4xx) || defined (STM32L4xx) || \
282270
defined (STM32WBxx)
283271
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_ALL_ERRORS);
284272
#else
285273
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_WRPERR | FLASH_FLAG_PGERR);
286274
#endif
287275
if (HAL_FLASHEx_Erase(&EraseInitStruct, &pageError) == HAL_OK) {
288276
while (address <= address_end) {
289-
#if defined(STM32L0xx) || defined(STM32L1xx)
290-
memcpy(&data, eeprom_buffer + offset, sizeof(uint32_t));
291-
if (HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, address, data) == HAL_OK) {
292-
address += 4;
293-
offset += 4;
294-
#else
277+
295278
data = *((uint64_t *)((uint8_t *)eeprom_buffer + offset));
296279

297280
if (HAL_FLASH_Program(FLASH_TYPEPROGRAM_DOUBLEWORD, address, data) == HAL_OK) {
298281
address += 8;
299282
offset += 8;
300-
#endif
301283
} else {
302284
address = address_end + 1;
303285
}

0 commit comments

Comments
 (0)