Hi,

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 libcpu/i386. 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 handling.

This is implemented in POK and libpart.a is compiled and copied to rtems/libbsp/i386/virtPok.
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


Cheers,
Philipp
_______________________________________________
rtems-devel mailing list
rtems-devel@rtems.org
http://www.rtems.org/mailman/listinfo/rtems-devel

Reply via email to