Part Number: TMS320F28388D
Other Parts Discussed in Thread: C2000WARE
Hi,
I using F28388D controller, i am facing a strange behaviour.
I am running a individual scheduler of 500 micro sec, i am able to copy the data into the FLASH Sector 7,8,9 . but when i try to erase the sector 13 for CPU1 it does not happen i have a watchdog refresh at 10ms, but the same functionality works fine in CPU2 i can erase the sector 13. not understanding the difference in behaviour in 2 different CPUs
steps followed to erase the sector:
Flash_claimPumpSemaphore(FLASH_CPU1_WRAPPER);
Fapi_initializeAPI(F021_CPU0_BASE_ADDRESS,CPU_FREQUENCY_MHZ);
Fapi_setActiveFlashBank(Fapi_FlashBank0);
Fapi_issueAsyncCommandWithAddress(Fapi_EraseSector,0xBE000);
while (FdFlashOperationStatus() != Fapi_Status_FsmReady){}
FdFlashEraseVerify(0xBE000);
gstrCpu1IpcRegs.PUMPREQUEST.all = FLASH_PUMP_KEY (0x5A5A0000UL)
The macros used is provided below
typedef enum
{
FLASH_CPU1_WRAPPER = 0x2, //!< CPU1 Wrapper
FLASH_CPU2_WRAPPER = 0x1 //!< CPU2 Wrapper
}Flash_PumpOwnership;
//Define to map the direct access to the FMC registers
#define F021_CPU0_REGISTER_ADDRESS 0x0005F800
//Define to map the direct access to the FMC registers.
#define F021_CPU0_BASE_ADDRESS ((Fapi_FmcRegistersType *)F021_CPU0_REGISTER_ADDRESS)
#define CPU_FREQUENCY_MHZ 200
the same is followed every time erase is called . What could be the problem for this any pointers to check
Thanks,
Nagesh

