[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