I'm unable to erase a flash sector using the F021 API from controlSuite (January 22, 2015).
From C:\ti\controlSUITE\device_support\F2807x\v140\F2807x_common\lib I have linked F021_API_F2837xD_FPU32.lib and using headers from
C:\ti\controlSUITE\device_support\F2807x\v140\F2807x_common\include\FlashAPI
Hear's my flow:
InitFlash_Bank0(); (located in C:\ti\controlSUITE\device_support\F2807x\v140\F2807x_common\source\F2807xSysCtrl.c)
returnCheck = Fapi_initializeAPI(F021_CPU0_BASE_ADDRESS, 120);
returnCheck = Fapi_setActiveFlashBank(Fapi_FlashBank0);
returnCheck = Fapi_issueAsyncCommandWithAddress(Fapi_EraseSector, (uint32_t *) startAddress); (startAddress is 0x80000)
// Wait for Flash to go non-busy
while (Fapi_checkFsmForReady() == Fapi_Status_FsmBusy)
{
}
// Check for a clean FMSTAT register from the erase
flashStatus = Fapi_getFsmStatus();
if (flashStatus != 0)
{
}
flashStatus is: 0xC10
bits CSTAT, PCV and EV set
Fapi_getLibraryInfo() reports ApiMajorVersion 1 and ApiMinorVersion 54, Version 1.54
The API functions are running from RAM.
Any ideas on my failure.