bool isp_erase_chip_split(void) { static uint16_t isp_page_number=0; uint8_t isp_page_number_split; if (isp_page_number==0) { isp_page_number = flash_api_get_page_count(); flash_api_lock_all_regions(false); } isp_page_number_split = 128; while (isp_page_number && isp_page_number_split) { flash_api_erase_page(--isp_page_number, false); isp_page_number_split--; } return (isp_page_number==0); }
status_code_t nvm_page_erase(mem_type_t mem, uint32_t page_number) { switch (mem) { case INT_FLASH: if (!flash_api_erase_page(page_number, true)) { return ERR_BAD_DATA; } break; case INT_USERPAGE: if (!flash_api_erase_user_page(true)) { return ERR_BAD_DATA; } break; default: return ERR_INVALID_ARG; } return STATUS_OK; }