Exemplo n.º 1
0
Arquivo: isp.c Projeto: kerichsen/asf
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);
}
Exemplo n.º 2
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;
}