URL
https://opencores.org/ocsvn/or1k_old/or1k_old/trunk
Subversion Repositories or1k_old
[/] [or1k_old/] [trunk/] [mw/] [src/] [rtems/] [readme.rtems] - Rev 1782
Compare with Previous | Blame | View Log
RTEMS Setup
===========
This file provide instructions on how to configure and build Microwindows
for RTEMS. It is assumed that you are familiar enough with RTEMS and Microwindows,
and have a development environment that works with both systems. If you are not,
it is encouraged to play around with each one these packages first, separately,
before you start mixing them together.
NOTE: Microwindows code does not compile when ITRON API is enabled -- need fix
a) RTEMS --- Patching & Building
==========================
+ Download RTEMS source (rtems-4.5.0-beta3.tgz) from Oarcorp.
+ make a build directory
mkdir work
+ untar rtems beta3
cd work
tar xzf rtems-4.5.0-beta3.tgz
+ Download rtems and microwindows patches from Rosimildo's site.
- rtems-4.5.0beta2-microwin-0.88.patch
- microwin-088pre7-rtems.patch
+ Apply rtems-4.5.0beta3-microwin-0.88.patch.
cd rtems-4.5.0-beta3
patch -p1 <../rtems-4.5.0beta3-microwin-0.88.patch
NOTE: find . -name "*.rej", t check for rejects.
# Regenerate some RTEMS build structure. You may need to update
# autoconf and automake packages on your machine.
./bootstrap
+ Mouse driver setup:
This needs to be improved later. Right now this is utter complex.
It reminds me setting up GRUB. :-).
You need to edit the device driver table in rtemscfg.h, around line 61.
There are two "/dev/mouse" drivers on RTEMS. Only one of them can be
loaded on the system. Select the one that fits your needs.
i) for PS/2 mouse:
Select to load PAUX_DRIVER_TABLE_ENTRY in the device driver table. You
would do this, defining PS2_MOUSE in the file rtemscfg.h before the
device driver table.
#define PS2_MOUSE
ii) Serial Mouse
-- Select the mouse type: "ms", "pc". Most serial mouses are microsoft ( "ms" )
compatible. This is the default selection.
-- Select serial port -- defaul is COM1
Both selections are made in the header file:
$RTEMS_SOURCE)/c/src/lib/libbsp/i386/pc386/console/serial_mouse.h
around line 72.
[snip from $RTEMS_SOURCE)/c/src/lib/libbsp/i386/pc386/console/serial_mouse.h ]
/* Select the mouse type: "ms","pc","ps2" */
#define MOUSE_TYPE "ms"
/* Select the serial port used by the mouse driver */
#define SERIAL_MOUSE_COM1 1
/* #define SERIAL_MOUSE_COM2 1 */
IMPORTANT: Any change on one of these settings, requires recompilation of RTEMS.
Configure and install RTEMS. This assumes RPMs are installed
and tools are available as /opt/rtems. You will need to
be able to write into the /opt/rtems directory so you will
likely have to be root to do the "make install" step.
I am using the c build scripts and you should look
at user.cfg to make sure it is OK for you.
./bit_rtems i386 pc386
# takes a while and ends up with /opt/rtems/pc386 installed
b) MicroWindows --- Patching & Building
=======================================
+ Downloaded Microwindows source (microwindows-0.88pre7.tar.gz) from censoft.
+ make a build directory
mkdir work
+ untar microwindows
cd work
tar xzf microwindows-0.88pre7.tar.gz
+ Apply microwin-088pre7-rtems.patch.
cd microwin
patch -p1 <../microwin-088pre7-rtems.patch
Found readme.rtems in microwin source:
bash$ find . -name "readme.rtems"
./src/rtems/readme.rtems
Per readme.rtems use config.rtems for Microwindows.
cd microwin
cd src
cp config config.SHIP
cp config.rtems config
Edit config to localize it. Make sure these variables are
set as shown below:
RTEMSTOOLSPREFIX = i386-rtems-
RTEMS_BUILD = /opt/rtems
Now build microwindows:
cd src
make
NOTE: This does not build the demos.
Now build the demos.
src/rtems/Makefile.rtems is intended to be used to each of the
demos. You have a couple of issues...
+ This builds whatever demo is selected by the definition
of MAIN_OBJ around line 52 of Makefile.rtems.
+ This produces rtems.exe for each demo. It is quite large
so you might want to strip it like this:
bash$ cp rtems.exe rtems_nosym.exe
bash$ i386-rtems-strip rtems_nosym.exe
c) Microwindows Configuration
=============================
NOTE: You can use the default configuration for RTEMS --
copy config.rtems to config
--> or
1. Select the architecture to be RTEMS. :-)
ARCH = RTEMS
2. No demos are built for RTEMS. Later, using the Makefile under the
rtems directory you can select whatever you need to build. This is because
RTEMS requires special configuration tables, and a definition of the
"Init" task.
+ A demo is selected by the definition of MAIN_OBJ around line 52
of Makefile.rtems.
MICROWINDEMO = N
NANOXDEMO = N
3. color scheme -- ( unless you wrote the super-duper video driver for RTEMS )
SCREEN_PIXTYPE = PF_PALETTE
4. Nano-X server linked with client as a single executable
LINK_APP_INTO_SERVER = Y
5.1. Enable the Micro FrameBuffer interface.
FRAMEBUFFER = Y
FBVGA = Y
==> or
5.2. For SVGALIB -- This requires you have the SVGALIB support under RTEMS.
Please go to this site for more information:
http://members/xoom.com/rosimildo/rtems_svga.html
LIBVGA = Y
c) KBD & MOUSE Test
===================
A test program has been added to help debugging the input devices. It is
called rtems/mw_uid_test.cc. Modify the Makefile to build it. It'll help
making sure that mouse&kbd works.
Credits
=======
I'd like to Thank Joel Sherrill for going over the original notes, and
prividing me with his own notes to be merged here.
Good Luck !!!.
Rosimildo.