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