I add one line in IAP before it calls the FreeRTOS : asm ("MSR CPSR_c, #0x13); to config CPU mode to supervisor mode , but FreeRTOS can’t execute , too .
Because IAP exchanged bank0 and bank1 position in flash , and I found in FreeRTOS source file lnkarm_flash.xcl have the following commands :
// Code memory in flash
-DROMSTART=0x00000000
-DROMEND=0x00080000
-DVECSTART=ROMSTART
so I change it to :
-DROMSTART=0x00080000
-DROMEND=0x03FFFFFF
-DVECSTART=ROMSTART
But it doesn’t work.
I also found source file main.c , the prvSetupHardware function have:
/*Set Flash banks size & address */
FMI_BankRemapConfig( 4, 2, 0, 0x80000 );
and I change it to :
FMI_BankRemapConfig( 2, 4, 0, 0x80000 );
It doesn’t work , too .
I don’t know why the FreeRTOS still can’t run now.