IAP(In-Application Programming) with FreeRTOS

nobody wrote on Tuesday, March 13, 2007:

I install ST’s IAP (http://www.st.com/stonline/products/literature/an/12951.htm) on STR910-EVAL and it can download program by UART . Now I want to download FreeRTOS kernel , but it can’t execute normally.

I config the flash bank1 as boot bank . I try the example app in IAP , it can work , but my FreeRTOS can’t . Because I want to use IAP as bootloader.

Does any one have the same problem ?

nobody wrote on Tuesday, March 13, 2007:

Not a direct answer as I have never used the IAP, but when the freertos starts is the processor in supervisor mode?  If not then it will not start.

nobody wrote on Tuesday, March 13, 2007:

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.