17
17
*/
18
18
19
19
#include "stm32_eeprom.h"
20
+ #include "stm32yyxx_ll_utils.h"
20
21
#include <string.h>
21
22
22
23
#ifdef __cplusplus
@@ -47,8 +48,8 @@ extern "C" {
47
48
#endif /* FLASH_SECTOR_TOTAL */
48
49
49
50
/* Be able to change FLASH_PAGE_NUMBER to use if relevant */
50
- #if !defined(FLASH_PAGE_NUMBER ) && defined ( FLASH_SIZE ) && defined (FLASH_PAGE_SIZE )
51
- #define FLASH_PAGE_NUMBER ((uint32_t)((FLASH_SIZE / FLASH_PAGE_SIZE) - 1))
51
+ #if !defined(FLASH_PAGE_NUMBER ) && defined(FLASH_PAGE_SIZE )
52
+ #define FLASH_PAGE_NUMBER ((uint32_t)(((LL_GetFlashSize() * 1024) / FLASH_PAGE_SIZE) - 1))
52
53
#endif /* !FLASH_PAGE_NUMBER */
53
54
54
55
/* Be able to change FLASH_END to use */
@@ -61,33 +62,33 @@ extern "C" {
61
62
#define FLASH_END FLASH_BANK2_END
62
63
#elif defined (FLASH_BANK1_END ) && (FLASH_BANK_NUMBER == FLASH_BANK_1 )
63
64
#define FLASH_END FLASH_BANK1_END
64
- #elif !defined (FLASH_PAGE_NUMBER )
65
- static inline uint32_t get_flash_end (void )
66
- {
67
- uint32_t size ;
68
- switch ((* ((uint16_t * )FLASH_SIZE_DATA_REGISTER ))) {
69
- case 0x200U :
70
- size = 0x0807FFFFU ;
71
- break ;
72
- case 0x100U :
73
- size = 0x0803FFFFU ;
74
- break ;
75
- case 0x80U :
76
- size = 0x0801FFFFU ;
77
- break ;
78
- case 0x40U :
79
- size = 0x0800FFFFU ;
80
- break ;
81
- case 0x20U :
82
- size = 0x08007FFFU ;
83
- break ;
84
- default :
85
- size = 0x08003FFFU ;
86
- break ;
87
- }
88
- return size ;
89
- }
90
- #define FLASH_END get_flash_end()
65
+ // #elif !defined (FLASH_PAGE_NUMBER)
66
+ // static inline uint32_t get_flash_end(void)
67
+ // {
68
+ // uint32_t size;
69
+ // switch ((*((uint16_t *)FLASH_SIZE_DATA_REGISTER))) {
70
+ // case 0x200U:
71
+ // size = 0x0807FFFFU;
72
+ // break;
73
+ // case 0x100U:
74
+ // size = 0x0803FFFFU;
75
+ // break;
76
+ // case 0x80U:
77
+ // size = 0x0801FFFFU;
78
+ // break;
79
+ // case 0x40U:
80
+ // size = 0x0800FFFFU;
81
+ // break;
82
+ // case 0x20U:
83
+ // size = 0x08007FFFU;
84
+ // break;
85
+ // default:
86
+ // size = 0x08003FFFU;
87
+ // break;
88
+ // }
89
+ // return size;
90
+ // }
91
+ // #define FLASH_END get_flash_end()
91
92
#elif defined(FLASH_BASE ) && defined(FLASH_PAGE_NUMBER ) && defined (FLASH_PAGE_SIZE )
92
93
/* If FLASH_PAGE_NUMBER is defined by user, this is not really end of the flash */
93
94
#define FLASH_END ((uint32_t)(FLASH_BASE + (((FLASH_PAGE_NUMBER +1) * FLASH_PAGE_SIZE))-1))
@@ -227,7 +228,7 @@ void eeprom_buffer_flush(void)
227
228
#if defined(FLASH_BANK_NUMBER )
228
229
EraseInitStruct .Banks = FLASH_BANK_NUMBER ;
229
230
#endif /* FLASH_BANK_NUMBER */
230
- #if defined (FLASH_PAGE_NUMBER )
231
+ #if defined (FLASH_PAGE_NUMBER ) && defined( FLASH_SIZE )
231
232
EraseInitStruct .Page = FLASH_PAGE_NUMBER ;
232
233
#else
233
234
EraseInitStruct .PageAddress = FLASH_BASE_ADDRESS ;
0 commit comments