[GSoC|virtLayer] HelloWorld sample runs

Philipp Eppelt philipp.eppelt at mailbox.tu-dresden.de
Mon Jul 8 18:56:03 UTC 2013


Hi,

I managed to compile and run the HelloWorld sample on POK. :)

Also I set up a blog explaining the build process (5 steps), the current 
development status of the POK and RTEMS side and some issues I faced 
(GDB, Memory & AADL Model).

Have a look:
http://phipse.github.io/rtems/


Here an excerpt from the posts:

# POK:
rtems-guest is the project containing the AADL model and user code to 
build a partition, which should later become RTEMS. The user code 
implements the virtualization layer.
After invoking make and letting ocarina(AADL compiler) generating code, 
the part1/Makefile needs to be modified to produce libpart.a - a library 
containing all objects necessary to run the partition, this means 
libpok.a and the user code objects.

# RTEMS:
The generated libpart.a needs to be provided to i386/virtPok BSP, the 
build process for this BSP will fail, if libpart.a is not present 
(Intended!).
Then a build directory needs to be created and configured with 
--target=i386-rtems4.11  --enable-rtemsbsp=virtPok

This will build the hello world sample and then fail. As the BSP is 
currently not providing a clock.

# POK again:
The binary - hello.exe - is a fully functional POK partition. So it goes 
back into the partition used to build libpart.a earlier and overwrite 
part1.elf.
After rebuilding the POK kernel binary, pok.elf, you can invoke 'make run'.

# Issue - Memory pointer:
At runtime the partition created a file buffering the writes to pass 
them as one to the kernel. The kernel then checks if the pointer is in 
the partitions memory area. This check failed, as the heap memory 
defined in model.aadl was to small to over RTEMS and POK requirements. 
After extending this, the pointer was valid.


Regards,
Philipp



More information about the devel mailing list