Hello,
I'm using the bootloader as described in theapplication note spna188.
So far I made no changes to the provided firmware, other than some basic confiogurations to adapt it to my custom board.
The problem is that it gets stuck while trying to erase sector 0.
This is the relevant part of the code:
-----------------------------------------------------------------------------------------------------------
Fapi_issueAsyncCommandWithAddress(Fapi_EraseSector, eraseStartAddr); while( FAPI_CHECK_FSM_READY_BUSY == Fapi_Status_FsmBusy ); FAPI_GET_FSM_STATUS; while(FAPI_GET_FSM_STATUS != Fapi_Status_Success);
-----------------------------------------------------------------------------------------------------------
The call to FAPI_GET_FSM_STATUS always returns 0x11, indicating that the sector is locked.
Here is my linker file:
---------------------------------------------------
--retain="*(.intvecs)" MEMORY { VECTORS (X) : origin=0x00000000 length=0x00000020 FLASH_API (RX) : origin=0x00000020 length=0x000014E0 FLASH0 (RX) : origin=0x00001500 length=0x0005EB00 SRAM (RW) : origin=0x08002000 length=0x00006000 STACK (RW) : origin=0x08000000 length=0x00002000 } SECTIONS { .intvecs : {} > VECTORS flashAPI : { bl_flash.obj (.text) --library= ..\F021_API_CortexR4_LE.lib < FlashStateMachine.IssueFsmCommand.obj FlashStateMachine.SetActiveBank.obj FlashStateMachine.InitializeFlashBanks.obj FlashStateMachine.EnableMainSectors.obj FlashStateMachine.IssueFsmCommand.obj FlashStateMachine.ScaleFclk.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) } load = FLASH_API, run = SRAM, LOAD_START(api_load), RUN_START(api_run), SIZE(api_size) .text > FLASH0 .const > FLASH0 .cinit > FLASH0 .pinit > FLASH0 .data > SRAM .bss > SRAM }
Are there any extra steps to unlock the secors?
Thanks a lot for your help!