Skip to content

Commit 7d06005

Browse files
committed
stm32f072xx_hic: remove bank2 handling for flash
1 parent 0ee51b3 commit 7d06005

File tree

1 file changed

+14
-60
lines changed
  • source/hic_hal/stm32/stm32f072xx

1 file changed

+14
-60
lines changed

source/hic_hal/stm32/stm32f072xx/flash.c

Lines changed: 14 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,12 @@
2626
extern FLASH_ProcessTypeDef pFlash;
2727
extern void FLASH_PageErase(uint32_t PageAddress);
2828

29-
#define __wait_todo() util_assert(0)
30-
3129
static uint32_t FlashInitStatus = 0;
3230

3331
uint32_t Init(uint32_t adr, uint32_t clk, uint32_t fnc)
3432
{
3533
FlashInitStatus |= 1 << fnc;
36-
if (FlashInitStatus)
37-
{
34+
if (FlashInitStatus) {
3835
HAL_FLASH_Unlock();
3936
}
4037
return 0;
@@ -43,22 +40,19 @@ uint32_t Init(uint32_t adr, uint32_t clk, uint32_t fnc)
4340
uint32_t UnInit(uint32_t fnc)
4441
{
4542
FlashInitStatus &= ~(1 << fnc);
46-
if (!FlashInitStatus)
47-
{
43+
if (!FlashInitStatus) {
4844
HAL_FLASH_Lock();
4945
}
5046
return 0;
5147
}
5248

5349
uint32_t BlankCheck(uint32_t adr, uint32_t sz, uint8_t pat)
5450
{
55-
__wait_todo();
5651
return 0;
5752
}
5853

5954
uint32_t EraseChip(void)
6055
{
61-
__wait_todo();
6256
return 0;
6357
}
6458

@@ -69,28 +63,15 @@ uint32_t EraseSector(uint32_t adr)
6963
util_assert(IS_FLASH_NB_PAGES(adr, 1));
7064

7165
__HAL_LOCK(&pFlash);
72-
#if defined(FLASH_BANK2_END)
73-
if (adr > FLASH_BANK1_END)
74-
{
75-
if (FLASH_WaitForLastOperationBank2(FLASH_TIMEOUT_VALUE) == HAL_OK)
76-
{
77-
FLASH_PageErase(adr);
78-
status = FLASH_WaitForLastOperationBank2(FLASH_TIMEOUT_VALUE);
79-
CLEAR_BIT(FLASH->CR2, FLASH_CR2_PER);
80-
}
81-
}
82-
else
83-
#endif
84-
{
85-
if (FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE) == HAL_OK)
86-
{
87-
FLASH_PageErase(adr);
88-
status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
89-
CLEAR_BIT(FLASH->CR, FLASH_CR_PER);
90-
}
66+
67+
if (FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE) == HAL_OK) {
68+
FLASH_PageErase(adr);
69+
status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
70+
CLEAR_BIT(FLASH->CR, FLASH_CR_PER);
9171
}
9272

9373
__HAL_UNLOCK(&pFlash);
74+
9475
return status != HAL_OK;
9576
}
9677

@@ -105,39 +86,13 @@ uint32_t ProgramPage(uint32_t adr, uint32_t sz, uint32_t *buf)
10586

10687
__HAL_LOCK(&pFlash);
10788

108-
#if defined(FLASH_BANK2_END)
109-
if (adr <= FLASH_BANK1_END)
110-
{
111-
#endif /* FLASH_BANK2_END */
89+
status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
90+
91+
while (status == HAL_OK && sz > 0) {
92+
SET_BIT(FLASH->CR, FLASH_CR_PG);
93+
*(__IO uint16_t *)adr = *(uint16_t *)buf;
11294
status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
113-
#if defined(FLASH_BANK2_END)
114-
}
115-
else
116-
{
117-
status = FLASH_WaitForLastOperationBank2(FLASH_TIMEOUT_VALUE);
118-
}
119-
#endif /* FLASH_BANK2_END */
120-
121-
while (status == HAL_OK && sz > 0)
122-
{
123-
#if defined(FLASH_BANK2_END)
124-
if (adr <= FLASH_BANK1_END)
125-
{
126-
#endif /* FLASH_BANK2_END */
127-
SET_BIT(FLASH->CR, FLASH_CR_PG);
128-
*(__IO uint16_t *)adr = *(uint16_t *)buf;
129-
status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
130-
CLEAR_BIT(FLASH->CR, FLASH_CR_PG);
131-
#if defined(FLASH_BANK2_END)
132-
}
133-
else
134-
{
135-
SET_BIT(FLASH->CR2, FLASH_CR2_PG);
136-
*(__IO uint16_t *)adr = buf;
137-
status = FLASH_WaitForLastOperationBank2(FLASH_TIMEOUT_VALUE);
138-
CLEAR_BIT(FLASH->CR2, FLASH_CR2_PG);
139-
}
140-
#endif /* FLASH_BANK2_END */
95+
CLEAR_BIT(FLASH->CR, FLASH_CR_PG);
14196
sz -= sizeof(uint16_t);
14297
adr += sizeof(uint16_t);
14398
buf = (uint32_t *)(((uint16_t *)buf) + 1);
@@ -150,6 +105,5 @@ uint32_t ProgramPage(uint32_t adr, uint32_t sz, uint32_t *buf)
150105

151106
uint32_t Verify(uint32_t adr, uint32_t sz, uint32_t *buf)
152107
{
153-
__wait_todo();
154108
return 0;
155109
}

0 commit comments

Comments
 (0)