1 |
1026 |
ivang |
@c
|
2 |
|
|
@c COPYRIGHT (c) 1988-2002.
|
3 |
|
|
@c On-Line Applications Research Corporation (OAR).
|
4 |
|
|
@c All rights reserved.
|
5 |
|
|
@c
|
6 |
|
|
@c freesw.t,v 1.10 2002/01/17 21:47:44 joel Exp
|
7 |
|
|
@c
|
8 |
|
|
|
9 |
|
|
@chapter Free Software that Works with RTEMS
|
10 |
|
|
|
11 |
|
|
This section describes other free software packages that are known to work
|
12 |
|
|
with RTEMS.
|
13 |
|
|
|
14 |
|
|
@section Development Tools
|
15 |
|
|
|
16 |
|
|
@subsection Basic Development Environment
|
17 |
|
|
|
18 |
|
|
The standard RTEMS development environment consists of the following GNU
|
19 |
|
|
components:
|
20 |
|
|
|
21 |
|
|
@itemize @bullet
|
22 |
|
|
|
23 |
|
|
@item gcc
|
24 |
|
|
@item binutils
|
25 |
|
|
@item gdb
|
26 |
|
|
|
27 |
|
|
@end itemize
|
28 |
|
|
|
29 |
|
|
Although not from the Free Software Foundation, the Cygnus newlib C
|
30 |
|
|
library integrates well with the GNU tools and is a standard part of the
|
31 |
|
|
RTEMS development environment.
|
32 |
|
|
|
33 |
|
|
@subsection GNU Ada
|
34 |
|
|
|
35 |
|
|
For those interested in using the Ada95 programming language, the GNU Ada
|
36 |
|
|
compiler (GNAT) is available and has excellent support for RTEMS.
|
37 |
|
|
|
38 |
|
|
@subsection DDD - Data Display Debugger
|
39 |
|
|
|
40 |
|
|
By far the easiest way to use DDD if you are on a Redhat or SuSE Linux system
|
41 |
|
|
is to retrieve the RPM package for your OS version. In general, it is
|
42 |
|
|
easier to install a static binary since doing so avoids all problems
|
43 |
|
|
with dynamic library versions.
|
44 |
|
|
|
45 |
|
|
Some versions of DDD have had trouble with Lesstif. If you
|
46 |
|
|
are using Lesstif, you will need version 0.88 or newer. It
|
47 |
|
|
is also available as an RPM at the popular sites. Another Motif
|
48 |
|
|
clone is Motive and versions 1.2 and newer known to work with DDD
|
49 |
|
|
on popular distributions of Linux including RedHat and Slackware.
|
50 |
|
|
|
51 |
|
|
Installed as RPMs, DDD in conjunction with either Lesstif or Motive
|
52 |
|
|
should work out-of-the-box.
|
53 |
|
|
|
54 |
|
|
User comments indicate that both Lesstif and DDD can be built
|
55 |
|
|
from scratch without any problems. Instructions on installing DDD
|
56 |
|
|
are at @uref{http://www.cs.tu-bs.de/softech/ddd/}. They
|
57 |
|
|
indicate that
|
58 |
|
|
|
59 |
|
|
@itemize @bullet
|
60 |
|
|
LessTif should be used in (default) Motif 1.2 compatibility mode.
|
61 |
|
|
|
62 |
|
|
The Motif 2.0 compatibility mode of LessTif is still incomplete.
|
63 |
|
|
@end itemize
|
64 |
|
|
|
65 |
|
|
So configure lesstif with --enable-default-12.
|
66 |
|
|
|
67 |
|
|
The configure script is broken (see www.lesstif.org --> known problems)
|
68 |
|
|
for 0.88.1. I didn't fix the script as they show, so I just have links
|
69 |
|
|
in /usr/local/lib (also shown).
|
70 |
|
|
|
71 |
|
|
Watch out: Lesstif installs its libraries in /usr/local/Lesstif. You
|
72 |
|
|
will need to update /etc/ld.so.conf and regenerate the cache of shared
|
73 |
|
|
library paths to point to the Motif 1.2 library.
|
74 |
|
|
|
75 |
|
|
The following notes are from an RTEMS user who uses DDD in conjunction
|
76 |
|
|
with Lesstif. Configure DDD "--with-motif-libraries=/usr/local/lib
|
77 |
|
|
--with-motif-includes=/usr/local/include" DDD needs gnuplot 3.7.
|
78 |
|
|
@uref{ftp://ftp.dartmouth.edu/pub/gnuplot/gnuplot-3.7.tar.gz}. Build and
|
79 |
|
|
install from scratch.
|
80 |
|
|
|
81 |
|
|
DDD can be started from a script that specifies the cross debugger.
|
82 |
|
|
This simplifies the invocation. The following example shows what
|
83 |
|
|
a script doing this looks like.
|
84 |
|
|
|
85 |
|
|
@example
|
86 |
|
|
#!/bin/bash
|
87 |
|
|
ddd --debugger m68k-elf-gdb $1
|
88 |
|
|
@end example
|
89 |
|
|
|
90 |
|
|
Under many flavors of UNIX, you will likely have to relax permissions.
|
91 |
|
|
|
92 |
|
|
On Linux, to get gdb to use the serial ports while running as a
|
93 |
|
|
normal user, edit /etc/security/console.perms, and create a
|
94 |
|
|
class (call it whatever you want).
|
95 |
|
|
|
96 |
|
|
@example
|
97 |
|
|
=/dev/ttyS* /dev/cua*
|
98 |
|
|
@end example
|
99 |
|
|
|
100 |
|
|
Now enable the change of ownership of these devices when users log in
|
101 |
|
|
from the console:
|
102 |
|
|
|
103 |
|
|
@example
|
104 |
|
|
0600 0600 root
|
105 |
|
|
@end example
|
106 |
|
|
|
107 |
|
|
Users report using minicom to communicate with the target to initiate a TFTP
|
108 |
|
|
download. They then suspend minicom, launch DDD, and begin debugging.
|
109 |
|
|
|
110 |
|
|
The procedure should be the same on other platforms, modulo the choice
|
111 |
|
|
of terminal emulator program and the scheme used to access the serial
|
112 |
|
|
ports. From problem reports on the cygwin mailing list, it appears that
|
113 |
|
|
GDB has some problems communicating over serial lines on that platform.
|
114 |
|
|
|
115 |
|
|
NOTE: GDB does not like getting lots of input from the program under test
|
116 |
|
|
over the serial line. Actually, it does not care, but it looses
|
117 |
|
|
characters. It would appear that flow control is not re-enabled when it
|
118 |
|
|
resumes program execution. At times, it looked like the test were
|
119 |
|
|
failing, but everything was OK. We modified the MVME167 serial driver to
|
120 |
|
|
send test output to another serial port. Using two serial ports is
|
121 |
|
|
usually the easiest way to get test output while retaining a reliable debug
|
122 |
|
|
connection regardless of the debugger/target combination.
|
123 |
|
|
|
124 |
|
|
NOTE: Enabling gdb's remote cache might prevent this (Observed with SH1
|
125 |
|
|
boards, but may also be valid for targets):
|
126 |
|
|
@example
|
127 |
|
|
gdb > set remotecache
|
128 |
|
|
@end example
|
129 |
|
|
|
130 |
|
|
Information provided by Charles-Antoine Gauthier (charles.gauthier@@iit.nrc.ca)
|
131 |
|
|
Jiri Gaisler (jgais@@ws.estec.esa.nl) and Ralf Cors@'epius
|
132 |
|
|
(corsepiu@@faw.uni-ulm.de)
|
133 |
|
|
|
134 |
|
|
|
135 |
|
|
@section omniORB
|
136 |
|
|
|
137 |
|
|
omniORB is a GPL'ed CORBA which has been ported to RTEMS. It is
|
138 |
|
|
available from
|
139 |
|
|
(@uref{http://www.uk.research.att.com/omniORB/omniORB.html,http://www.uk.research.att.com/omniORB/omniORB.html})
|
140 |
|
|
.
|
141 |
|
|
|
142 |
|
|
For information on the RTEMS port of omniORB to RTEMS, see the following
|
143 |
|
|
URL
|
144 |
|
|
(@uref{http://www.connecttel.com/corba/rtems_omni.html,http://www.connecttel.com/corba/rtems_omni.html}).
|
145 |
|
|
|
146 |
|
|
C++ exceptions must work properly on your target for omniORB to work.
|
147 |
|
|
|
148 |
|
|
The port of omniORB to RTEMS was done by Rosimildo DaSilva
|
149 |
|
|
.
|
150 |
|
|
|
151 |
|
|
@section TCL
|
152 |
|
|
|
153 |
|
|
Tool Command Language.
|
154 |
|
|
|
155 |
|
|
ditto
|
156 |
|
|
|
157 |
|
|
@section ncurses
|
158 |
|
|
|
159 |
|
|
Free version of curses.
|
160 |
|
|
|
161 |
|
|
ditto
|
162 |
|
|
|
163 |
|
|
|
164 |
|
|
@section zlib
|
165 |
|
|
|
166 |
|
|
Free compression/decompression library.
|
167 |
|
|
|
168 |
|
|
ditto
|
169 |
|
|
|