Skip to main content
TheOtherMarcus
Visitor II
September 23, 2021
Solved

On SPC563xx, are there any known problems with writing to Flash and runing code, i.e. interrupts, at the same time?

  • September 23, 2021
  • 1 reply
  • 802 views

I run code from Low and Mid address space and write to High address space in Flash C90LC. If I have interrupts enabled during write, the MCU frequently locks up.

    This topic has been closed for replies.
    Best answer by Erwan YVIN

    Hello Marcus ,

    no issue has been noticed

    Have you checked SPC563Mxx_RLA Flash Test Application for Discovery in SPC5Studio Tools Suite or RM0015 ?

     /*==================== Lock to Protect Shadow Row ====================*/
     returnCode = pSetLock( &ssdConfig, LOCK_SHADOW_PRIMARY, 1, FLASH_LMLR_PASSWORD );
     if ( C90FL_OK != returnCode )
     {
     ErrorTrap(returnCode);
     }
     
     returnCode = pSetLock( &ssdConfig, LOCK_SHADOW_SECONDARY, 1, FLASH_SLMLR_PASSWORD );
     if ( C90FL_OK != returnCode )
     {
     ErrorTrap(returnCode);
     }
     
     
     /*====== Unlock all blocks in low address space ======*/
     returnCode = pGetLock( &ssdConfig, LOCK_LOW_PRIMARY, &blkLockEnabled, &blkLockState );
     if ( C90FL_OK != returnCode )
     {
     ErrorTrap(returnCode);
     }
     
     returnCode = pSetLock( &ssdConfig, LOCK_LOW_PRIMARY, (blkLockState & 0xFFFFFF00), FLASH_LMLR_PASSWORD);
     if ( C90FL_OK != returnCode )
     {
     ErrorTrap(returnCode);
     }
     
     	returnCode = pGetLock( &ssdConfig, LOCK_LOW_SECONDARY, &blkLockEnabled, &blkLockState );
     if ( C90FL_OK != returnCode )
     {
     ErrorTrap(returnCode);
     }
     
     returnCode = pSetLock( &ssdConfig, LOCK_LOW_SECONDARY, (blkLockState & 0xFFFFFF00), FLASH_SLMLR_PASSWORD);
     if ( C90FL_OK != returnCode )
     {
     ErrorTrap(returnCode);
     }

    Best Regards

    Erwan

    1 reply

    Erwan YVIN
    Erwan YVINBest answer
    ST Employee
    September 29, 2021

    Hello Marcus ,

    no issue has been noticed

    Have you checked SPC563Mxx_RLA Flash Test Application for Discovery in SPC5Studio Tools Suite or RM0015 ?

     /*==================== Lock to Protect Shadow Row ====================*/
     returnCode = pSetLock( &ssdConfig, LOCK_SHADOW_PRIMARY, 1, FLASH_LMLR_PASSWORD );
     if ( C90FL_OK != returnCode )
     {
     ErrorTrap(returnCode);
     }
     
     returnCode = pSetLock( &ssdConfig, LOCK_SHADOW_SECONDARY, 1, FLASH_SLMLR_PASSWORD );
     if ( C90FL_OK != returnCode )
     {
     ErrorTrap(returnCode);
     }
     
     
     /*====== Unlock all blocks in low address space ======*/
     returnCode = pGetLock( &ssdConfig, LOCK_LOW_PRIMARY, &blkLockEnabled, &blkLockState );
     if ( C90FL_OK != returnCode )
     {
     ErrorTrap(returnCode);
     }
     
     returnCode = pSetLock( &ssdConfig, LOCK_LOW_PRIMARY, (blkLockState & 0xFFFFFF00), FLASH_LMLR_PASSWORD);
     if ( C90FL_OK != returnCode )
     {
     ErrorTrap(returnCode);
     }
     
     	returnCode = pGetLock( &ssdConfig, LOCK_LOW_SECONDARY, &blkLockEnabled, &blkLockState );
     if ( C90FL_OK != returnCode )
     {
     ErrorTrap(returnCode);
     }
     
     returnCode = pSetLock( &ssdConfig, LOCK_LOW_SECONDARY, (blkLockState & 0xFFFFFF00), FLASH_SLMLR_PASSWORD);
     if ( C90FL_OK != returnCode )
     {
     ErrorTrap(returnCode);
     }

    Best Regards

    Erwan