summaryrefslogtreecommitdiffstats
path: root/doc/FAQ/freesw.texi
blob: 5f082c69a04258dd991c7ad325cc92a2169264c7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
@c
@c  COPYRIGHT (c) 1988-2002.
@c  On-Line Applications Research Corporation (OAR).
@c  All rights reserved.
@c
@c  $Id$
@c


@node Free Software that Works with RTEMS, Development Tools, , Top

@chapter Free Software that Works with RTEMS
@ifinfo
@menu
* Development Tools::
* omniORB::
* TCL::
* ncurses::
* zlib::
@end menu
@end ifinfo

This section describes other free software packages that are known to work
with RTEMS.


@node Development Tools, Basic Development Environment, Free Software that Works with RTEMS, Free Software that Works with RTEMS

@section Development Tools
@ifinfo
@menu
* Basic Development Environment::
* GNU Ada::
* DDD - Data Display Debugger::
@end menu
@end ifinfo


@node Basic Development Environment, GNU Ada, Development Tools, Development Tools

@subsection Basic Development Environment

The standard RTEMS development environment consists of the following GNU
components:

@itemize @bullet

@item gcc
@item binutils
@item gdb

@end itemize

Although not from the Free Software Foundation, the Cygnus newlib C
library integrates well with the GNU tools and is a standard part of the
RTEMS development environment.


@node GNU Ada, DDD - Data Display Debugger, Basic Development Environment, Development Tools

@subsection GNU Ada

For those interested in using the Ada95 programming language, the GNU Ada
compiler (GNAT) is available and has excellent support for RTEMS.


@node DDD - Data Display Debugger, omniORB, GNU Ada, Development Tools

@subsection DDD - Data Display Debugger

By far the easiest way to use DDD if you are on a Redhat or SuSE Linux system
is to retrieve the RPM package for your OS version.  In general, it is
easier to install a static binary since doing so avoids all problems
with dynamic library versions.

Some versions of DDD have had trouble with Lesstif.  If you
are using Lesstif, you will need version 0.88 or newer.  It
is also available as an RPM at the popular sites.  Another Motif
clone is Motive and versions 1.2 and newer known to work with DDD
on popular distributions of Linux including RedHat and Slackware.

Installed as RPMs, DDD in conjunction with either Lesstif or Motive
should work out-of-the-box.

User comments indicate that both Lesstif and DDD can be built
from scratch without any problems.  Instructions on installing DDD
are at @uref{http://www.cs.tu-bs.de/softech/ddd/}.  They
indicate that

@itemize @bullet
LessTif should be used in (default) Motif 1.2 compatibility mode.

The Motif 2.0 compatibility mode of LessTif is still incomplete.
@end itemize

So configure lesstif with --enable-default-12.

The configure script is broken (see  www.lesstif.org --> known problems)
for 0.88.1. I didn't fix the script as they show, so I just have links
in /usr/local/lib (also shown).

Watch out: Lesstif installs its libraries in /usr/local/Lesstif. You
will need to update /etc/ld.so.conf and regenerate the cache of shared
library paths to point to the Motif 1.2 library.

The following notes are from an RTEMS user who uses DDD in conjunction
with Lesstif.  Configure DDD "--with-motif-libraries=/usr/local/lib
--with-motif-includes=/usr/local/include" DDD needs gnuplot 3.7.
@uref{ftp://ftp.dartmouth.edu/pub/gnuplot/gnuplot-3.7.tar.gz}. Build and
install from scratch.

DDD can be started from a script that specifies the cross debugger.
This simplifies the invocation.  The following example shows what
a script doing this looks like.

@example
#!/bin/bash
ddd --debugger m68k-elf-gdb $1
@end example

Under many flavors of UNIX, you will likely have to relax permissions.

On Linux, to get gdb to use the serial ports while running as a
normal user, edit /etc/security/console.perms, and create a <serial>
class (call it whatever you want).

@example
<serial>=/dev/ttyS* /dev/cua*
@end example

Now enable the change of ownership of these devices when users log in
from the console:

@example
<console> 0600 <serial> 0600 root
@end example

Users report using minicom to communicate with the target to initiate a TFTP
download. They then suspend minicom, launch DDD, and begin debugging.

The procedure should be the same on other platforms, modulo the choice
of terminal emulator program and the scheme used to access the serial
ports. From problem reports on the cygwin mailing list, it appears that
GDB has some problems communicating over serial lines on that platform.

NOTE: GDB does not like getting lots of input from the program under test
over the serial line. Actually, it does not care, but it looses
characters. It would appear that flow control is not re-enabled when it
resumes program execution. At times, it looked like the test were
failing, but everything was OK. We modified the MVME167 serial driver to
send test output to another serial port.  Using two serial ports is
usually the easiest way to get test output while retaining a reliable debug
connection regardless of the debugger/target combination.

NOTE: Enabling gdb's remote cache might prevent this (Observed with SH1
boards, but may also be valid for targets):
@example
gdb > set remotecache
@end example

Information provided by Charles-Antoine Gauthier (charles.gauthier@@iit.nrc.ca)
Jiri Gaisler (jgais@@ws.estec.esa.nl) and Ralf Cors@'epius
(corsepiu@@faw.uni-ulm.de)



@node omniORB, TCL, DDD - Data Display Debugger, Free Software that Works with RTEMS

@section omniORB

omniORB is a GPL'ed CORBA which has been ported to RTEMS.  It is
available from
(@uref{http://www.uk.research.att.com/omniORB/omniORB.html,http://www.uk.research.att.com/omniORB/omniORB.html})
.

For information on the RTEMS port of omniORB to RTEMS, see the following
URL
(@uref{http://www.connecttel.com/corba/rtems_omni.html,http://www.connecttel.com/corba/rtems_omni.html}).

C++ exceptions must work properly on your target for omniORB to work.

The port of omniORB to RTEMS was done by Rosimildo DaSilva
<rdasilva@@connecttel.com>.


@node TCL, ncurses, omniORB, Free Software that Works with RTEMS

@section TCL

Tool Command Language.

ditto


@node ncurses, zlib, TCL, Free Software that Works with RTEMS

@section ncurses

Free version of curses.

ditto



@node zlib, , ncurses, Free Software that Works with RTEMS

@section zlib

Free compression/decompression library.

ditto