2323
2424static uint32_t stm32h7_cache [STM32H7_WORD_SIZE / sizeof (uint32_t )];
2525
26+ #define FLASH_BANK_1 0
27+ #define FLASH_BANK_2 1
28+
2629static void RAMFUNCTION flash_set_waitstates (unsigned int waitstates )
2730{
2831 uint32_t reg = FLASH_ACR ;
@@ -38,7 +41,7 @@ static RAMFUNCTION void flash_wait_last(void)
3841
3942static RAMFUNCTION void flash_wait_complete (uint8_t bank )
4043{
41- if (bank == 0 ) {
44+ if (bank == FLASH_BANK_1 ) {
4245 while ((FLASH_SR1 & FLASH_SR_QW ) == FLASH_SR_QW );
4346 }
4447 else {
@@ -48,7 +51,7 @@ static RAMFUNCTION void flash_wait_complete(uint8_t bank)
4851
4952static void RAMFUNCTION flash_clear_errors (uint8_t bank )
5053{
51- if (bank == 0 ) {
54+ if (bank == FLASH_BANK_1 ) {
5255 FLASH_SR1 |= (FLASH_SR_WRPERR | FLASH_SR_PGSERR | FLASH_SR_STRBERR |
5356 FLASH_SR_INCERR | FLASH_SR_OPERR | FLASH_SR_RDPERR |
5457 FLASH_SR_RDSERR | FLASH_SR_SNECCERR | FLASH_SR_DBECCERR );
@@ -62,7 +65,7 @@ static void RAMFUNCTION flash_clear_errors(uint8_t bank)
6265
6366static void RAMFUNCTION flash_program_on (uint8_t bank )
6467{
65- if (bank == 0 ) {
68+ if (bank == FLASH_BANK_1 ) {
6669 FLASH_CR1 |= FLASH_CR_PG ;
6770 while ((FLASH_CR1 & FLASH_CR_PG ) == 0 )
6871 ;
@@ -76,7 +79,7 @@ static void RAMFUNCTION flash_program_on(uint8_t bank)
7679
7780static void RAMFUNCTION flash_program_off (uint8_t bank )
7881{
79- if (bank == 0 ) {
82+ if (bank == FLASH_BANK_1 ) {
8083 FLASH_CR1 &= ~FLASH_CR_PG ;
8184 }
8285 else {
@@ -88,22 +91,22 @@ int RAMFUNCTION hal_flash_write(uint32_t address, const uint8_t *data, int len)
8891{
8992 int i = 0 , ii = 0 ;
9093 uint32_t * src , * dst ;
91- uint8_t bank = 0 ;
94+ uint8_t bank = FLASH_BANK_1 ;
9295 uint8_t * vbytes = (uint8_t * )(stm32h7_cache );
9396 int off ;
9497 uint32_t base_addr ;
9598
9699 if ((address & FLASH_BANK2_BASE_REL ) != 0 ) {
97- bank = 1 ;
100+ bank = FLASH_BANK_2 ;
98101 }
99102
100103 while (i < len ) {
101104 if ((len - i > 32 ) && ((((address + i ) & 0x1F ) == 0 ) &&
102105 ((((uint32_t )data ) + i ) & 0x1F ) == 0 ))
103106 {
104107 flash_wait_last ();
105- flash_clear_errors (0 );
106- flash_clear_errors (1 );
108+ flash_clear_errors (FLASH_BANK_1 );
109+ flash_clear_errors (FLASH_BANK_2 );
107110 flash_program_on (bank );
108111 flash_wait_complete (bank );
109112 src = (uint32_t * )(data + i );
@@ -140,8 +143,8 @@ int RAMFUNCTION hal_flash_write(uint32_t address, const uint8_t *data, int len)
140143
141144 /* Actual write from cache to FLASH */
142145 flash_wait_last ();
143- flash_clear_errors (0 );
144- flash_clear_errors (1 );
146+ flash_clear_errors (FLASH_BANK_1 );
147+ flash_clear_errors (FLASH_BANK_2 );
145148 flash_program_on (bank );
146149 flash_wait_complete (bank );
147150 ISB ();
@@ -160,7 +163,7 @@ int RAMFUNCTION hal_flash_write(uint32_t address, const uint8_t *data, int len)
160163
161164void RAMFUNCTION hal_flash_unlock (void )
162165{
163- flash_wait_complete (0 );
166+ flash_wait_complete (FLASH_BANK_1 );
164167 if ((FLASH_CR1 & FLASH_CR_LOCK ) != 0 ) {
165168 FLASH_KEYR1 = FLASH_KEY1 ;
166169 DMB ();
@@ -170,7 +173,7 @@ void RAMFUNCTION hal_flash_unlock(void)
170173 ;
171174 }
172175
173- flash_wait_complete (1 );
176+ flash_wait_complete (FLASH_BANK_2 );
174177 if ((FLASH_CR2 & FLASH_CR_LOCK ) != 0 ) {
175178 FLASH_KEYR2 = FLASH_KEY1 ;
176179 DMB ();
@@ -183,11 +186,11 @@ void RAMFUNCTION hal_flash_unlock(void)
183186
184187void RAMFUNCTION hal_flash_lock (void )
185188{
186- flash_wait_complete (0 );
189+ flash_wait_complete (FLASH_BANK_1 );
187190 if ((FLASH_CR1 & FLASH_CR_LOCK ) == 0 )
188191 FLASH_CR1 |= FLASH_CR_LOCK ;
189192
190- flash_wait_complete (1 );
193+ flash_wait_complete (FLASH_BANK_2 );
191194 if ((FLASH_CR2 & FLASH_CR_LOCK ) == 0 )
192195 FLASH_CR2 |= FLASH_CR_LOCK ;
193196}
@@ -211,7 +214,7 @@ int RAMFUNCTION hal_flash_erase(uint32_t address, int len)
211214 (((p >> 17 ) << FLASH_CR_SNB_SHIFT ) | FLASH_CR_SER | 0x00 );
212215 DMB ();
213216 FLASH_CR1 |= FLASH_CR_STRT ;
214- flash_wait_complete (1 );
217+ flash_wait_complete (FLASH_BANK_1 );
215218 }
216219 if ((p >= FLASH_BANK2_BASE_REL ) &&
217220 (p <= (FLASH_TOP - FLASHMEM_ADDRESS_SPACE ))) {
@@ -222,7 +225,7 @@ int RAMFUNCTION hal_flash_erase(uint32_t address, int len)
222225 (((p >> 17 ) << FLASH_CR_SNB_SHIFT ) | FLASH_CR_SER | 0x00 );
223226 DMB ();
224227 FLASH_CR2 |= FLASH_CR_STRT ;
225- flash_wait_complete (2 );
228+ flash_wait_complete (FLASH_BANK_2 );
226229 }
227230 }
228231 return 0 ;
0 commit comments