Skip to content

Commit ff00406

Browse files
committed
STM32H7: unified bank names across hal, using macros
1 parent 87a4ffc commit ff00406

File tree

1 file changed

+19
-16
lines changed

1 file changed

+19
-16
lines changed

hal/stm32h7.c

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@
2323

2424
static uint32_t stm32h7_cache[STM32H7_WORD_SIZE / sizeof(uint32_t)];
2525

26+
#define FLASH_BANK_1 0
27+
#define FLASH_BANK_2 1
28+
2629
static 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

3942
static 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

4952
static 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

6366
static 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

7780
static 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

161164
void 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

184187
void 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

Comments
 (0)