/* Erases a specified 2 page in program memory in parallel.  */
FLASH_Status FLASH_EraseParallelPage(uint32_t Page_Address1, uint32_t Page_Address2)
/* Erases a specified 2 page in program memory in parallel.  */
FLASH_Status FLASH_EraseParallelPage(uint32_t Page_Address1, uint32_t Page_Address2)
{
  FLASH_Status status = FLASH_COMPLETE;
  status = WaitForLastOperation(FLASH_ER_PRG_TIMEOUT);
  if(status == FLASH_COMPLETE)
  {
    FLASH->PECR |= FLASH_PECR_PARALLBANK;
    FLASH->PECR |= FLASH_PECR_ERASE;
    FLASH->PECR |= FLASH_PECR_PROG;
    *(__IO uint32_t *)Page_Address1 = 0x00000000;    
    *(__IO uint32_t *)Page_Address2 = 0x00000000;
    status = WaitForLastOperation(FLASH_ER_PRG_TIMEOUT);
    FLASH->PECR &= (uint32_t)(~FLASH_PECR_PROG);
    FLASH->PECR &= (uint32_t)(~FLASH_PECR_ERASE);
    FLASH->PECR &= (uint32_t)(~FLASH_PECR_PARALLBANK);   
  }
  return status;
}