This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

RM44L520: Problem with ECC generation using Fapi_issueProgrammingCommand( , , , Fapi_AutoEccGeneration) being saved as 0x00000000

Part Number: RM44L520

Tool/software:

Hello Team.

 have implemented the program download function using Fapi_issueProgrammingCommand( , , , Fapi_AutoEccGeneration) API.

However, when downloading the program to BANK0 0x00000000 address, the ECC calculation becomes 0x00000000 and is written to 0xF0400000.

I have confirmed that the program is downloaded normally to Bank0.

Also, when downloading using J-Tag, the program operates normally. (Auto ECC Generation is set)

At this time, when checking the 0xF0400000 address, the ECC value is stored normally.

The Link script file is as follows.

/* Linker Settings                                                            */

--retain="*(.intvecs)"

/* USER CODE BEGIN (1) */
/* USER CODE END */

/*----------------------------------------------------------------------------*/
/* Memory Map                                                                 */

MEMORY
{
    VECTORS (X)  : origin=0x00000000 length=0x00000200
    FLASH_API (RX)  : origin=0x00000200 length=0x00001E00 // fill=0xffffffff
    FLASH0  (RX) : origin=0x00002000 length=0x003e000 // (0x40000  - size(FLASH_API) - size(VECTORS)) //fill=0xffffffff
    STACKS  (RW) : origin=0x08000000 length=0x00003000
    RAM     (RW) : origin=0x08003000 length=0x0001d000

/* USER CODE BEGIN (2) */
/* USER CODE END */
}

/* USER CODE BEGIN (3) */
/* USER CODE END */

/*----------------------------------------------------------------------------*/
/* Section Configuration                                                      */

SECTIONS
{
   .excpt_vecs 	: START( ulFlashStartAddr ) {} palign=8 > VECTORS


    .intvecs : {} > VECTORS
    .text    : {} > FLASH0
    .const   : {} > FLASH0 //END( ulFlashEndAddr ) {} palign=8 > FLASH0
    .cinit   : {} > FLASH0
    .pinit   : {} > FLASH0
    .bss     : {} > RAM
    .data    : {} > RAM
    .sysmem  : {} > RAM
    flashAPI :
    {
     --library= ..\F021_LIB\F021_API_CortexR4_LE.lib < FlashStateMachine.IssueFsmCommand.obj
     									  FlashStateMachine.SetActiveBank.obj
     									  FlashStateMachine.InitializeFlashBanks.obj
     									  FlashStateMachine.EnableMainSectors.obj
     									  FlashStateMachine.IssueFsmCommand.obj
    									  FlashStateMachine.ScaleFclk.obj
    									  FlashStateMachine.EnableEepromSectors.obj
                                          Init.obj
                                          Utilities.CalculateEcc.obj
                                          Utilities.WaitDelay.obj
                                          Utilities.CalculateFletcher.obj
                                          Read.MarginByByte.obj
                                          Read.Common.obj
                                          Read.FlushPipeline.obj
     									  Read.WdService.obj
                                          Async.WithAddress.obj
                                          Program.obj > (.text)
                ..\Debug\HM\source\FlashDrv.obj  (.text)
    } palign=8, load = FLASH_API, run = 0x0801c000, LOAD_START(api_load), RUN_START(api_run), SIZE(api_size)
    

/* USER CODE BEGIN (4) */
/* USER CODE END */
}

I have confirmed that it operates normally in another project using RM44L520 using the same Link Script file and Download code.

Why does this problem occur? If you have any suggestions for a solution, please let me know.

Best regards

Gene