stm32/h7: Implemented a function for getting back a bank's status flags

This commit is contained in:
dragonmux
2024-05-23 12:00:42 +01:00
committed by Piotr Esden-Tempski
parent 3a1b9861c7
commit 48cc714746
2 changed files with 8 additions and 0 deletions

View File

@@ -206,6 +206,8 @@ bool flash_is_busy(enum flash_bank bank);
void flash_clear_eop_flag(enum flash_bank bank);
/** Clear all status flags. */
void flash_clear_status_flags(enum flash_bank bank);
/** Get back the status flags for a bank. */
uint32_t flash_get_status_flags(enum flash_bank bank);
/** Wait until Last Operation has Ended.
* This loops indefinitely until an operation (write or erase) has completed by
* testing for EOP and nothing being left in the queue.

View File

@@ -115,6 +115,12 @@ void flash_clear_status_flags(const enum flash_bank bank)
REBASE(FLASH_CCR) = FLASH_SR_ERROR_MASK | FLASH_SR_EOP;
}
uint32_t flash_get_status_flags(enum flash_bank bank)
{
const uintptr_t bank_base_address = flash_bank_address(bank);
return REBASE(FLASH_SR) & FLASH_SR_ERROR_MASK;
}
bool flash_wait_for_last_operation(const enum flash_bank bank)
{
const uintptr_t bank_base_address = flash_bank_address(bank);