Did you have close interrupt? if you operate FLASH, you must close interrupt .
/* Erase the two PFlash sector */
size = FEATURE_FLS_PF_BLOCK_SECTOR_SIZE*2;
ret = FLASH_DRV_EraseSector(&flashSSDConfig, address, size);
if (ret != STATUS_SUCCESS)
have you disabled interrupts before jumping to user app? It is also good idea to reconfigure the device to default reset state. Or the user app must be aware that not everything is in default reset state.
If you step the asm code, are you able to get to start up code of user app? Where does it crash?