[ECOS] redboot on STM32f4-discovery board

Oleg Uzenkov o.uzenkov@unicore.co.ua
Thu Oct 9 15:48:00 GMT 2014

Hello All,

I have tried to run redboot on a custom board (very similar to 
STM32f4-discovery board, so let's say that we have discovery in question).

I do understand that there is a little point to run redboot on a board 
without external RAM (due to memory limitations).

At this moment, I am not looking at loading and storing images via 
redboot (this would be the next step, the images will be small).

I just would like to get redboot working on a board without external RAM.

These are my findings so far:

1. I built redboot for ROM startup (applied relevant adjustings from 
stm3240g_eval's  redboot_rom.ecm)

2. flashed the board with redboot at 0x08000000

when CYGOPT_REDBOOT_FIS == 0 redboot loads, but is very unstable, can 
stop working any time... But, without Flash Image System I do not see 
how to use redboot to load and store and run images.

when CYGOPT_REDBOOT_FIS == 1  redboot hangs.  It happens when 
do_flash_init() runs (problem in memcpy , probably illigal memory access)

A question, can actually redboot work without external ram?

If yes, how to fit it properly? (the board has stm32f407VE with 128+64 
KB of internal ram, 512KB internal flash)

I would appreciate any input on this.


> On 03.10.2014 13:40, John Dallaway wrote:
>> Hi Oleg
>> On 02/10/14 09:47, Oleg Uzenkov wrote:
>>> I am working with eCos on STM32f4-discovery board.
>>> I would like to build a redboot loader that could choose and load
>>> binaries (eCos+app) stored in internal flash at power on.
>>> The eCos port for STM32f4-discovery has got a redboot option under
>>> Packages list in Templates. However it seems to be very minimalistic and
>>> also not functional. Also there is no specific configuration file like
>>> redboot_ROM.ecm.
>>> Please, could you give me directions as to making a functional redboot
>>> loader for STM32f4-discovery board.
>>> Would it make sense to build redboot for stm32x0g_eval board (redboot
>>> seems to be working) and adapt it for STM32f4-discovery board?
>>> I would appreciate any input on this.
>> To be clear, there is no support for RedBoot in the STM32F4-Discovery
>> platform HAL at present. The STM32F4-Discovery board offers only 128KiB
>> of contiguous on-chip RAM, so loading applications into RAM prior to
>> execution would limit the size of your applications quite considerably.
>> RedBoot would also consume some of the available RAM for its own data
>> structures.
>> If you are still interested in using RedBoot to load and launch your
>> applications, you will need to add the following to the
>> STM32F4-Discovery platform HAL package:
>> a) CDL items and memory layout files for RAM startup
>> b) CDL items for behaving as a ROM monitor and for working with a ROM
>>     monitor
>> c) RedBoot-specific CDL items and data structures
>> You will find examples of all the above in the STM32x0G_EVAL platform
>> HAL package, but keep in mind that the STM32x0G_EVAL boards feature
>> external RAM. The naming of memory regions and startup types is
>> therefore different. The STM32x0G_EVAL "ROMINT" and "SRAM" startup types
>> are broadly equivalent to the STM32F4-Discovery "ROM" and (proposed)
>> "RAM" startup types respectively.
> In addition, for example of RedBoot on a platform with only internal RAM
> you can look at Kinetis.
> Ilija
>> I hope this helps...
>> John Dallaway
>> eCos maintainer
>> http://www.dallaway.org.uk/john

Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

More information about the Ecos-discuss mailing list