cancel
Showing results for 
Search instead for 
Did you mean: 

Boot from external flash

marcus23
Associate II
Posted on October 12, 2004 at 09:39

Boot from external flash

4 REPLIES 4
marcus23
Associate II
Posted on October 07, 2004 at 09:37

Hello everyone,

did anyone ever got the STR710-EVAL-Board booting from external flash? If so, how did you load the image there? I wrote a little program, that runs in internal RAM and copies content from internal flash to external flash. The program to copy to the external flash was linked for external flash, converted to a plain binary file using FROMELF and loaded to internal flash using DEBUG->Register/Memory Operations -> Upload/download memory file... in RVDS. The program seems to start form external flash, but doesn´t really do the things it should do. What I actually try to do is to write a bootloder, that gets data from UART (i.e. from my PC) and copies them to external flash to run from there.

Another question: is there an FME-file available, that makes external flash of the STR710-EVAL-board visible to RVDK/RVDS?

Thanks in advance,

Marcus
marcus23
Associate II
Posted on October 07, 2004 at 13:35

Okay, I figured out the problem. It was a counting-loop in an interrupt, so that there was no processor-time for the main loop. Now I ask myself, why counting loops are much slower in external flash than in internal flash? Is the internal flash 32bits wide? I read, that in external boot mode there are 15 waitstates on bank 0, so one of my first commands in the program is

EMI_Config(0, EMI_ENABLE | EMI_WAITSTATE(0) | EMI_SIZE_16);

Will this work? If not, 15 waitstates would answer my question, why counting loops are soooo slow.

If someones needs to add visibility of external flash in RVDK/RVDS, try the attached STR710-EVAL.FME together with App.-Note 110 from ARM. You can program the external flash like internal flash with this file. If there are problems with it just ask.

Marcus

________________

Attachments :

STR710-EVAL.FME : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006Ht8w&d=%2Fa%2F0X0000000aJg%2FdztW2tk5m91hjGSk1bkf1rOeCaDQtjyfR2wmY4PrBQ0&asPdf=false
marcus23
Associate II
Posted on October 12, 2004 at 09:37

Hi ibtiss,

I´ve done everything as described in the Application Note 110 from ARM. This Document is available in their website. I used the files from the m56621evb-evalboard. They are in ARM/RVD/Core/1.7/283/win_32-pentium/flash/examples (1.7 may be 1.6.1 for RVDK). I was able to use these files, because the ST-flash has almost the same behaviour as the intel-flash. All I had to do was to open the blocks of the ST-flash before erasing them. This was the only addition to the intel-routine. See the attached project for the creation of an FME-File. But there´s one thing to mention: I wrote that file for a M28W640ECB-Flash, because I changed the flash on my eval-board. So you will need to change the ''block.2={count=127:size=64K}'' parameter to block.2={count=63:size=64K} or something (look at the flash-datasheet for this please). Then you have to change your .bcd file a little bit, to have external flash adressed at 0x60000000. It´s also described in AN110 (Sections ''Programming of supported targets'' and ''Example Port''. I hope it helps you.

With Best Regards,

Marcus

________________

Attachments :

STARM7.zip : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006HtBt&d=%2Fa%2F0X0000000aK6%2FTKaDCITe63XaUM0J1GlkqpxhEmgd90Chw51M2.I.mbQ&asPdf=false
marcus23
Associate II
Posted on October 12, 2004 at 09:39

This ''block.2={count=127:size=64K}'' is in the file ''Flash_ST.ame''...forgot to mention it.