RTEMS on Virtex 4

Sebastian Huber sebastian.huber at embedded-brains.de
Mon Jun 3 11:30:44 UTC 2013


if I build the virtex4 BSP with the current Git master, then I get:

powerpc-rtems4.11-size hello.exe
    text    data     bss     dec     hex filename
   80867    1960    3845   86672   15290 hello.exe

This is the base line for RTEMS on PowerPC with printf() and Termios (other 
BSPs have similar numbers).  It is possible to save some bytes with tricks, 
e.g. -ffunction-sections, -fdata-sections and -Wl,--gc-sections GCC options. 
As a rough estimate I would reserve at least 80KiB for the base RTEMS system on 

On 06/03/2013 11:43 AM, Gempeler Stefan wrote:
> Hi Sebastian and Joel,,
> thank you very much for your fast replies. Sorry if I ruined your weekend, Joel ;-)
>>/  you execute the program out of the RAM?/
> /  /
> Yes, that’s the plan. No additional memory (costs).

ok, and how do you boot the application?  Can't you execute from flash?

>>/  printf() and the Termios interface (do you need it?) needs a lot of code space/
>>/  and the PowerPC code itself is not very dense.  It is possible to strip down a/
>>/  RTEMS system, but in general RTEMS is not a ultra low code size system./
> I use the printk() to write data to the UART (also changed the printf() in
> c/src/lib/libbsp/powerpc/virtex/startup/bspstart.c: bsp_XAssertHandler() to
> printk() -> no printf() in elf file).

printk() works polled.

> Hmm, when I set
> I get no output anymore. We use the UART as a simple debug console (output can
> be directly written to UART, input interrupt driven).

Most console driver use Termios, so if you disable Termios, then the console 
driver doesn't work anymore.

>>/  The PowerPC BSPs should provide this interface:/
>>/  http://www.rtems.org/onlinedocs/doxygen/cpukit/html/group__rtems__interrupt__extension.html/
>>/  In case this doesn't work with the virtex4 BSP, then we should fix this./
> I already tried it with rtems_interrupt_handler_install(), but it seems to be
> missing in the libs:
> undefined reference to `rtems_interrupt_handler_install'
> collect2: error: ld returned 1 exit status

I looked at the BSP code and unfortunately this BSP uses the old IRQ support. 
Here you only have  BSP_install_rtems_irq_handler().

> virtex4 BSP: at the moment I use the virtex and not the virtex4 BSP because I
> don’t know how to get the UART stdio working.

The virtex4 BSP seems to have no working console driver (only a dummy driver).

Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.

More information about the users mailing list