[GSOC|virtLayer] hello sample compiles

Rempel, Cynthia cynt6007 at vandals.uidaho.edu
Wed Jun 19 16:02:18 UTC 2013

Hi Philipp,

Congratulations on getting this far! Thanks for submitting this to rtems-devel!

There might be a way to use AM_CONDITIONAL in c/src/wrapup/Makefile.am...
to conditionally build and include libpokpart.a...

Could you update the wiki page for this project as well explaining this process?
That way it'll be easier to find the write up (in case you'll need it) and others can use it...


From: rtems-devel-bounces at rtems.org [rtems-devel-bounces at rtems.org] on behalf of Philipp Eppelt [philipp.eppelt at mailbox.tu-dresden.de]
Sent: Wednesday, June 19, 2013 8:02 AM
To: Cláudio Silva; Joel Sherrill; Julien Delange; rtems-devel at rtems.org
Subject: [GSOC|virtLayer] hello sample compiles


I got the hello sample to compile.
This means the host library works in RTEMS.

But let's start at the beginning.

I separated libcpu and score and defined native and virtual CPU's in
The difference between the two are interrupts.h and _CPU_ISR_Set_level,
_CPU_Fatal_halt, _CPU_Thread_Idle_body. Native is using these functions
as they are defined for normal hardware, virtual translates these to
calls to the virtual Layer.

virtLayerCPU.h: Created, defining functions for interrupts, idle, error

This is implemented in POK and libpart.a is compiled and copied to
The virtPok makefile creates a new library file called libpokpart.a.
If libpart.a is not present, virtPok fails at compile time.

I thought 'noinst_LIBRARIES' would define the libraries going into
librtemsbsp.a but sadly this is not dynamic. I had to modify
c/src/wrapup/Makefile.am to include libpokpart.a. This is not final, as
it breaks all other BSPs ...

I still have issues with the GDT and IDT. But with a dummy variable
_Global_descriptor_table to prevent an unresolved dependency error, I
could compile the hello sample.

Hacky, but YAY. :)

I brought it back to POK as a partition, but it's failing to start this
partition. I didn't care for the start-up code yet, so this was expected.

What to take away from this:

The build process is semi automated and works so far.

Code: https://github.com/phipse/rtems/tree/virt-bsp

rtems-devel mailing list
rtems-devel at rtems.org

More information about the devel mailing list