/* Programs a word (32-bit) at a specified address.  */
FMC_STATUS_T FMC_ProgramWord(uint32_t address, uint32_t data)
/* Programs a word (32-bit) at a specified address.  */
FMC_STATUS_T FMC_ProgramWord(uint32_t address, uint32_t data)
{
    FMC_STATUS_T status = FMC_COMPLETE;
    status = FMC_WaitForLastOperation();
    if (status == FMC_COMPLETE)
    {
        FMC->CTRL &= 0xFFFFFCFF;
        FMC->CTRL |= FMC_PSIZE_WORD;
        FMC->CTRL |= FMC_CTRL_PG;
        *(__IO uint32_t *)address = data;
        status = FMC_WaitForLastOperation();
        FMC->CTRL &= (~FMC_CTRL_PG);
    }
    return status;
}