69
69
* @{
70
70
*/
71
71
// We use the last page of the flash to store data (to prevent code overwritten).
72
- #if defined (STM32F0xx ) || defined (STM32F1xx )
72
+ #if defined (STM32F0xx ) || defined (STM32F1xx ) || defined( STM32L1xx )
73
73
#ifdef FLASH_BANK2_END
74
74
#define FLASH_BASE_ADDRESS ((uint32_t)((FLASH_BANK2_END + 1) - FLASH_PAGE_SIZE))
75
75
#else
@@ -200,7 +200,7 @@ void set_data_to_flash(void)
200
200
uint32_t address = FLASH_BASE_ADDRESS ;
201
201
uint32_t address_end = FLASH_BASE_ADDRESS + E2END ;
202
202
#if defined (STM32F0xx ) || defined (STM32F1xx ) || defined (STM32F3xx ) || \
203
- defined (STM32L0xx ) || defined(STM32L4xx )
203
+ defined (STM32L0xx ) || defined ( STM32L1xx ) || defined (STM32L4xx )
204
204
uint32_t pageError = 0 ;
205
205
uint64_t data = 0 ;
206
206
@@ -218,18 +218,26 @@ void set_data_to_flash(void)
218
218
EraseInitStruct .NbPages = 1 ;
219
219
220
220
if (HAL_FLASH_Unlock () == HAL_OK ) {
221
- #ifdef STM32L0xx
221
+ #if defined( STM32L0xx )
222
222
__HAL_FLASH_CLEAR_FLAG (FLASH_FLAG_EOP |FLASH_FLAG_WRPERR |FLASH_FLAG_PGAERR |\
223
223
FLASH_FLAG_SIZERR |FLASH_FLAG_OPTVERR |FLASH_FLAG_RDERR |\
224
224
FLASH_FLAG_FWWERR |FLASH_FLAG_NOTZEROERR );
225
+ #elif defined(STM32L1xx )
226
+ #if defined(FLASH_SR_RDERR )
227
+ __HAL_FLASH_CLEAR_FLAG (FLASH_FLAG_EOP |FLASH_FLAG_WRPERR |FLASH_FLAG_PGAERR |\
228
+ FLASH_FLAG_SIZERR |FLASH_FLAG_OPTVERR |FLASH_FLAG_RDERR );
229
+ #else
230
+ __HAL_FLASH_CLEAR_FLAG (FLASH_FLAG_EOP |FLASH_FLAG_WRPERR |FLASH_FLAG_PGAERR |\
231
+ FLASH_FLAG_SIZERR |FLASH_FLAG_OPTVERR );
232
+ #endif
225
233
#elif defined (STM32L4xx )
226
234
__HAL_FLASH_CLEAR_FLAG (FLASH_FLAG_ALL_ERRORS );
227
235
#else
228
236
__HAL_FLASH_CLEAR_FLAG (FLASH_FLAG_EOP |FLASH_FLAG_WRPERR |FLASH_FLAG_PGERR );
229
237
#endif
230
238
if (HAL_FLASHEx_Erase (& EraseInitStruct , & pageError ) == HAL_OK ) {
231
239
while (address < address_end ) {
232
- #ifdef STM32L0xx
240
+ #if defined( STM32L0xx ) || defined( STM32L1xx )
233
241
memcpy (& data , tmpEE + offset , sizeof (uint32_t ));
234
242
if (HAL_FLASH_Program (FLASH_TYPEPROGRAM_WORD , address , data ) == HAL_OK ) {
235
243
address += 4 ;
0 commit comments