<!-- Copyright (C) 2003 Red Hat, Inc. -->
|
<!-- Copyright (C) 2003 Red Hat, Inc. -->
|
<!-- This material may be distributed only subject to the terms -->
|
<!-- This material may be distributed only subject to the terms -->
|
<!-- and conditions set forth in the Open Publication License, v1.0 -->
|
<!-- and conditions set forth in the Open Publication License, v1.0 -->
|
<!-- or later (the latest version is presently available at -->
|
<!-- or later (the latest version is presently available at -->
|
<!-- http://www.opencontent.org/openpub/). -->
|
<!-- http://www.opencontent.org/openpub/). -->
|
<!-- Distribution of the work or derivative of the work in any -->
|
<!-- Distribution of the work or derivative of the work in any -->
|
<!-- standard (paper) book form is prohibited unless prior -->
|
<!-- standard (paper) book form is prohibited unless prior -->
|
<!-- permission is obtained from the copyright holder. -->
|
<!-- permission is obtained from the copyright holder. -->
|
<HTML
|
<HTML
|
><HEAD
|
><HEAD
|
><TITLE
|
><TITLE
|
>Installation</TITLE
|
>Installation</TITLE
|
><meta name="MSSmartTagsPreventParsing" content="TRUE">
|
><meta name="MSSmartTagsPreventParsing" content="TRUE">
|
<META
|
<META
|
NAME="GENERATOR"
|
NAME="GENERATOR"
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
"><LINK
|
"><LINK
|
REL="HOME"
|
REL="HOME"
|
TITLE="eCos Reference Manual"
|
TITLE="eCos Reference Manual"
|
HREF="ecos-ref.html"><LINK
|
HREF="ecos-ref.html"><LINK
|
REL="UP"
|
REL="UP"
|
TITLE="eCos Synthetic Target"
|
TITLE="eCos Synthetic Target"
|
HREF="hal-synth-arch.html"><LINK
|
HREF="hal-synth-arch.html"><LINK
|
REL="PREVIOUS"
|
REL="PREVIOUS"
|
TITLE="Overview"
|
TITLE="Overview"
|
HREF="synth.html"><LINK
|
HREF="synth.html"><LINK
|
REL="NEXT"
|
REL="NEXT"
|
TITLE="Running a Synthetic Target Application"
|
TITLE="Running a Synthetic Target Application"
|
HREF="synth-running.html"></HEAD
|
HREF="synth-running.html"></HEAD
|
><BODY
|
><BODY
|
CLASS="REFENTRY"
|
CLASS="REFENTRY"
|
BGCOLOR="#FFFFFF"
|
BGCOLOR="#FFFFFF"
|
TEXT="#000000"
|
TEXT="#000000"
|
LINK="#0000FF"
|
LINK="#0000FF"
|
VLINK="#840084"
|
VLINK="#840084"
|
ALINK="#0000FF"
|
ALINK="#0000FF"
|
><DIV
|
><DIV
|
CLASS="NAVHEADER"
|
CLASS="NAVHEADER"
|
><TABLE
|
><TABLE
|
SUMMARY="Header navigation table"
|
SUMMARY="Header navigation table"
|
WIDTH="100%"
|
WIDTH="100%"
|
BORDER="0"
|
BORDER="0"
|
CELLPADDING="0"
|
CELLPADDING="0"
|
CELLSPACING="0"
|
CELLSPACING="0"
|
><TR
|
><TR
|
><TH
|
><TH
|
COLSPAN="3"
|
COLSPAN="3"
|
ALIGN="center"
|
ALIGN="center"
|
>eCos Reference Manual</TH
|
>eCos Reference Manual</TH
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
WIDTH="10%"
|
WIDTH="10%"
|
ALIGN="left"
|
ALIGN="left"
|
VALIGN="bottom"
|
VALIGN="bottom"
|
><A
|
><A
|
HREF="synth.html"
|
HREF="synth.html"
|
ACCESSKEY="P"
|
ACCESSKEY="P"
|
>Prev</A
|
>Prev</A
|
></TD
|
></TD
|
><TD
|
><TD
|
WIDTH="80%"
|
WIDTH="80%"
|
ALIGN="center"
|
ALIGN="center"
|
VALIGN="bottom"
|
VALIGN="bottom"
|
></TD
|
></TD
|
><TD
|
><TD
|
WIDTH="10%"
|
WIDTH="10%"
|
ALIGN="right"
|
ALIGN="right"
|
VALIGN="bottom"
|
VALIGN="bottom"
|
><A
|
><A
|
HREF="synth-running.html"
|
HREF="synth-running.html"
|
ACCESSKEY="N"
|
ACCESSKEY="N"
|
>Next</A
|
>Next</A
|
></TD
|
></TD
|
></TR
|
></TR
|
></TABLE
|
></TABLE
|
><HR
|
><HR
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
WIDTH="100%"></DIV
|
WIDTH="100%"></DIV
|
><H1
|
><H1
|
><A
|
><A
|
NAME="SYNTH-INSTALL">Installation</H1
|
NAME="SYNTH-INSTALL">Installation</H1
|
><DIV
|
><DIV
|
CLASS="REFNAMEDIV"
|
CLASS="REFNAMEDIV"
|
><A
|
><A
|
NAME="AEN17701"
|
NAME="AEN17701"
|
></A
|
></A
|
><H2
|
><H2
|
>Name</H2
|
>Name</H2
|
>Installation -- Preparing to use the synthetic target</DIV
|
>Installation -- Preparing to use the synthetic target</DIV
|
><DIV
|
><DIV
|
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
><A
|
><A
|
NAME="SYNTH-INSTALL-HOST"
|
NAME="SYNTH-INSTALL-HOST"
|
></A
|
></A
|
><H2
|
><H2
|
>Host-side Software</H2
|
>Host-side Software</H2
|
><P
|
><P
|
>To get the full functionality of the synthetic target, users must
|
>To get the full functionality of the synthetic target, users must
|
build and install the I/O auxiliary ecosynth and various support
|
build and install the I/O auxiliary ecosynth and various support
|
files. It is possible to develop applications for the synthetic target
|
files. It is possible to develop applications for the synthetic target
|
without the auxiliary, but only limited I/O facilities will be
|
without the auxiliary, but only limited I/O facilities will be
|
available. The relevant code resides in the <TT
|
available. The relevant code resides in the <TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>host</TT
|
>host</TT
|
> subdirectory of the synthetic target
|
> subdirectory of the synthetic target
|
architectural HAL package, and building it involves the standard
|
architectural HAL package, and building it involves the standard
|
<B
|
<B
|
CLASS="COMMAND"
|
CLASS="COMMAND"
|
>configure</B
|
>configure</B
|
>, <B
|
>, <B
|
CLASS="COMMAND"
|
CLASS="COMMAND"
|
>make</B
|
>make</B
|
>, and
|
>, and
|
<B
|
<B
|
CLASS="COMMAND"
|
CLASS="COMMAND"
|
>make install</B
|
>make install</B
|
> steps.
|
> steps.
|
</P
|
</P
|
><P
|
><P
|
>There are two main ways of building the host-side software. It is
|
>There are two main ways of building the host-side software. It is
|
possible to build both the generic host-side software and all
|
possible to build both the generic host-side software and all
|
package-specific host-side software, including the I/O auxiliary. in a
|
package-specific host-side software, including the I/O auxiliary. in a
|
single build tree. This involves using the
|
single build tree. This involves using the
|
<B
|
<B
|
CLASS="COMMAND"
|
CLASS="COMMAND"
|
>configure</B
|
>configure</B
|
> script at the toplevel of the eCos
|
> script at the toplevel of the eCos
|
repository, which will automatically search the <TT
|
repository, which will automatically search the <TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>packages</TT
|
>packages</TT
|
> hierarchy for host-side
|
> hierarchy for host-side
|
software. For more information on this, see the
|
software. For more information on this, see the
|
<TT
|
<TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>README.host</TT
|
>README.host</TT
|
> file at the top of the repository.
|
> file at the top of the repository.
|
Note that if you have an existing build tree which does not include
|
Note that if you have an existing build tree which does not include
|
the synthetic target architectural HAL package then it will be
|
the synthetic target architectural HAL package then it will be
|
necessary to rerun the toplevel configure script: the search for
|
necessary to rerun the toplevel configure script: the search for
|
appropriate packages happens at configure time.
|
appropriate packages happens at configure time.
|
</P
|
</P
|
><P
|
><P
|
>The alternative is to build just the host-side for this package.
|
>The alternative is to build just the host-side for this package.
|
This involves creating a suitable build directory and running the
|
This involves creating a suitable build directory and running the
|
<B
|
<B
|
CLASS="COMMAND"
|
CLASS="COMMAND"
|
>configure</B
|
>configure</B
|
> script. Note that building directly in
|
> script. Note that building directly in
|
the source tree is not allowed.
|
the source tree is not allowed.
|
</P
|
</P
|
><TABLE
|
><TABLE
|
BORDER="5"
|
BORDER="5"
|
BGCOLOR="#E0E0F0"
|
BGCOLOR="#E0E0F0"
|
WIDTH="70%"
|
WIDTH="70%"
|
><TR
|
><TR
|
><TD
|
><TD
|
><PRE
|
><PRE
|
CLASS="SCREEN"
|
CLASS="SCREEN"
|
>$ cd <somewhere suitable>
|
>$ cd <somewhere suitable>
|
$ mkdir synth_build
|
$ mkdir synth_build
|
$ cd synth_build
|
$ cd synth_build
|
$ <repo<>/packages/hal/synth/arch/<version>/host/configure <options>
|
$ <repo<>/packages/hal/synth/arch/<version>/host/configure <options>
|
$ make
|
$ make
|
$ make install</PRE
|
$ make install</PRE
|
></TD
|
></TD
|
></TR
|
></TR
|
></TABLE
|
></TABLE
|
><P
|
><P
|
>The code makes extensive use of Tcl/TK and requires version 8.3 or
|
>The code makes extensive use of Tcl/TK and requires version 8.3 or
|
later. This is checked by the <B
|
later. This is checked by the <B
|
CLASS="COMMAND"
|
CLASS="COMMAND"
|
>configure</B
|
>configure</B
|
> script. By
|
> script. By
|
default it will use the system's Tcl installation in <TT
|
default it will use the system's Tcl installation in <TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>/usr</TT
|
>/usr</TT
|
>. If a different, more recent Tcl
|
>. If a different, more recent Tcl
|
installation should be used then its location can be specified using
|
installation should be used then its location can be specified using
|
the options <TT
|
the options <TT
|
CLASS="OPTION"
|
CLASS="OPTION"
|
>--with-tcl=<path></TT
|
>--with-tcl=<path></TT
|
>,
|
>,
|
<TT
|
<TT
|
CLASS="OPTION"
|
CLASS="OPTION"
|
>--with-tcl-header=<path></TT
|
>--with-tcl-header=<path></TT
|
> and
|
> and
|
<TT
|
<TT
|
CLASS="OPTION"
|
CLASS="OPTION"
|
>--with-tcl-lib=<path></TT
|
>--with-tcl-lib=<path></TT
|
>. For more information on these options
|
>. For more information on these options
|
see the <TT
|
see the <TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>README.host</TT
|
>README.host</TT
|
> file at the toplevel of the
|
> file at the toplevel of the
|
eCos repository.
|
eCos repository.
|
</P
|
</P
|
><P
|
><P
|
>Some users may also want to specify the install location using a
|
>Some users may also want to specify the install location using a
|
<TT
|
<TT
|
CLASS="OPTION"
|
CLASS="OPTION"
|
>--prefix=<path></TT
|
>--prefix=<path></TT
|
> option. The default install
|
> option. The default install
|
location is <TT
|
location is <TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>/usr/local</TT
|
>/usr/local</TT
|
>. It is
|
>. It is
|
essential that the <TT
|
essential that the <TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>bin</TT
|
>bin</TT
|
>
|
>
|
subdirectory of the install location is on the user's search
|
subdirectory of the install location is on the user's search
|
<TT
|
<TT
|
CLASS="ENVAR"
|
CLASS="ENVAR"
|
>PATH</TT
|
>PATH</TT
|
>, otherwise the eCos application will be unable to
|
>, otherwise the eCos application will be unable to
|
locate and execute the I/O auxiliary ecosynth.
|
locate and execute the I/O auxiliary ecosynth.
|
</P
|
</P
|
><P
|
><P
|
>Because ecosynth is run automatically by an eCos application rather
|
>Because ecosynth is run automatically by an eCos application rather
|
than explicitly by the user, it is not installed in the <TT
|
than explicitly by the user, it is not installed in the <TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>bin</TT
|
>bin</TT
|
> subdirectory itself. Instead it is
|
> subdirectory itself. Instead it is
|
installed below <TT
|
installed below <TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>libexec</TT
|
>libexec</TT
|
>,
|
>,
|
together with various support files such as images. At configure time
|
together with various support files such as images. At configure time
|
it is usually possible to specify an alternative location for
|
it is usually possible to specify an alternative location for
|
<TT
|
<TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>libexec</TT
|
>libexec</TT
|
> using
|
> using
|
<TT
|
<TT
|
CLASS="OPTION"
|
CLASS="OPTION"
|
>--exec-prefix=<path></TT
|
>--exec-prefix=<path></TT
|
> or
|
> or
|
<TT
|
<TT
|
CLASS="OPTION"
|
CLASS="OPTION"
|
>--libexecdir=<path></TT
|
>--libexecdir=<path></TT
|
>. These options should not
|
>. These options should not
|
be used for this package because the eCos application is built
|
be used for this package because the eCos application is built
|
completely separately and does not know how the host-side was
|
completely separately and does not know how the host-side was
|
configured.
|
configured.
|
</P
|
</P
|
></DIV
|
></DIV
|
><DIV
|
><DIV
|
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
><A
|
><A
|
NAME="SYNTH-TOOLS"
|
NAME="SYNTH-TOOLS"
|
></A
|
></A
|
><H2
|
><H2
|
>Toolchain</H2
|
>Toolchain</H2
|
><P
|
><P
|
>When developing eCos applications for a normal embedded target it is
|
>When developing eCos applications for a normal embedded target it is
|
necessary to use a suitable cross-compiler and related tools such as
|
necessary to use a suitable cross-compiler and related tools such as
|
the linker. Developing for the synthetic target is easier because you
|
the linker. Developing for the synthetic target is easier because you
|
can just use the standard GNU tools (gcc, g++, ld, …) which
|
can just use the standard GNU tools (gcc, g++, ld, …) which
|
were provided with your Linux distribution, or which you used to build
|
were provided with your Linux distribution, or which you used to build
|
your own Linux setup. Any reasonably recent version of the tools, for
|
your own Linux setup. Any reasonably recent version of the tools, for
|
example gcc 2.96(Red Hat) as shipped with Red Hat Linux 7, should be
|
example gcc 2.96(Red Hat) as shipped with Red Hat Linux 7, should be
|
sufficient.
|
sufficient.
|
</P
|
</P
|
><P
|
><P
|
>There is one important limitation when using these tools: current gdb
|
>There is one important limitation when using these tools: current gdb
|
will not support debugging of eCos threads on the synthetic target. As
|
will not support debugging of eCos threads on the synthetic target. As
|
far as gdb is concerned a synthetic target application is
|
far as gdb is concerned a synthetic target application is
|
indistinguishable from a normal Linux application, so it assumes that
|
indistinguishable from a normal Linux application, so it assumes that
|
any threads will be created by calls to the Linux
|
any threads will be created by calls to the Linux
|
<TT
|
<TT
|
CLASS="FUNCTION"
|
CLASS="FUNCTION"
|
>pthread_create</TT
|
>pthread_create</TT
|
> function provided by the C
|
> function provided by the C
|
library. Obviously this is not the case since the application is never
|
library. Obviously this is not the case since the application is never
|
linked with that library. Therefore gdb never notices the eCos thread
|
linked with that library. Therefore gdb never notices the eCos thread
|
mechanisms and assumes the application is single-threaded. Fixing this
|
mechanisms and assumes the application is single-threaded. Fixing this
|
is possible but would involve non-trivial changes to gdb.
|
is possible but would involve non-trivial changes to gdb.
|
</P
|
</P
|
><P
|
><P
|
>Theoretically it is possible to develop synthetic target applications
|
>Theoretically it is possible to develop synthetic target applications
|
on, for example, a PC running Windows and then run the resulting
|
on, for example, a PC running Windows and then run the resulting
|
executables on another machine that runs Linux. This is rarely useful:
|
executables on another machine that runs Linux. This is rarely useful:
|
if a Linux machine is available then usually that machine will also be
|
if a Linux machine is available then usually that machine will also be
|
used for building ecos and the application. However, if for some
|
used for building ecos and the application. However, if for some
|
reason it is necessary or desirable to build on another machine then
|
reason it is necessary or desirable to build on another machine then
|
this requires a suitable cross-compiler and related tools. If the
|
this requires a suitable cross-compiler and related tools. If the
|
application will be running on a typical PC with an x86 processor then
|
application will be running on a typical PC with an x86 processor then
|
a suitable configure triplet would be
|
a suitable configure triplet would be
|
<TT
|
<TT
|
CLASS="USERINPUT"
|
CLASS="USERINPUT"
|
><B
|
><B
|
>i686-pc-linux-gnu</B
|
>i686-pc-linux-gnu</B
|
></TT
|
></TT
|
>. The installation
|
>. The installation
|
instructions for the various GNU tools should be consulted for further
|
instructions for the various GNU tools should be consulted for further
|
information.
|
information.
|
</P
|
</P
|
></DIV
|
></DIV
|
><DIV
|
><DIV
|
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
><A
|
><A
|
NAME="SYNTH-HARDWARE"
|
NAME="SYNTH-HARDWARE"
|
></A
|
></A
|
><H2
|
><H2
|
>Hardware Preparation</H2
|
>Hardware Preparation</H2
|
><P
|
><P
|
>Preparing a real embedded target for eCos development can be tricky.
|
>Preparing a real embedded target for eCos development can be tricky.
|
Often the first step is to install suitable firmware, usually RedBoot.
|
Often the first step is to install suitable firmware, usually RedBoot.
|
This means creating and building a special configuration for eCos with
|
This means creating and building a special configuration for eCos with
|
the RedBoot template, then somehow updating the target's flash chips
|
the RedBoot template, then somehow updating the target's flash chips
|
with the resulting RedBoot image. Typically it will also be necessary
|
with the resulting RedBoot image. Typically it will also be necessary
|
to get a working serial connection, and possibly set up ethernet as
|
to get a working serial connection, and possibly set up ethernet as
|
well. Although usually none of the individual steps are particularly
|
well. Although usually none of the individual steps are particularly
|
complicated, there are plenty of ways in which things can go wrong and
|
complicated, there are plenty of ways in which things can go wrong and
|
it can be hard to figure out what is actually happening. Of course
|
it can be hard to figure out what is actually happening. Of course
|
some board manufacturers make life easier for their developers by
|
some board manufacturers make life easier for their developers by
|
shipping hardware with RedBoot preinstalled, but even then it is still
|
shipping hardware with RedBoot preinstalled, but even then it is still
|
necessary to set up communication between host and target.
|
necessary to set up communication between host and target.
|
</P
|
</P
|
><P
|
><P
|
>None of this is applicable to the synthetic target. Instead you can
|
>None of this is applicable to the synthetic target. Instead you can
|
just build a normal eCos configuration, link your application with the
|
just build a normal eCos configuration, link your application with the
|
resulting libraries, and you end up with an executable that you can
|
resulting libraries, and you end up with an executable that you can
|
run directly on your Linux machine or via gdb. A useful side effect of
|
run directly on your Linux machine or via gdb. A useful side effect of
|
this is that application development can start before any real
|
this is that application development can start before any real
|
embedded hardware is actually available.
|
embedded hardware is actually available.
|
</P
|
</P
|
><P
|
><P
|
>Typically the memory map for a synthetic target application will be
|
>Typically the memory map for a synthetic target application will be
|
set up such that there is a read-only ROM region containing all the
|
set up such that there is a read-only ROM region containing all the
|
code and constant data, and a read-write RAM region for the data. The
|
code and constant data, and a read-write RAM region for the data. The
|
default locations and sizes of these regions depend on the specific
|
default locations and sizes of these regions depend on the specific
|
platform being used for development. Note that the application always
|
platform being used for development. Note that the application always
|
executes out of ROM: on a real embedded target much of the development
|
executes out of ROM: on a real embedded target much of the development
|
would involve running RedBoot firmware there, with application code
|
would involve running RedBoot firmware there, with application code
|
and data loaded into RAM; usually this would change for the final
|
and data loaded into RAM; usually this would change for the final
|
system; the firmware would be replaced by the eCos application itself,
|
system; the firmware would be replaced by the eCos application itself,
|
configured for ROM bootstrap, and it would perform the appropriate
|
configured for ROM bootstrap, and it would perform the appropriate
|
hardware initialization. Therefore the synthetic target actually
|
hardware initialization. Therefore the synthetic target actually
|
emulates the behaviour of a final system, not of a development
|
emulates the behaviour of a final system, not of a development
|
environment. In practice this is rarely significant, although having
|
environment. In practice this is rarely significant, although having
|
the code in read-only memory can help catch some problems in
|
the code in read-only memory can help catch some problems in
|
application code.
|
application code.
|
</P
|
</P
|
></DIV
|
></DIV
|
><DIV
|
><DIV
|
CLASS="NAVFOOTER"
|
CLASS="NAVFOOTER"
|
><HR
|
><HR
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
WIDTH="100%"><TABLE
|
WIDTH="100%"><TABLE
|
SUMMARY="Footer navigation table"
|
SUMMARY="Footer navigation table"
|
WIDTH="100%"
|
WIDTH="100%"
|
BORDER="0"
|
BORDER="0"
|
CELLPADDING="0"
|
CELLPADDING="0"
|
CELLSPACING="0"
|
CELLSPACING="0"
|
><TR
|
><TR
|
><TD
|
><TD
|
WIDTH="33%"
|
WIDTH="33%"
|
ALIGN="left"
|
ALIGN="left"
|
VALIGN="top"
|
VALIGN="top"
|
><A
|
><A
|
HREF="synth.html"
|
HREF="synth.html"
|
ACCESSKEY="P"
|
ACCESSKEY="P"
|
>Prev</A
|
>Prev</A
|
></TD
|
></TD
|
><TD
|
><TD
|
WIDTH="34%"
|
WIDTH="34%"
|
ALIGN="center"
|
ALIGN="center"
|
VALIGN="top"
|
VALIGN="top"
|
><A
|
><A
|
HREF="ecos-ref.html"
|
HREF="ecos-ref.html"
|
ACCESSKEY="H"
|
ACCESSKEY="H"
|
>Home</A
|
>Home</A
|
></TD
|
></TD
|
><TD
|
><TD
|
WIDTH="33%"
|
WIDTH="33%"
|
ALIGN="right"
|
ALIGN="right"
|
VALIGN="top"
|
VALIGN="top"
|
><A
|
><A
|
HREF="synth-running.html"
|
HREF="synth-running.html"
|
ACCESSKEY="N"
|
ACCESSKEY="N"
|
>Next</A
|
>Next</A
|
></TD
|
></TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
WIDTH="33%"
|
WIDTH="33%"
|
ALIGN="left"
|
ALIGN="left"
|
VALIGN="top"
|
VALIGN="top"
|
>Overview</TD
|
>Overview</TD
|
><TD
|
><TD
|
WIDTH="34%"
|
WIDTH="34%"
|
ALIGN="center"
|
ALIGN="center"
|
VALIGN="top"
|
VALIGN="top"
|
><A
|
><A
|
HREF="hal-synth-arch.html"
|
HREF="hal-synth-arch.html"
|
ACCESSKEY="U"
|
ACCESSKEY="U"
|
>Up</A
|
>Up</A
|
></TD
|
></TD
|
><TD
|
><TD
|
WIDTH="33%"
|
WIDTH="33%"
|
ALIGN="right"
|
ALIGN="right"
|
VALIGN="top"
|
VALIGN="top"
|
>Running a Synthetic Target Application</TD
|
>Running a Synthetic Target Application</TD
|
></TR
|
></TR
|
></TABLE
|
></TABLE
|
></DIV
|
></DIV
|
></BODY
|
></BODY
|
></HTML
|
></HTML
|
|
|