Update:
I made a big mistake :S
I initialized Callback part of Flash-Driver-structure NULL instead of NULL_CALLBACK. ( flashSSDConfig.CallBack = NULL instead of flashSSDConfig.CallBack = NULL_CALLBACK);
This should explain why my program ran into default-ISR when calling FLASH_DRV_DEFlashPartition() and FLASH_DRV_EEEWrite().
Still there is one main issue remaining.
I do not want to wait after each write-access to EEE for the write operation to complete, which is why I only used FLASH_DRV_EEEWrite() for testing purposes.
Meaning if You write something like this instead of using FLASH_DRV_EEEWrite():
// Size > 4, address starting at FlexRAM-Startaddress
for(uint32_t Idx_U32 = 0; Idx_U32 < size; Idx_U32+=4)
{
*(volatile uint32_t *)address = sourceBuffer[Idx_U32];
address+=4;
}
-> You get issues as described in this thread.
Only if You wait, this will succeed.
for(uint32_t Idx_U32 = 0; Idx_U32 < size; Idx_U32+=4)
{
*(volatile uint32_t *)address = sourceBuffer[Idx_U32];
address+=4;
//Wait till EEERDY bit is set
while (0U == (FTFx_FCNFG & FTFx_FCNFG_EEERDY_MASK))
{
}
}
Is this behavior intended?
Should You have to wait after each write access before starting the next?
I read through AN11983 and did not get this impression.