documentation: Moved the Eclipse chapter to the YP Dev Manual.
The detailed chapter that describes how to install and configure the Eclipse Yocto Plug-in has been moved to become a subsection of the "Workflow" chapter in the YP Development Manual. This commit accomplished the bulk move, edits to integrate the information, and fixes to all cross-references. Moving the chapter creates a sectioning issue in the YP Development manual that results in subsections that are six levels deep. Not ideal. Will look at fixing these with a subsequent commit. (From yocto-docs rev: e6abff8f578f2cf6997895260f607395281ae8e8) Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
fad4b8fbbd
commit
41c7020d7a
|
@ -1,740 +0,0 @@
|
||||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
|
||||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
|
||||||
[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
|
|
||||||
|
|
||||||
<chapter id='adt-eclipse'>
|
|
||||||
<title>Working Within Eclipse</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
The Eclipse IDE is a popular development environment and it fully supports
|
|
||||||
development using the Yocto Project.
|
|
||||||
When you install and configure the Eclipse Yocto Project Plug-in into
|
|
||||||
the Eclipse IDE, you maximize your Yocto Project experience.
|
|
||||||
Installing and configuring the Plug-in results in an environment that
|
|
||||||
has extensions specifically designed to let you more easily develop software.
|
|
||||||
These extensions allow for cross-compilation, deployment, and execution of
|
|
||||||
your output into a QEMU emulation session.
|
|
||||||
You can also perform cross-debugging and profiling.
|
|
||||||
The environment also supports a suite of tools that allows you to perform
|
|
||||||
remote profiling, tracing, collection of power data, collection of
|
|
||||||
latency data, and collection of performance data.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
This section describes how to install and configure the Eclipse IDE
|
|
||||||
Yocto Plug-in and how to use it to develop your application.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<section id='setting-up-the-eclipse-ide'>
|
|
||||||
<title>Setting Up the Eclipse IDE</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
To develop within the Eclipse IDE, you need to do the following:
|
|
||||||
<orderedlist>
|
|
||||||
<listitem><para>Install the optimal version of the Eclipse IDE.</para></listitem>
|
|
||||||
<listitem><para>Configure the Eclipse IDE.</para></listitem>
|
|
||||||
<listitem><para>Install the Eclipse Yocto Plug-in.</para></listitem>
|
|
||||||
<listitem><para>Configure the Eclipse Yocto Plug-in.</para></listitem>
|
|
||||||
</orderedlist>
|
|
||||||
<note>
|
|
||||||
Do not install Eclipse from your distribution's package repository.
|
|
||||||
Be sure to install Eclipse from the official Eclipse download site as directed
|
|
||||||
in the next section.
|
|
||||||
</note>
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<section id='installing-eclipse-ide'>
|
|
||||||
<title>Installing the Eclipse IDE</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
It is recommended that you have the Indigo 3.7.2 version of the
|
|
||||||
Eclipse IDE installed on your development system.
|
|
||||||
If you don’t have this version, you can find it at
|
|
||||||
<ulink url='&ECLIPSE_MAIN_URL;'></ulink>.
|
|
||||||
From that site, choose the Eclipse Classic version particular to your development
|
|
||||||
host.
|
|
||||||
This version contains the Eclipse Platform, the Java Development
|
|
||||||
Tools (JDT), and the Plug-in Development Environment.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Once you have downloaded the tarball, extract it into a clean
|
|
||||||
directory.
|
|
||||||
For example, the following commands unpack and install the Eclipse IDE
|
|
||||||
tarball found in the <filename>Downloads</filename> area
|
|
||||||
into a clean directory using the default name <filename>eclipse</filename>:
|
|
||||||
<literallayout class='monospaced'>
|
|
||||||
$ cd ~
|
|
||||||
$ tar -xzvf ~/Downloads/eclipse-SDK-3.7.2-linux-gtk-x86_64.tar.gz
|
|
||||||
</literallayout>
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
One issue exists that you need to be aware of regarding the Java
|
|
||||||
Virtual machine’s garbage collection (GC) process.
|
|
||||||
The GC process does not clean up the permanent generation
|
|
||||||
space (PermGen).
|
|
||||||
This space stores metadata descriptions of classes.
|
|
||||||
The default value is set too small and it could trigger an
|
|
||||||
out-of-memory error such as the following:
|
|
||||||
<literallayout class='monospaced'>
|
|
||||||
Java.lang.OutOfMemoryError: PermGen space
|
|
||||||
</literallayout>
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
This error causes the application to hang.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
To fix this issue, you can use the <filename>--vmargs</filename>
|
|
||||||
option when you start Eclipse to increase the size of the permanent generation space:
|
|
||||||
<literallayout class='monospaced'>
|
|
||||||
eclipse --vmargs --XX:PermSize=256M
|
|
||||||
</literallayout>
|
|
||||||
</para>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section id='configuring-the-eclipse-ide'>
|
|
||||||
<title>Configuring the Eclipse IDE</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Before installing and configuring the Eclipse Yocto Plug-in, you need to configure
|
|
||||||
the Eclipse IDE.
|
|
||||||
Follow these general steps to configure Eclipse:
|
|
||||||
<orderedlist>
|
|
||||||
<listitem><para>Start the Eclipse IDE.</para></listitem>
|
|
||||||
<listitem><para>Make sure you are in your Workbench and select
|
|
||||||
"Install New Software" from the "Help" pull-down menu.
|
|
||||||
</para></listitem>
|
|
||||||
<listitem><para>Select <filename>indigo - &ECLIPSE_INDIGO_URL;</filename>
|
|
||||||
from the "Work with:" pull-down menu.</para></listitem>
|
|
||||||
<listitem><para>Expand the box next to <filename>Programming Languages</filename>
|
|
||||||
and select the <filename>Autotools Support for CDT (incubation)</filename>
|
|
||||||
and <filename>C/C++ Development Tools</filename> boxes.</para></listitem>
|
|
||||||
<listitem><para>Expand the box next to "Linux Tools" and select the
|
|
||||||
"LTTng - Linux Tracing Toolkit(incubation)" boxes.</para></listitem>
|
|
||||||
<listitem><para>Complete the installation and restart the Eclipse IDE.</para></listitem>
|
|
||||||
<listitem><para>After the Eclipse IDE restarts and from the Workbench, select
|
|
||||||
"Install New Software" from the "Help" pull-down menu.</para></listitem>
|
|
||||||
<listitem><para>Click the
|
|
||||||
"Available Software Sites" link.</para></listitem>
|
|
||||||
<listitem><para>Check the box next to
|
|
||||||
<filename>&ECLIPSE_UPDATES_URL;</filename>
|
|
||||||
and click "OK".</para></listitem>
|
|
||||||
<listitem><para>Select <filename>&ECLIPSE_UPDATES_URL;</filename>
|
|
||||||
from the "Work with:" pull-down menu.</para></listitem>
|
|
||||||
<listitem><para>Check the box next to <filename>TM and RSE Main Features</filename>.
|
|
||||||
</para></listitem>
|
|
||||||
<listitem><para>Expand the box next to <filename>TM and RSE Optional Add-ons</filename>
|
|
||||||
and select every item except <filename>RSE Unit Tests</filename> and
|
|
||||||
<filename>RSE WinCE Services (incubation)</filename>.</para></listitem>
|
|
||||||
<listitem><para>Complete the installation and restart the Eclipse IDE.</para></listitem>
|
|
||||||
<listitem><para>If necessary, select
|
|
||||||
"Install New Software" from the "Help" pull-down menu so you can click the
|
|
||||||
"Available Software Sites" link again.</para></listitem>
|
|
||||||
<listitem><para>After clicking "Available Software Sites", check the box next to
|
|
||||||
<filename>http://download.eclipse.org/tools/cdt/releases/indigo</filename>
|
|
||||||
and click "OK".</para></listitem>
|
|
||||||
<listitem><para>Select <filename>&ECLIPSE_INDIGO_CDT_URL;</filename>
|
|
||||||
from the "Work with:" pull-down menu.</para></listitem>
|
|
||||||
<listitem><para>Check the box next to <filename>CDT Main Features</filename>.
|
|
||||||
</para></listitem>
|
|
||||||
<listitem><para>Expand the box next to <filename>CDT Optional Features</filename>
|
|
||||||
and select <filename>C/C++ Remote Launch</filename> and
|
|
||||||
<filename>Target Communication Framework (incubation)</filename>.</para></listitem>
|
|
||||||
<listitem><para>Complete the installation and restart the Eclipse IDE.</para></listitem>
|
|
||||||
</orderedlist>
|
|
||||||
</para>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section id='installing-the-eclipse-yocto-plug-in'>
|
|
||||||
<title>Installing or Accessing the Eclipse Yocto Plug-in</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
You can install the Eclipse Yocto Plug-in into the Eclipse IDE
|
|
||||||
one of two ways: use the Yocto Project's Eclipse Update site to install the pre-built plug-in,
|
|
||||||
or build and install the plug-in from the latest source code.
|
|
||||||
If you don't want to permanently install the plug-in but just want to try it out
|
|
||||||
within the Eclipse environment, you can import the plug-in project from the
|
|
||||||
Yocto Project source repositories.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<section id='new-software'>
|
|
||||||
<title>Installing the Pre-built Plug-in from the Yocto Project Eclipse Update Site</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
To install the Eclipse Yocto Plug-in from the update site,
|
|
||||||
follow these steps:
|
|
||||||
<orderedlist>
|
|
||||||
<listitem><para>Start up the Eclipse IDE.</para></listitem>
|
|
||||||
<listitem><para>In Eclipse, select "Install New Software" from the "Help" menu.</para></listitem>
|
|
||||||
<listitem><para>Click "Add..." in the "Work with:" area.</para></listitem>
|
|
||||||
<listitem><para>Enter
|
|
||||||
<filename>&ECLIPSE_DL_PLUGIN_URL;</filename>
|
|
||||||
in the URL field and provide a meaningful name in the "Name" field.</para></listitem>
|
|
||||||
<listitem><para>Click "OK" to have the entry added to the "Work with:"
|
|
||||||
drop-down list.</para></listitem>
|
|
||||||
<listitem><para>Select the entry for the plug-in from the "Work with:" drop-down
|
|
||||||
list.</para></listitem>
|
|
||||||
<listitem><para>Check the box next to <filename>Development tools and SDKs for Yocto Linux</filename>.
|
|
||||||
</para></listitem>
|
|
||||||
<listitem><para>Complete the remaining software installation steps and
|
|
||||||
then restart the Eclipse IDE to finish the installation of the plug-in.
|
|
||||||
</para></listitem>
|
|
||||||
</orderedlist>
|
|
||||||
</para>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section id='zip-file-method'>
|
|
||||||
<title>Installing the Plug-in Using the Latest Source Code</title>
|
|
||||||
<para>
|
|
||||||
To install the Eclipse Yocto Plug-in from the latest source code, follow these steps:
|
|
||||||
<orderedlist>
|
|
||||||
<listitem><para>Open a shell and create a Git repository with:
|
|
||||||
<literallayout class='monospaced'>
|
|
||||||
$ git clone git://git.yoctoproject.org/eclipse-poky yocto-eclipse
|
|
||||||
</literallayout>
|
|
||||||
For this example, the repository is named
|
|
||||||
<filename>~/yocto-eclipse</filename>.</para></listitem>
|
|
||||||
<listitem><para>Locate the <filename>build.sh</filename> script in the
|
|
||||||
Git repository you created in the previous step.
|
|
||||||
The script is located in the <filename>scripts</filename>.</para></listitem>
|
|
||||||
<listitem><para>Be sure to set and export the <filename>ECLIPSE_HOME</filename> environment
|
|
||||||
variable to the top-level directory in which you installed the Indigo
|
|
||||||
version of Eclipse.
|
|
||||||
For example, if your Eclipse directory is <filename>$HOME/eclipse</filename>,
|
|
||||||
use the following:
|
|
||||||
<literallayout class='monospaced'>
|
|
||||||
$ export ECLIPSE_HOME=$HOME/eclipse
|
|
||||||
</literallayout></para></listitem>
|
|
||||||
<listitem><para>Run the <filename>build.sh</filename> script and provide the
|
|
||||||
name of the Git branch along with the Yocto Project release you are
|
|
||||||
using.
|
|
||||||
Here is an example that uses the <filename>master</filename> Git repository
|
|
||||||
and the <filename>1.1M4</filename> release:
|
|
||||||
<literallayout class='monospaced'>
|
|
||||||
$ scripts/build.sh master 1.1M4
|
|
||||||
</literallayout>
|
|
||||||
After running the script, the file
|
|
||||||
<filename>org.yocto.sdk-<release>-<date>-archive.zip</filename>
|
|
||||||
is in the current directory.</para></listitem>
|
|
||||||
<listitem><para>If necessary, start the Eclipse IDE and be sure you are in the
|
|
||||||
Workbench.</para></listitem>
|
|
||||||
<listitem><para>Select "Install New Software" from the "Help" pull-down menu.
|
|
||||||
</para></listitem>
|
|
||||||
<listitem><para>Click "Add".</para></listitem>
|
|
||||||
<listitem><para>Provide anything you want in the "Name" field.</para></listitem>
|
|
||||||
<listitem><para>Click "Archive" and browse to the ZIP file you built
|
|
||||||
in step four.
|
|
||||||
This ZIP file should not be "unzipped", and must be the
|
|
||||||
<filename>*archive.zip</filename> file created by running the
|
|
||||||
<filename>build.sh</filename> script.</para></listitem>
|
|
||||||
<listitem><para>Check the box next to the new entry in the installation window and complete
|
|
||||||
the installation.</para></listitem>
|
|
||||||
<listitem><para>Restart the Eclipse IDE if necessary.</para></listitem>
|
|
||||||
</orderedlist>
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
At this point you should be able to configure the Eclipse Yocto Plug-in as described in the
|
|
||||||
"<link linkend='configuring-the-eclipse-yocto-plug-in'>Configuring the Eclipse Yocto Plug-in</link>"
|
|
||||||
section.</para>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section id='yocto-project-source'>
|
|
||||||
<title>Importing the Plug-in Project into the Eclipse Environment</title>
|
|
||||||
<para>
|
|
||||||
Importing the Eclipse Yocto Plug-in project from the Yocto Project source repositories
|
|
||||||
is useful when you want to try out the latest plug-in from the tip of plug-in's
|
|
||||||
development tree.
|
|
||||||
It is important to understand when you import the plug-in you are not installing
|
|
||||||
it into the Eclipse application.
|
|
||||||
Rather, you are importing the project and just using it.
|
|
||||||
To import the plug-in project, follow these steps:
|
|
||||||
<orderedlist>
|
|
||||||
<listitem><para>Open a shell and create a Git repository with:
|
|
||||||
<literallayout class='monospaced'>
|
|
||||||
$ git clone git://git.yoctoproject.org/eclipse-poky yocto-eclipse
|
|
||||||
</literallayout>
|
|
||||||
For this example, the repository is named
|
|
||||||
<filename>~/yocto-eclipse</filename>.</para></listitem>
|
|
||||||
<listitem><para>In Eclipse, select "Import" from the "File" menu.</para></listitem>
|
|
||||||
<listitem><para>Expand the "General" box and select "existing projects into workspace"
|
|
||||||
and then click "Next".</para></listitem>
|
|
||||||
<listitem><para>Select the root directory and browse to
|
|
||||||
<filename>~/yocto-eclipse/plugins</filename>.</para></listitem>
|
|
||||||
<listitem><para>Three plug-ins exist: "org.yocto.bc.ui", "org.yocto.sdk.ide", and
|
|
||||||
"org.yocto.sdk.remotetools".
|
|
||||||
Select and import all of them.</para></listitem>
|
|
||||||
</orderedlist>
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
The left navigation pane in the Eclipse application shows the default projects.
|
|
||||||
Right-click on one of these projects and run it as an Eclipse application.
|
|
||||||
This brings up a second instance of Eclipse IDE that has the Yocto Plug-in.
|
|
||||||
</para>
|
|
||||||
</section>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section id='configuring-the-eclipse-yocto-plug-in'>
|
|
||||||
<title>Configuring the Eclipse Yocto Plug-in</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Configuring the Eclipse Yocto Plug-in involves setting the Cross
|
|
||||||
Compiler options and the Target options.
|
|
||||||
The configurations you choose become the default settings for all projects.
|
|
||||||
You do have opportunities to change them later when
|
|
||||||
you configure the project (see the following section).
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
To start, you need to do the following from within the Eclipse IDE:
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem><para>Choose <filename>Windows -> Preferences</filename> to display
|
|
||||||
the <filename>Preferences</filename> Dialog</para></listitem>
|
|
||||||
<listitem><para>Click <filename>Yocto Project ADT</filename></para></listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<section id='configuring-the-cross-compiler-options'>
|
|
||||||
<title>Configuring the Cross-Compiler Options</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
To configure the Cross Compiler Options, you must select the type of toolchain,
|
|
||||||
point to the toolchain, specify the sysroot location, and select the target architecture.
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem><para><emphasis>Selecting the Toolchain Type:</emphasis>
|
|
||||||
Choose between <filename>Standalone pre-built toolchain</filename>
|
|
||||||
and <filename>Build system derived toolchain</filename> for Cross
|
|
||||||
Compiler Options.
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem><para><emphasis>
|
|
||||||
<filename>Standalone Pre-built Toolchain:</filename></emphasis>
|
|
||||||
Select this mode when you are using a stand-alone cross-toolchain.
|
|
||||||
For example, suppose you are an application developer and do not
|
|
||||||
need to build a target image.
|
|
||||||
Instead, you just want to use an architecture-specific toolchain on an
|
|
||||||
existing kernel and target root filesystem.
|
|
||||||
</para></listitem>
|
|
||||||
<listitem><para><emphasis>
|
|
||||||
<filename>Build System Derived Toolchain:</filename></emphasis>
|
|
||||||
Select this mode if the cross-toolchain has been installed and built
|
|
||||||
as part of the build directory.
|
|
||||||
When you select <filename>Build system derived toolchain</filename>,
|
|
||||||
you are using the toolchain bundled
|
|
||||||
inside the build directory.
|
|
||||||
</para></listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
</para></listitem>
|
|
||||||
<listitem><para><emphasis>Point to the Toolchain:</emphasis>
|
|
||||||
If you are using a stand-alone pre-built toolchain, you should be pointing to the
|
|
||||||
<filename>&YOCTO_ADTPATH_DIR;</filename> directory.
|
|
||||||
This is the location for toolchains installed by the ADT Installer or by hand.
|
|
||||||
Sections "<link linkend='configuring-and-running-the-adt-installer-script'>Configuring
|
|
||||||
and Running the ADT Installer Script</link>" and
|
|
||||||
"<link linkend='using-an-existing-toolchain-tarball'>Using a Cross-Toolchain
|
|
||||||
Tarball</link>" describe two ways to install
|
|
||||||
a stand-alone cross-toolchain in the
|
|
||||||
<filename>/opt/poky</filename> directory.
|
|
||||||
<note>It is possible to install a stand-alone cross-toolchain in a directory
|
|
||||||
other than <filename>/opt/poky</filename>.
|
|
||||||
However, doing so is discouraged.</note></para>
|
|
||||||
<para>If you are using a system-derived toolchain, the path you provide
|
|
||||||
for the <filename>Toolchain Root Location</filename>
|
|
||||||
field is the build directory.
|
|
||||||
See section "<link linkend='using-the-toolchain-from-within-the-build-tree'>Using
|
|
||||||
BitBake and the build directory</link>" for
|
|
||||||
information on how to install the toolchain into the build directory.</para></listitem>
|
|
||||||
<listitem><para><emphasis>Specify the Sysroot Location:</emphasis>
|
|
||||||
This location is where the root filesystem for the
|
|
||||||
target hardware is created on the development system by the ADT Installer.
|
|
||||||
The QEMU user-space tools, the
|
|
||||||
NFS boot process, and the cross-toolchain all use the sysroot location.
|
|
||||||
</para></listitem>
|
|
||||||
<listitem><para><emphasis>Select the Target Architecture:</emphasis>
|
|
||||||
The target architecture is the type of hardware you are
|
|
||||||
going to use or emulate.
|
|
||||||
Use the pull-down <filename>Target Architecture</filename> menu to make
|
|
||||||
your selection.
|
|
||||||
The pull-down menu should have the supported architectures.
|
|
||||||
If the architecture you need is not listed in the menu, you
|
|
||||||
will need to build the image.
|
|
||||||
See the "<ulink url='&YOCTO_DOCS_QS_URL;#building-image'>Building an Image</ulink>" section
|
|
||||||
of The Yocto Project Quick Start for more information.</para></listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
</para>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section id='configuring-the-target-options'>
|
|
||||||
<title>Configuring the Target Options</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
You can choose to emulate hardware using the QEMU emulator, or you
|
|
||||||
can choose to run your image on actual hardware.
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem><para><emphasis><filename>QEMU:</filename></emphasis> Select this option if
|
|
||||||
you will be using the QEMU emulator.
|
|
||||||
If you are using the emulator, you also need to locate the kernel
|
|
||||||
and specify any custom options.</para>
|
|
||||||
<para>If you selected <filename>Build system derived toolchain</filename>,
|
|
||||||
the target kernel you built will be located in the
|
|
||||||
build directory in <filename>tmp/deploy/images</filename> directory.
|
|
||||||
If you selected <filename>Standalone pre-built toolchain</filename>, the
|
|
||||||
pre-built image you downloaded is located
|
|
||||||
in the directory you specified when you downloaded the image.</para>
|
|
||||||
<para>Most custom options are for advanced QEMU users to further
|
|
||||||
customize their QEMU instance.
|
|
||||||
These options are specified between paired angled brackets.
|
|
||||||
Some options must be specified outside the brackets.
|
|
||||||
In particular, the options <filename>serial</filename>,
|
|
||||||
<filename>nographic</filename>, and <filename>kvm</filename> must all
|
|
||||||
be outside the brackets.
|
|
||||||
Use the <filename>man qemu</filename> command to get help on all the options
|
|
||||||
and their use.
|
|
||||||
The following is an example:
|
|
||||||
<literallayout class='monospaced'>
|
|
||||||
serial ‘<-m 256 -full-screen>’
|
|
||||||
</literallayout></para>
|
|
||||||
<para>
|
|
||||||
Regardless of the mode, Sysroot is already defined as part of the
|
|
||||||
Cross Compiler Options configuration in the
|
|
||||||
<filename>Sysroot Location:</filename> field.</para></listitem>
|
|
||||||
<listitem><para><emphasis><filename>External HW:</filename></emphasis> Select this option
|
|
||||||
if you will be using actual hardware.</para></listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Click the <filename>OK</filename> button to save your plug-in configurations.
|
|
||||||
</para>
|
|
||||||
</section>
|
|
||||||
</section>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section id='creating-the-project'>
|
|
||||||
<title>Creating the Project</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
You can create two types of projects: Autotools-based, or Makefile-based.
|
|
||||||
This section describes how to create Autotools-based projects from within
|
|
||||||
the Eclipse IDE.
|
|
||||||
For information on creating Makefile-based projects in a terminal window, see the section
|
|
||||||
"<link linkend='using-the-command-line'>Using the Command Line</link>".
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
To create a project based on a Yocto template and then display the source code,
|
|
||||||
follow these steps:
|
|
||||||
<orderedlist>
|
|
||||||
<listitem><para>Select <filename>File -> New -> Project</filename>.</para></listitem>
|
|
||||||
<listitem><para>Double click <filename>CC++</filename>.</para></listitem>
|
|
||||||
<listitem><para>Double click <filename>C Project</filename> to create the project.</para></listitem>
|
|
||||||
<listitem><para>Expand <filename>Yocto Project ADT Project</filename>.</para></listitem>
|
|
||||||
<listitem><para>Select <filename>Hello World ANSI C Autotools Project</filename>.
|
|
||||||
This is an Autotools-based project based on a Yocto template.</para></listitem>
|
|
||||||
<listitem><para>Put a name in the <filename>Project name:</filename> field.
|
|
||||||
Do not use hyphens as part of the name.</para></listitem>
|
|
||||||
<listitem><para>Click <filename>Next</filename>.</para></listitem>
|
|
||||||
<listitem><para>Add information in the <filename>Author</filename> and
|
|
||||||
<filename>Copyright notice</filename> fields.</para></listitem>
|
|
||||||
<listitem><para>Be sure the <filename>License</filename> field is correct.</para></listitem>
|
|
||||||
<listitem><para>Click <filename>Finish</filename>.</para></listitem>
|
|
||||||
<listitem><para>If the "open perspective" prompt appears, click "Yes" so that you
|
|
||||||
in the C/C++ perspective.</para></listitem>
|
|
||||||
<listitem><para>The left-hand navigation pane shows your project.
|
|
||||||
You can display your source by double clicking the project's source file.
|
|
||||||
</para></listitem>
|
|
||||||
</orderedlist>
|
|
||||||
</para>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section id='configuring-the-cross-toolchains'>
|
|
||||||
<title>Configuring the Cross-Toolchains</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
The earlier section, "<link linkend='configuring-the-eclipse-yocto-plug-in'>Configuring
|
|
||||||
the Eclipse Yocto Plug-in</link>", sets up the default project
|
|
||||||
configurations.
|
|
||||||
You can override these settings for a given project by following these steps:
|
|
||||||
<orderedlist>
|
|
||||||
<listitem><para>Select <filename>Project -> Change Yocto Project Settings</filename>:
|
|
||||||
This selection brings up the <filename>Yocot Project Settings</filename> Dialog
|
|
||||||
and allows you to make changes specific to an individual project.
|
|
||||||
</para>
|
|
||||||
<para>By default, the Cross Compiler Options and Target Options for a project
|
|
||||||
are inherited from settings you provide using the <filename>Preferences</filename>
|
|
||||||
Dialog as described earlier
|
|
||||||
in the "<link linkend='configuring-the-eclipse-yocto-plug-in'>Configuring the Eclipse
|
|
||||||
Yocto Plug-in</link>" section.
|
|
||||||
The <filename>Yocto Project Settings</filename>
|
|
||||||
Dialog allows you to override those default settings
|
|
||||||
for a given project.</para></listitem>
|
|
||||||
<listitem><para>Make your configurations for the project and click "OK".</para></listitem>
|
|
||||||
<listitem><para>Select <filename>Project -> Reconfigure Project</filename>:
|
|
||||||
This selection reconfigures the project by running
|
|
||||||
<filename>autogen.sh</filename> in the workspace for your project.
|
|
||||||
The script also runs <filename>libtoolize</filename>, <filename>aclocal</filename>,
|
|
||||||
<filename>autoconf</filename>, <filename>autoheader</filename>,
|
|
||||||
<filename>automake --a</filename>, and
|
|
||||||
<filename>./configure</filename>.
|
|
||||||
Click on the <filename>Console</filename> tab beneath your source code to
|
|
||||||
see the results of reconfiguring your project.</para></listitem>
|
|
||||||
</orderedlist>
|
|
||||||
</para>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section id='building-the-project'>
|
|
||||||
<title>Building the Project</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
To build the project, select <filename>Project -> Build Project</filename>.
|
|
||||||
The console should update and you can note the cross-compiler you are using.
|
|
||||||
</para>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section id='starting-qemu-in-user-space-nfs-mode'>
|
|
||||||
<title>Starting QEMU in User Space NFS Mode</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
To start the QEMU emulator from within Eclipse, follow these steps:
|
|
||||||
<orderedlist>
|
|
||||||
<listitem><para>Expose the <filename>Run -> External Tools</filename> menu.
|
|
||||||
Your image should appear as a selectable menu item.
|
|
||||||
</para></listitem>
|
|
||||||
<listitem><para>Select your image from the menu to launch the
|
|
||||||
emulator in a new window.</para></listitem>
|
|
||||||
<listitem><para>If needed, enter your host root password in the shell window at the prompt.
|
|
||||||
This sets up a <filename>Tap 0</filename> connection needed for running in user-space
|
|
||||||
NFS mode.</para></listitem>
|
|
||||||
<listitem><para>Wait for QEMU to launch.</para></listitem>
|
|
||||||
<listitem><para>Once QEMU launches, you can begin operating within that
|
|
||||||
environment.
|
|
||||||
For example, you could determine the IP Address
|
|
||||||
for the user-space NFS by using the <filename>ifconfig</filename> command.
|
|
||||||
</para></listitem>
|
|
||||||
</orderedlist>
|
|
||||||
</para>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section id='deploying-and-debugging-the-application'>
|
|
||||||
<title>Deploying and Debugging the Application</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Once the QEMU emulator is running the image, using the Eclipse IDE
|
|
||||||
you can deploy your application and use the emulator to perform debugging.
|
|
||||||
Follow these steps to deploy the application.
|
|
||||||
<orderedlist>
|
|
||||||
<listitem><para>Select <filename>Run -> Debug Configurations...</filename></para></listitem>
|
|
||||||
<listitem><para>In the left area, expand <filename>C/C++Remote Application</filename>.</para></listitem>
|
|
||||||
<listitem><para>Locate your project and select it to bring up a new
|
|
||||||
tabbed view in the <filename>Debug Configurations</filename> Dialog.</para></listitem>
|
|
||||||
<listitem><para>Enter the absolute path into which you want to deploy
|
|
||||||
the application.
|
|
||||||
Use the <filename>Remote Absolute File Path for C/C++Application:</filename> field.
|
|
||||||
For example, enter <filename>/usr/bin/<programname></filename>.</para></listitem>
|
|
||||||
<listitem><para>Click on the <filename>Debugger</filename> tab to see the cross-tool debugger
|
|
||||||
you are using.</para></listitem>
|
|
||||||
<listitem><para>Click on the <filename>Main</filename> tab.</para></listitem>
|
|
||||||
<listitem><para>Create a new connection to the QEMU instance
|
|
||||||
by clicking on <filename>new</filename>.</para></listitem>
|
|
||||||
<listitem><para>Select <filename>TCF</filename>, which means Target Communication
|
|
||||||
Framework.</para></listitem>
|
|
||||||
<listitem><para>Click <filename>Next</filename>.</para></listitem>
|
|
||||||
<listitem><para>Clear out the <filename>host name</filename> field and enter the IP Address
|
|
||||||
determined earlier.</para></listitem>
|
|
||||||
<listitem><para>Click <filename>Finish</filename> to close the
|
|
||||||
<filename>New Connections</filename> Dialog.</para></listitem>
|
|
||||||
<listitem><para>Use the drop-down menu now in the <filename>Connection</filename> field and pick
|
|
||||||
the IP Address you entered.</para></listitem>
|
|
||||||
<listitem><para>Click <filename>Debug</filename> to bring up a login screen
|
|
||||||
and login.</para></listitem>
|
|
||||||
<listitem><para>Accept the debug perspective.</para></listitem>
|
|
||||||
</orderedlist>
|
|
||||||
</para>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section id='running-user-space-tools'>
|
|
||||||
<title>Running User-Space Tools</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
As mentioned earlier in the manual, several tools exist that enhance
|
|
||||||
your development experience.
|
|
||||||
These tools are aids in developing and debugging applications and images.
|
|
||||||
You can run these user-space tools from within the Eclipse IDE through the
|
|
||||||
<filename>YoctoTools</filename> menu.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Once you pick a tool, you need to configure it for the remote target.
|
|
||||||
Every tool needs to have the connection configured.
|
|
||||||
You must select an existing TCF-based RSE connection to the remote target.
|
|
||||||
If one does not exist, click <filename>New</filename> to create one.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Here are some specifics about the remote tools:
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem><para><emphasis><filename>OProfile</filename>:</emphasis> Selecting this tool causes
|
|
||||||
the <filename>oprofile-server</filename> on the remote target to launch on
|
|
||||||
the local host machine.
|
|
||||||
The <filename>oprofile-viewer</filename> must be installed on the local host machine and the
|
|
||||||
<filename>oprofile-server</filename> must be installed on the remote target,
|
|
||||||
respectively, in order to use.
|
|
||||||
You must compile and install the <filename>oprofile-viewer</filename> from the source code
|
|
||||||
on your local host machine.
|
|
||||||
Furthermore, in order to convert the target's sample format data into a form that the
|
|
||||||
host can use, you must have <filename>oprofile</filename> version 0.9.4 or
|
|
||||||
greater installed on the host.</para>
|
|
||||||
<para>You can locate both the viewer and server from
|
|
||||||
<ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/oprofileui/'></ulink>.
|
|
||||||
<note>The <filename>oprofile-server</filename> is installed by default on
|
|
||||||
the <filename>core-image-sato-sdk</filename> image.</note></para></listitem>
|
|
||||||
<listitem><para><emphasis><filename>Lttng-ust</filename>:</emphasis> Selecting this tool runs
|
|
||||||
<filename>usttrace</filename> on the remote target, transfers the output data back
|
|
||||||
to the local host machine, and uses the <filename>lttng</filename> Eclipse plug-in to
|
|
||||||
graphically display the output.
|
|
||||||
For information on how to use <filename>lttng</filename> to trace an application, see
|
|
||||||
<ulink url='http://lttng.org/files/ust/manual/ust.html'></ulink>.</para>
|
|
||||||
<para>For <filename>Application</filename>, you must supply the absolute path name of the
|
|
||||||
application to be traced by user mode <filename>lttng</filename>.
|
|
||||||
For example, typing <filename>/path/to/foo</filename> triggers
|
|
||||||
<filename>usttrace /path/to/foo</filename> on the remote target to trace the
|
|
||||||
program <filename>/path/to/foo</filename>.</para>
|
|
||||||
<para><filename>Argument</filename> is passed to <filename>usttrace</filename>
|
|
||||||
running on the remote target.</para>
|
|
||||||
<para>Before you use the <filename>lttng-ust</filename> tool, you need to setup
|
|
||||||
the <filename>lttng</filename> Eclipse plug-in and create a <filename>lttng</filename>
|
|
||||||
project.
|
|
||||||
Do the following:
|
|
||||||
<orderedlist>
|
|
||||||
<listitem><para>Follow these
|
|
||||||
<ulink url='http://wiki.eclipse.org/Linux_Tools_Project/LTTng#Downloading_and_installing_the_LTTng_parser_library'>instructions</ulink>
|
|
||||||
to download and install the <filename>lttng</filename> parser library.
|
|
||||||
</para></listitem>
|
|
||||||
<listitem><para>Select <filename>Window -> Open Perspective -> Other</filename>
|
|
||||||
and then select <filename>LTTng</filename>.</para></listitem>
|
|
||||||
<listitem><para>Click <filename>OK</filename> to change the Eclipse perspective
|
|
||||||
into the <filename>LTTng</filename> perspective.</para></listitem>
|
|
||||||
<listitem><para>Create a new <filename>LTTng</filename> project by selecting
|
|
||||||
<filename>File -> New -> Project</filename>.</para></listitem>
|
|
||||||
<listitem><para>Choose <filename>LTTng -> LTTng Project</filename>.</para></listitem>
|
|
||||||
<listitem><para>Click <filename>YoctoTools -> lttng-ust</filename> to start user mode
|
|
||||||
<filename>lttng</filename> on the remote target.</para></listitem>
|
|
||||||
</orderedlist></para>
|
|
||||||
<para>After the output data has been transferred from the remote target back to the local
|
|
||||||
host machine, new traces will be imported into the selected <filename>LTTng</filename> project.
|
|
||||||
Then you can go to the <filename>LTTng</filename> project, right click the imported
|
|
||||||
trace, and set the trace type as the <filename>LTTng</filename> kernel trace.
|
|
||||||
Finally, right click the imported trace and select <filename>Open</filename>
|
|
||||||
to display the data graphically.</para></listitem>
|
|
||||||
<listitem><para><emphasis><filename>PowerTOP</filename>:</emphasis> Selecting this tool runs
|
|
||||||
<filename>powertop</filename> on the remote target machine and displays the results in a
|
|
||||||
new view called <filename>powertop</filename>.</para>
|
|
||||||
<para><filename>Time to gather data(sec):</filename> is the time passed in seconds before data
|
|
||||||
is gathered from the remote target for analysis.</para>
|
|
||||||
<para><filename>show pids in wakeups list:</filename> corresponds to the
|
|
||||||
<filename>-p</filename> argument
|
|
||||||
passed to <filename>powertop</filename>.</para></listitem>
|
|
||||||
<listitem><para><emphasis><filename>LatencyTOP and Perf</filename>:</emphasis>
|
|
||||||
<filename>latencytop</filename> identifies system latency, while
|
|
||||||
<filename>perf</filename> monitors the system's
|
|
||||||
performance counter registers.
|
|
||||||
Selecting either of these tools causes an RSE terminal view to appear
|
|
||||||
from which you can run the tools.
|
|
||||||
Both tools refresh the entire screen to display results while they run.</para></listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
</para>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section id='customizing-an-image-using-a-bitbake-commander-project-and-hob'>
|
|
||||||
<title>Customizing an Image Using a BitBake Commander Project and Hob</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Within Eclipse, you can create a Yocto BitBake Commander project,
|
|
||||||
edit the metadata, and then use the
|
|
||||||
<ulink url='&YOCTO_HOME_URL;/projects/hob'>Hob</ulink> to build a customized
|
|
||||||
image all within one IDE.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<section id='creating-the-yocto-bitbake-commander-project'>
|
|
||||||
<title>Creating the Yocto BitBake Commander Project</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
To create a Yocto BitBake Commander project, follow these steps:
|
|
||||||
<orderedlist>
|
|
||||||
<listitem><para>Select <filename>Window -> Open Perspective -> Other</filename>
|
|
||||||
and then choose <filename>Bitbake Commander</filename>.</para></listitem>
|
|
||||||
<listitem><para>Click <filename>OK</filename> to change the Eclipse perspective into the
|
|
||||||
Bitbake Commander perspective.</para></listitem>
|
|
||||||
<listitem><para>Select <filename>File -> New -> Project</filename> to create a new Yocto
|
|
||||||
Bitbake Commander project.</para></listitem>
|
|
||||||
<listitem><para>Choose <filename>Yocto Project Bitbake Commander -> New Yocto Project</filename>
|
|
||||||
and click <filename>Next</filename>.</para></listitem>
|
|
||||||
<listitem><para>Enter the Project Name and choose the Project Location.
|
|
||||||
The Yocto project's metadata files will be put under the directory
|
|
||||||
<filename><project_location>/<project_name></filename>.
|
|
||||||
If that directory does not exist, you need to check
|
|
||||||
the "Clone from Yocto Git Repository" box, which would execute a
|
|
||||||
<filename>git clone</filename> command to get the project's metadata files.
|
|
||||||
</para></listitem>
|
|
||||||
<listitem><para>Select <filename>Finish</filename> to create the project.</para></listitem>
|
|
||||||
</orderedlist>
|
|
||||||
</para>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section id='editing-the-metadata-files'>
|
|
||||||
<title>Editing the Metadata Files</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
After you create the Yocto Bitbake Commander project, you can modify the metadata files
|
|
||||||
by opening them in the project.
|
|
||||||
When editing recipe files (<filename>.bb</filename> files), you can view BitBake
|
|
||||||
variable values and information by hovering the mouse pointer over the variable name and
|
|
||||||
waiting a few seconds.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
To edit the metadata, follow these steps:
|
|
||||||
<orderedlist>
|
|
||||||
<listitem><para>Select your Yocto Bitbake Commander project.</para></listitem>
|
|
||||||
<listitem><para>Select <filename>File -> New -> Yocto BitBake Commander -> BitBake Recipe</filename>
|
|
||||||
to open a new recipe wizard.</para></listitem>
|
|
||||||
<listitem><para>Point to your source by filling in the "SRC_URL" field.
|
|
||||||
For example, you can add a recipe to your
|
|
||||||
<ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-source-files'>source directory structure</ulink>
|
|
||||||
by defining "SRC_URL" as follows:
|
|
||||||
<literallayout class='monospaced'>
|
|
||||||
ftp://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz
|
|
||||||
</literallayout></para></listitem>
|
|
||||||
<listitem><para>Click "Populate" to calculate the archive md5, sha256,
|
|
||||||
license checksum values and to auto-generate the recipe filename.</para></listitem>
|
|
||||||
<listitem><para>Fill in the "Description" field.</para></listitem>
|
|
||||||
<listitem><para>Be sure values for all required fields exist.</para></listitem>
|
|
||||||
<listitem><para>Click <filename>Finish</filename>.</para></listitem>
|
|
||||||
</orderedlist>
|
|
||||||
</para>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section id='buiding-and-customizing-the-image'>
|
|
||||||
<title>Building and Customizing the Image</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
To build and customize the image in Eclipse, follow these steps:
|
|
||||||
<orderedlist>
|
|
||||||
<listitem><para>Select your Yocto Bitbake Commander project.</para></listitem>
|
|
||||||
<listitem><para>Select <filename>Project -> Launch HOB</filename>.</para></listitem>
|
|
||||||
<listitem><para>Enter the build directory where you want to put your final images.</para></listitem>
|
|
||||||
<listitem><para>Click <filename>OK</filename> to launch Hob.</para></listitem>
|
|
||||||
<listitem><para>Use Hob to customize and build your own images.
|
|
||||||
For information on Hob, see the
|
|
||||||
<ulink url='&YOCTO_HOME_URL;/projects/hob'>Hob Project Page</ulink> on the
|
|
||||||
Yocto Project website.</para></listitem>
|
|
||||||
</orderedlist>
|
|
||||||
</para>
|
|
||||||
</section>
|
|
||||||
</section>
|
|
||||||
</chapter>
|
|
||||||
<!--
|
|
||||||
vim: expandtab tw=80 ts=4
|
|
||||||
-->
|
|
|
@ -13,11 +13,13 @@
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The Yocto Project provides an application development environment based on
|
The Yocto Project provides an application development environment based on
|
||||||
an Application Development Toolkit (ADT).
|
an Application Development Toolkit (ADT) and the availability of stand-alone
|
||||||
This manual describes the ADT and how you can configure and install it.
|
cross-development toolchains and other tools.
|
||||||
You will also learn how to customize the development packages installation,
|
This manual describes the ADT and how you can configure and install it,
|
||||||
learn about the Eclipse Yocto Plug-in, and learn how to use command line
|
how to access and use the cross-development toolchains, how to
|
||||||
development for both Autotools-based and Makefile-based projects.
|
customize the development packages installation,
|
||||||
|
how to use command line development for both Autotools-based and Makefile-based projects,
|
||||||
|
and an introduction to the Eclipse Yocto Plug-in.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<section id='book-intro'>
|
<section id='book-intro'>
|
||||||
|
@ -88,6 +90,14 @@
|
||||||
remote profiling, tracing, collection of power data, collection of
|
remote profiling, tracing, collection of power data, collection of
|
||||||
latency data, and collection of performance data.
|
latency data, and collection of performance data.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
For information about the application development workflow that uses the Eclipse
|
||||||
|
IDE and for a detailed example of how to install and configure the Eclipse
|
||||||
|
Yocto Project Plug-in, see the
|
||||||
|
"<ulink url='&YOCTO_DOCS_DEV_URL;#adt-eclipse'>Working Within Eclipse</ulink>" section
|
||||||
|
of the Yocto Project Development Manual.
|
||||||
|
</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section id='the-qemu-emulator'>
|
<section id='the-qemu-emulator'>
|
||||||
|
|
|
@ -85,8 +85,6 @@
|
||||||
|
|
||||||
<xi:include href="adt-package.xml"/>
|
<xi:include href="adt-package.xml"/>
|
||||||
|
|
||||||
<xi:include href="adt-eclipse.xml"/>
|
|
||||||
|
|
||||||
<xi:include href="adt-command.xml"/>
|
<xi:include href="adt-command.xml"/>
|
||||||
|
|
||||||
<!-- <index id='index'>
|
<!-- <index id='index'>
|
||||||
|
|
|
@ -641,6 +641,745 @@
|
||||||
</para>
|
</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section id='adt-eclipse'>
|
||||||
|
<title>Working Within Eclipse</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The Eclipse IDE is a popular development environment and it fully supports
|
||||||
|
development using the Yocto Project.
|
||||||
|
When you install and configure the Eclipse Yocto Project Plug-in into
|
||||||
|
the Eclipse IDE, you maximize your Yocto Project experience.
|
||||||
|
Installing and configuring the Plug-in results in an environment that
|
||||||
|
has extensions specifically designed to let you more easily develop software.
|
||||||
|
These extensions allow for cross-compilation, deployment, and execution of
|
||||||
|
your output into a QEMU emulation session.
|
||||||
|
You can also perform cross-debugging and profiling.
|
||||||
|
The environment also supports a suite of tools that allows you to perform
|
||||||
|
remote profiling, tracing, collection of power data, collection of
|
||||||
|
latency data, and collection of performance data.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This section describes how to install and configure the Eclipse IDE
|
||||||
|
Yocto Plug-in and how to use it to develop your application.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<section id='setting-up-the-eclipse-ide'>
|
||||||
|
<title>Setting Up the Eclipse IDE</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
To develop within the Eclipse IDE, you need to do the following:
|
||||||
|
<orderedlist>
|
||||||
|
<listitem><para>Install the optimal version of the Eclipse IDE.</para></listitem>
|
||||||
|
<listitem><para>Configure the Eclipse IDE.</para></listitem>
|
||||||
|
<listitem><para>Install the Eclipse Yocto Plug-in.</para></listitem>
|
||||||
|
<listitem><para>Configure the Eclipse Yocto Plug-in.</para></listitem>
|
||||||
|
</orderedlist>
|
||||||
|
<note>
|
||||||
|
Do not install Eclipse from your distribution's package repository.
|
||||||
|
Be sure to install Eclipse from the official Eclipse download site as directed
|
||||||
|
in the next section.
|
||||||
|
</note>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<section id='installing-eclipse-ide'>
|
||||||
|
<title>Installing the Eclipse IDE</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
It is recommended that you have the Indigo 3.7.2 version of the
|
||||||
|
Eclipse IDE installed on your development system.
|
||||||
|
If you don’t have this version, you can find it at
|
||||||
|
<ulink url='&ECLIPSE_MAIN_URL;'></ulink>.
|
||||||
|
From that site, choose the Eclipse Classic version particular to your development
|
||||||
|
host.
|
||||||
|
This version contains the Eclipse Platform, the Java Development
|
||||||
|
Tools (JDT), and the Plug-in Development Environment.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Once you have downloaded the tarball, extract it into a clean
|
||||||
|
directory.
|
||||||
|
For example, the following commands unpack and install the Eclipse IDE
|
||||||
|
tarball found in the <filename>Downloads</filename> area
|
||||||
|
into a clean directory using the default name <filename>eclipse</filename>:
|
||||||
|
<literallayout class='monospaced'>
|
||||||
|
$ cd ~
|
||||||
|
$ tar -xzvf ~/Downloads/eclipse-SDK-3.7.2-linux-gtk-x86_64.tar.gz
|
||||||
|
</literallayout>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
One issue exists that you need to be aware of regarding the Java
|
||||||
|
Virtual machine’s garbage collection (GC) process.
|
||||||
|
The GC process does not clean up the permanent generation
|
||||||
|
space (PermGen).
|
||||||
|
This space stores metadata descriptions of classes.
|
||||||
|
The default value is set too small and it could trigger an
|
||||||
|
out-of-memory error such as the following:
|
||||||
|
<literallayout class='monospaced'>
|
||||||
|
Java.lang.OutOfMemoryError: PermGen space
|
||||||
|
</literallayout>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This error causes the application to hang.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
To fix this issue, you can use the <filename>--vmargs</filename>
|
||||||
|
option when you start Eclipse to increase the size of the permanent generation space:
|
||||||
|
<literallayout class='monospaced'>
|
||||||
|
eclipse --vmargs --XX:PermSize=256M
|
||||||
|
</literallayout>
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id='configuring-the-eclipse-ide'>
|
||||||
|
<title>Configuring the Eclipse IDE</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Before installing and configuring the Eclipse Yocto Plug-in, you need to configure
|
||||||
|
the Eclipse IDE.
|
||||||
|
Follow these general steps to configure Eclipse:
|
||||||
|
<orderedlist>
|
||||||
|
<listitem><para>Start the Eclipse IDE.</para></listitem>
|
||||||
|
<listitem><para>Make sure you are in your Workbench and select
|
||||||
|
"Install New Software" from the "Help" pull-down menu.
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para>Select <filename>indigo - &ECLIPSE_INDIGO_URL;</filename>
|
||||||
|
from the "Work with:" pull-down menu.</para></listitem>
|
||||||
|
<listitem><para>Expand the box next to <filename>Programming Languages</filename>
|
||||||
|
and select the <filename>Autotools Support for CDT (incubation)</filename>
|
||||||
|
and <filename>C/C++ Development Tools</filename> boxes.</para></listitem>
|
||||||
|
<listitem><para>Expand the box next to "Linux Tools" and select the
|
||||||
|
"LTTng - Linux Tracing Toolkit(incubation)" boxes.</para></listitem>
|
||||||
|
<listitem><para>Complete the installation and restart the Eclipse IDE.</para></listitem>
|
||||||
|
<listitem><para>After the Eclipse IDE restarts and from the Workbench, select
|
||||||
|
"Install New Software" from the "Help" pull-down menu.</para></listitem>
|
||||||
|
<listitem><para>Click the
|
||||||
|
"Available Software Sites" link.</para></listitem>
|
||||||
|
<listitem><para>Check the box next to
|
||||||
|
<filename>&ECLIPSE_UPDATES_URL;</filename>
|
||||||
|
and click "OK".</para></listitem>
|
||||||
|
<listitem><para>Select <filename>&ECLIPSE_UPDATES_URL;</filename>
|
||||||
|
from the "Work with:" pull-down menu.</para></listitem>
|
||||||
|
<listitem><para>Check the box next to <filename>TM and RSE Main Features</filename>.
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para>Expand the box next to <filename>TM and RSE Optional Add-ons</filename>
|
||||||
|
and select every item except <filename>RSE Unit Tests</filename> and
|
||||||
|
<filename>RSE WinCE Services (incubation)</filename>.</para></listitem>
|
||||||
|
<listitem><para>Complete the installation and restart the Eclipse IDE.</para></listitem>
|
||||||
|
<listitem><para>If necessary, select
|
||||||
|
"Install New Software" from the "Help" pull-down menu so you can click the
|
||||||
|
"Available Software Sites" link again.</para></listitem>
|
||||||
|
<listitem><para>After clicking "Available Software Sites", check the box next to
|
||||||
|
<filename>http://download.eclipse.org/tools/cdt/releases/indigo</filename>
|
||||||
|
and click "OK".</para></listitem>
|
||||||
|
<listitem><para>Select <filename>&ECLIPSE_INDIGO_CDT_URL;</filename>
|
||||||
|
from the "Work with:" pull-down menu.</para></listitem>
|
||||||
|
<listitem><para>Check the box next to <filename>CDT Main Features</filename>.
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para>Expand the box next to <filename>CDT Optional Features</filename>
|
||||||
|
and select <filename>C/C++ Remote Launch</filename> and
|
||||||
|
<filename>Target Communication Framework (incubation)</filename>.</para></listitem>
|
||||||
|
<listitem><para>Complete the installation and restart the Eclipse IDE.</para></listitem>
|
||||||
|
</orderedlist>
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id='installing-the-eclipse-yocto-plug-in'>
|
||||||
|
<title>Installing or Accessing the Eclipse Yocto Plug-in</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
You can install the Eclipse Yocto Plug-in into the Eclipse IDE
|
||||||
|
one of two ways: use the Yocto Project's Eclipse Update site to install the pre-built plug-in,
|
||||||
|
or build and install the plug-in from the latest source code.
|
||||||
|
If you don't want to permanently install the plug-in but just want to try it out
|
||||||
|
within the Eclipse environment, you can import the plug-in project from the
|
||||||
|
Yocto Project source repositories.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<section id='new-software'>
|
||||||
|
<title>Installing the Pre-built Plug-in from the Yocto Project Eclipse Update Site</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
To install the Eclipse Yocto Plug-in from the update site,
|
||||||
|
follow these steps:
|
||||||
|
<orderedlist>
|
||||||
|
<listitem><para>Start up the Eclipse IDE.</para></listitem>
|
||||||
|
<listitem><para>In Eclipse, select "Install New Software" from the "Help" menu.</para></listitem>
|
||||||
|
<listitem><para>Click "Add..." in the "Work with:" area.</para></listitem>
|
||||||
|
<listitem><para>Enter
|
||||||
|
<filename>&ECLIPSE_DL_PLUGIN_URL;</filename>
|
||||||
|
in the URL field and provide a meaningful name in the "Name" field.</para></listitem>
|
||||||
|
<listitem><para>Click "OK" to have the entry added to the "Work with:"
|
||||||
|
drop-down list.</para></listitem>
|
||||||
|
<listitem><para>Select the entry for the plug-in from the "Work with:" drop-down
|
||||||
|
list.</para></listitem>
|
||||||
|
<listitem><para>Check the box next to <filename>Development tools and SDKs for Yocto Linux</filename>.
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para>Complete the remaining software installation steps and
|
||||||
|
then restart the Eclipse IDE to finish the installation of the plug-in.
|
||||||
|
</para></listitem>
|
||||||
|
</orderedlist>
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id='zip-file-method'>
|
||||||
|
<title>Installing the Plug-in Using the Latest Source Code</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
To install the Eclipse Yocto Plug-in from the latest source code, follow these steps:
|
||||||
|
<orderedlist>
|
||||||
|
<listitem><para>Open a shell and create a Git repository with:
|
||||||
|
<literallayout class='monospaced'>
|
||||||
|
$ git clone git://git.yoctoproject.org/eclipse-poky yocto-eclipse
|
||||||
|
</literallayout>
|
||||||
|
For this example, the repository is named
|
||||||
|
<filename>~/yocto-eclipse</filename>.</para></listitem>
|
||||||
|
<listitem><para>Locate the <filename>build.sh</filename> script in the
|
||||||
|
Git repository you created in the previous step.
|
||||||
|
The script is located in the <filename>scripts</filename>.</para></listitem>
|
||||||
|
<listitem><para>Be sure to set and export the <filename>ECLIPSE_HOME</filename> environment
|
||||||
|
variable to the top-level directory in which you installed the Indigo
|
||||||
|
version of Eclipse.
|
||||||
|
For example, if your Eclipse directory is <filename>$HOME/eclipse</filename>,
|
||||||
|
use the following:
|
||||||
|
<literallayout class='monospaced'>
|
||||||
|
$ export ECLIPSE_HOME=$HOME/eclipse
|
||||||
|
</literallayout></para></listitem>
|
||||||
|
<listitem><para>Run the <filename>build.sh</filename> script and provide the
|
||||||
|
name of the Git branch along with the Yocto Project release you are
|
||||||
|
using.
|
||||||
|
Here is an example that uses the <filename>master</filename> Git repository
|
||||||
|
and the <filename>1.1M4</filename> release:
|
||||||
|
<literallayout class='monospaced'>
|
||||||
|
$ scripts/build.sh master 1.1M4
|
||||||
|
</literallayout>
|
||||||
|
After running the script, the file
|
||||||
|
<filename>org.yocto.sdk-<release>-<date>-archive.zip</filename>
|
||||||
|
is in the current directory.</para></listitem>
|
||||||
|
<listitem><para>If necessary, start the Eclipse IDE and be sure you are in the
|
||||||
|
Workbench.</para></listitem>
|
||||||
|
<listitem><para>Select "Install New Software" from the "Help" pull-down menu.
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para>Click "Add".</para></listitem>
|
||||||
|
<listitem><para>Provide anything you want in the "Name" field.</para></listitem>
|
||||||
|
<listitem><para>Click "Archive" and browse to the ZIP file you built
|
||||||
|
in step four.
|
||||||
|
This ZIP file should not be "unzipped", and must be the
|
||||||
|
<filename>*archive.zip</filename> file created by running the
|
||||||
|
<filename>build.sh</filename> script.</para></listitem>
|
||||||
|
<listitem><para>Check the box next to the new entry in the installation window and complete
|
||||||
|
the installation.</para></listitem>
|
||||||
|
<listitem><para>Restart the Eclipse IDE if necessary.</para></listitem>
|
||||||
|
</orderedlist>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
At this point you should be able to configure the Eclipse Yocto Plug-in as described in the
|
||||||
|
"<link linkend='configuring-the-eclipse-yocto-plug-in'>Configuring the Eclipse Yocto Plug-in</link>"
|
||||||
|
section.</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id='yocto-project-source'>
|
||||||
|
<title>Importing the Plug-in Project into the Eclipse Environment</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Importing the Eclipse Yocto Plug-in project from the Yocto Project source repositories
|
||||||
|
is useful when you want to try out the latest plug-in from the tip of plug-in's
|
||||||
|
development tree.
|
||||||
|
It is important to understand when you import the plug-in you are not installing
|
||||||
|
it into the Eclipse application.
|
||||||
|
Rather, you are importing the project and just using it.
|
||||||
|
To import the plug-in project, follow these steps:
|
||||||
|
<orderedlist>
|
||||||
|
<listitem><para>Open a shell and create a Git repository with:
|
||||||
|
<literallayout class='monospaced'>
|
||||||
|
$ git clone git://git.yoctoproject.org/eclipse-poky yocto-eclipse
|
||||||
|
</literallayout>
|
||||||
|
For this example, the repository is named
|
||||||
|
<filename>~/yocto-eclipse</filename>.</para></listitem>
|
||||||
|
<listitem><para>In Eclipse, select "Import" from the "File" menu.</para></listitem>
|
||||||
|
<listitem><para>Expand the "General" box and select "existing projects into workspace"
|
||||||
|
and then click "Next".</para></listitem>
|
||||||
|
<listitem><para>Select the root directory and browse to
|
||||||
|
<filename>~/yocto-eclipse/plugins</filename>.</para></listitem>
|
||||||
|
<listitem><para>Three plug-ins exist: "org.yocto.bc.ui", "org.yocto.sdk.ide", and
|
||||||
|
"org.yocto.sdk.remotetools".
|
||||||
|
Select and import all of them.</para></listitem>
|
||||||
|
</orderedlist>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The left navigation pane in the Eclipse application shows the default projects.
|
||||||
|
Right-click on one of these projects and run it as an Eclipse application.
|
||||||
|
This brings up a second instance of Eclipse IDE that has the Yocto Plug-in.
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id='configuring-the-eclipse-yocto-plug-in'>
|
||||||
|
<title>Configuring the Eclipse Yocto Plug-in</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Configuring the Eclipse Yocto Plug-in involves setting the Cross
|
||||||
|
Compiler options and the Target options.
|
||||||
|
The configurations you choose become the default settings for all projects.
|
||||||
|
You do have opportunities to change them later when
|
||||||
|
you configure the project (see the following section).
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
To start, you need to do the following from within the Eclipse IDE:
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para>Choose <filename>Windows -> Preferences</filename> to display
|
||||||
|
the <filename>Preferences</filename> Dialog</para></listitem>
|
||||||
|
<listitem><para>Click <filename>Yocto Project ADT</filename></para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<section id='configuring-the-cross-compiler-options'>
|
||||||
|
<title>Configuring the Cross-Compiler Options</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
To configure the Cross Compiler Options, you must select the type of toolchain,
|
||||||
|
point to the toolchain, specify the sysroot location, and select the target architecture.
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para><emphasis>Selecting the Toolchain Type:</emphasis>
|
||||||
|
Choose between <filename>Standalone pre-built toolchain</filename>
|
||||||
|
and <filename>Build system derived toolchain</filename> for Cross
|
||||||
|
Compiler Options.
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para><emphasis>
|
||||||
|
<filename>Standalone Pre-built Toolchain:</filename></emphasis>
|
||||||
|
Select this mode when you are using a stand-alone cross-toolchain.
|
||||||
|
For example, suppose you are an application developer and do not
|
||||||
|
need to build a target image.
|
||||||
|
Instead, you just want to use an architecture-specific toolchain on an
|
||||||
|
existing kernel and target root filesystem.
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para><emphasis>
|
||||||
|
<filename>Build System Derived Toolchain:</filename></emphasis>
|
||||||
|
Select this mode if the cross-toolchain has been installed and built
|
||||||
|
as part of the build directory.
|
||||||
|
When you select <filename>Build system derived toolchain</filename>,
|
||||||
|
you are using the toolchain bundled
|
||||||
|
inside the build directory.
|
||||||
|
</para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para><emphasis>Point to the Toolchain:</emphasis>
|
||||||
|
If you are using a stand-alone pre-built toolchain, you should be pointing to the
|
||||||
|
<filename>&YOCTO_ADTPATH_DIR;</filename> directory.
|
||||||
|
This is the location for toolchains installed by the ADT Installer or by hand.
|
||||||
|
Sections "<ulink url='&YOCTO_DOCS_ADT_URL;#configuring-and-running-the-adt-installer-script'>Configuring
|
||||||
|
and Running the ADT Installer Script</ulink>" and
|
||||||
|
"<ulink url='&YOCTO_DOCS_ADT_URL;#using-an-existing-toolchain-tarball'>Using a Cross-Toolchain Tarball</ulink>"
|
||||||
|
in the Yocto Project Application Developer's Guide
|
||||||
|
describe two ways to install a stand-alone cross-toolchain in the
|
||||||
|
<filename>/opt/poky</filename> directory.
|
||||||
|
<note>It is possible to install a stand-alone cross-toolchain in a directory
|
||||||
|
other than <filename>/opt/poky</filename>.
|
||||||
|
However, doing so is discouraged.</note></para>
|
||||||
|
<para>If you are using a system-derived toolchain, the path you provide
|
||||||
|
for the <filename>Toolchain Root Location</filename>
|
||||||
|
field is the build directory.
|
||||||
|
See the "<ulink url='&YOCTO_DOCS_ADT_URL;#using-the-toolchain-from-within-the-build-tree'>Using
|
||||||
|
BitBake and the build directory</ulink>" section in the Yocto Project Application
|
||||||
|
Developer's Guide for information on how to install the toolchain into the build
|
||||||
|
directory.</para></listitem>
|
||||||
|
<listitem><para><emphasis>Specify the Sysroot Location:</emphasis>
|
||||||
|
This location is where the root filesystem for the
|
||||||
|
target hardware is created on the development system by the ADT Installer.
|
||||||
|
The QEMU user-space tools, the
|
||||||
|
NFS boot process, and the cross-toolchain all use the sysroot location.
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para><emphasis>Select the Target Architecture:</emphasis>
|
||||||
|
The target architecture is the type of hardware you are
|
||||||
|
going to use or emulate.
|
||||||
|
Use the pull-down <filename>Target Architecture</filename> menu to make
|
||||||
|
your selection.
|
||||||
|
The pull-down menu should have the supported architectures.
|
||||||
|
If the architecture you need is not listed in the menu, you
|
||||||
|
will need to build the image.
|
||||||
|
See the "<ulink url='&YOCTO_DOCS_QS_URL;#building-image'>Building an Image</ulink>" section
|
||||||
|
of The Yocto Project Quick Start for more information.</para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id='configuring-the-target-options'>
|
||||||
|
<title>Configuring the Target Options</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
You can choose to emulate hardware using the QEMU emulator, or you
|
||||||
|
can choose to run your image on actual hardware.
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para><emphasis><filename>QEMU:</filename></emphasis> Select this option if
|
||||||
|
you will be using the QEMU emulator.
|
||||||
|
If you are using the emulator, you also need to locate the kernel
|
||||||
|
and specify any custom options.</para>
|
||||||
|
<para>If you selected <filename>Build system derived toolchain</filename>,
|
||||||
|
the target kernel you built will be located in the
|
||||||
|
build directory in <filename>tmp/deploy/images</filename> directory.
|
||||||
|
If you selected <filename>Standalone pre-built toolchain</filename>, the
|
||||||
|
pre-built image you downloaded is located
|
||||||
|
in the directory you specified when you downloaded the image.</para>
|
||||||
|
<para>Most custom options are for advanced QEMU users to further
|
||||||
|
customize their QEMU instance.
|
||||||
|
These options are specified between paired angled brackets.
|
||||||
|
Some options must be specified outside the brackets.
|
||||||
|
In particular, the options <filename>serial</filename>,
|
||||||
|
<filename>nographic</filename>, and <filename>kvm</filename> must all
|
||||||
|
be outside the brackets.
|
||||||
|
Use the <filename>man qemu</filename> command to get help on all the options
|
||||||
|
and their use.
|
||||||
|
The following is an example:
|
||||||
|
<literallayout class='monospaced'>
|
||||||
|
serial ‘<-m 256 -full-screen>’
|
||||||
|
</literallayout></para>
|
||||||
|
<para>
|
||||||
|
Regardless of the mode, Sysroot is already defined as part of the
|
||||||
|
Cross Compiler Options configuration in the
|
||||||
|
<filename>Sysroot Location:</filename> field.</para></listitem>
|
||||||
|
<listitem><para><emphasis><filename>External HW:</filename></emphasis> Select this option
|
||||||
|
if you will be using actual hardware.</para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Click the <filename>OK</filename> button to save your plug-in configurations.
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id='creating-the-project'>
|
||||||
|
<title>Creating the Project</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
You can create two types of projects: Autotools-based, or Makefile-based.
|
||||||
|
This section describes how to create Autotools-based projects from within
|
||||||
|
the Eclipse IDE.
|
||||||
|
For information on creating Makefile-based projects in a terminal window, see the section
|
||||||
|
"<ulink url='&YOCTO_DOCS_ADT_URL;#using-the-command-line'>Using the Command Line</ulink>"
|
||||||
|
in the Yocto Project Application Developer's Guide.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
To create a project based on a Yocto template and then display the source code,
|
||||||
|
follow these steps:
|
||||||
|
<orderedlist>
|
||||||
|
<listitem><para>Select <filename>File -> New -> Project</filename>.</para></listitem>
|
||||||
|
<listitem><para>Double click <filename>CC++</filename>.</para></listitem>
|
||||||
|
<listitem><para>Double click <filename>C Project</filename> to create the project.</para></listitem>
|
||||||
|
<listitem><para>Expand <filename>Yocto Project ADT Project</filename>.</para></listitem>
|
||||||
|
<listitem><para>Select <filename>Hello World ANSI C Autotools Project</filename>.
|
||||||
|
This is an Autotools-based project based on a Yocto template.</para></listitem>
|
||||||
|
<listitem><para>Put a name in the <filename>Project name:</filename> field.
|
||||||
|
Do not use hyphens as part of the name.</para></listitem>
|
||||||
|
<listitem><para>Click <filename>Next</filename>.</para></listitem>
|
||||||
|
<listitem><para>Add information in the <filename>Author</filename> and
|
||||||
|
<filename>Copyright notice</filename> fields.</para></listitem>
|
||||||
|
<listitem><para>Be sure the <filename>License</filename> field is correct.</para></listitem>
|
||||||
|
<listitem><para>Click <filename>Finish</filename>.</para></listitem>
|
||||||
|
<listitem><para>If the "open perspective" prompt appears, click "Yes" so that you
|
||||||
|
in the C/C++ perspective.</para></listitem>
|
||||||
|
<listitem><para>The left-hand navigation pane shows your project.
|
||||||
|
You can display your source by double clicking the project's source file.
|
||||||
|
</para></listitem>
|
||||||
|
</orderedlist>
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id='configuring-the-cross-toolchains'>
|
||||||
|
<title>Configuring the Cross-Toolchains</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The earlier section, "<link linkend='configuring-the-eclipse-yocto-plug-in'>Configuring
|
||||||
|
the Eclipse Yocto Plug-in</link>", sets up the default project
|
||||||
|
configurations.
|
||||||
|
You can override these settings for a given project by following these steps:
|
||||||
|
<orderedlist>
|
||||||
|
<listitem><para>Select <filename>Project -> Change Yocto Project Settings</filename>:
|
||||||
|
This selection brings up the <filename>Yocot Project Settings</filename> Dialog
|
||||||
|
and allows you to make changes specific to an individual project.
|
||||||
|
</para>
|
||||||
|
<para>By default, the Cross Compiler Options and Target Options for a project
|
||||||
|
are inherited from settings you provide using the <filename>Preferences</filename>
|
||||||
|
Dialog as described earlier
|
||||||
|
in the "<link linkend='configuring-the-eclipse-yocto-plug-in'>Configuring the Eclipse
|
||||||
|
Yocto Plug-in</link>" section.
|
||||||
|
The <filename>Yocto Project Settings</filename>
|
||||||
|
Dialog allows you to override those default settings
|
||||||
|
for a given project.</para></listitem>
|
||||||
|
<listitem><para>Make your configurations for the project and click "OK".</para></listitem>
|
||||||
|
<listitem><para>Select <filename>Project -> Reconfigure Project</filename>:
|
||||||
|
This selection reconfigures the project by running
|
||||||
|
<filename>autogen.sh</filename> in the workspace for your project.
|
||||||
|
The script also runs <filename>libtoolize</filename>, <filename>aclocal</filename>,
|
||||||
|
<filename>autoconf</filename>, <filename>autoheader</filename>,
|
||||||
|
<filename>automake --a</filename>, and
|
||||||
|
<filename>./configure</filename>.
|
||||||
|
Click on the <filename>Console</filename> tab beneath your source code to
|
||||||
|
see the results of reconfiguring your project.</para></listitem>
|
||||||
|
</orderedlist>
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id='building-the-project'>
|
||||||
|
<title>Building the Project</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
To build the project, select <filename>Project -> Build Project</filename>.
|
||||||
|
The console should update and you can note the cross-compiler you are using.
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id='starting-qemu-in-user-space-nfs-mode'>
|
||||||
|
<title>Starting QEMU in User Space NFS Mode</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
To start the QEMU emulator from within Eclipse, follow these steps:
|
||||||
|
<orderedlist>
|
||||||
|
<listitem><para>Expose the <filename>Run -> External Tools</filename> menu.
|
||||||
|
Your image should appear as a selectable menu item.
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para>Select your image from the menu to launch the
|
||||||
|
emulator in a new window.</para></listitem>
|
||||||
|
<listitem><para>If needed, enter your host root password in the shell window at the prompt.
|
||||||
|
This sets up a <filename>Tap 0</filename> connection needed for running in user-space
|
||||||
|
NFS mode.</para></listitem>
|
||||||
|
<listitem><para>Wait for QEMU to launch.</para></listitem>
|
||||||
|
<listitem><para>Once QEMU launches, you can begin operating within that
|
||||||
|
environment.
|
||||||
|
For example, you could determine the IP Address
|
||||||
|
for the user-space NFS by using the <filename>ifconfig</filename> command.
|
||||||
|
</para></listitem>
|
||||||
|
</orderedlist>
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id='deploying-and-debugging-the-application'>
|
||||||
|
<title>Deploying and Debugging the Application</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Once the QEMU emulator is running the image, using the Eclipse IDE
|
||||||
|
you can deploy your application and use the emulator to perform debugging.
|
||||||
|
Follow these steps to deploy the application.
|
||||||
|
<orderedlist>
|
||||||
|
<listitem><para>Select <filename>Run -> Debug Configurations...</filename></para></listitem>
|
||||||
|
<listitem><para>In the left area, expand <filename>C/C++Remote Application</filename>.</para></listitem>
|
||||||
|
<listitem><para>Locate your project and select it to bring up a new
|
||||||
|
tabbed view in the <filename>Debug Configurations</filename> Dialog.</para></listitem>
|
||||||
|
<listitem><para>Enter the absolute path into which you want to deploy
|
||||||
|
the application.
|
||||||
|
Use the <filename>Remote Absolute File Path for C/C++Application:</filename> field.
|
||||||
|
For example, enter <filename>/usr/bin/<programname></filename>.</para></listitem>
|
||||||
|
<listitem><para>Click on the <filename>Debugger</filename> tab to see the cross-tool debugger
|
||||||
|
you are using.</para></listitem>
|
||||||
|
<listitem><para>Click on the <filename>Main</filename> tab.</para></listitem>
|
||||||
|
<listitem><para>Create a new connection to the QEMU instance
|
||||||
|
by clicking on <filename>new</filename>.</para></listitem>
|
||||||
|
<listitem><para>Select <filename>TCF</filename>, which means Target Communication
|
||||||
|
Framework.</para></listitem>
|
||||||
|
<listitem><para>Click <filename>Next</filename>.</para></listitem>
|
||||||
|
<listitem><para>Clear out the <filename>host name</filename> field and enter the IP Address
|
||||||
|
determined earlier.</para></listitem>
|
||||||
|
<listitem><para>Click <filename>Finish</filename> to close the
|
||||||
|
<filename>New Connections</filename> Dialog.</para></listitem>
|
||||||
|
<listitem><para>Use the drop-down menu now in the <filename>Connection</filename> field and pick
|
||||||
|
the IP Address you entered.</para></listitem>
|
||||||
|
<listitem><para>Click <filename>Debug</filename> to bring up a login screen
|
||||||
|
and login.</para></listitem>
|
||||||
|
<listitem><para>Accept the debug perspective.</para></listitem>
|
||||||
|
</orderedlist>
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id='running-user-space-tools'>
|
||||||
|
<title>Running User-Space Tools</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
As mentioned earlier in the manual, several tools exist that enhance
|
||||||
|
your development experience.
|
||||||
|
These tools are aids in developing and debugging applications and images.
|
||||||
|
You can run these user-space tools from within the Eclipse IDE through the
|
||||||
|
<filename>YoctoTools</filename> menu.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Once you pick a tool, you need to configure it for the remote target.
|
||||||
|
Every tool needs to have the connection configured.
|
||||||
|
You must select an existing TCF-based RSE connection to the remote target.
|
||||||
|
If one does not exist, click <filename>New</filename> to create one.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Here are some specifics about the remote tools:
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para><emphasis><filename>OProfile</filename>:</emphasis> Selecting this tool causes
|
||||||
|
the <filename>oprofile-server</filename> on the remote target to launch on
|
||||||
|
the local host machine.
|
||||||
|
The <filename>oprofile-viewer</filename> must be installed on the local host machine and the
|
||||||
|
<filename>oprofile-server</filename> must be installed on the remote target,
|
||||||
|
respectively, in order to use.
|
||||||
|
You must compile and install the <filename>oprofile-viewer</filename> from the source code
|
||||||
|
on your local host machine.
|
||||||
|
Furthermore, in order to convert the target's sample format data into a form that the
|
||||||
|
host can use, you must have <filename>oprofile</filename> version 0.9.4 or
|
||||||
|
greater installed on the host.</para>
|
||||||
|
<para>You can locate both the viewer and server from
|
||||||
|
<ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/oprofileui/'></ulink>.
|
||||||
|
<note>The <filename>oprofile-server</filename> is installed by default on
|
||||||
|
the <filename>core-image-sato-sdk</filename> image.</note></para></listitem>
|
||||||
|
<listitem><para><emphasis><filename>Lttng-ust</filename>:</emphasis> Selecting this tool runs
|
||||||
|
<filename>usttrace</filename> on the remote target, transfers the output data back
|
||||||
|
to the local host machine, and uses the <filename>lttng</filename> Eclipse plug-in to
|
||||||
|
graphically display the output.
|
||||||
|
For information on how to use <filename>lttng</filename> to trace an application, see
|
||||||
|
<ulink url='http://lttng.org/files/ust/manual/ust.html'></ulink>.</para>
|
||||||
|
<para>For <filename>Application</filename>, you must supply the absolute path name of the
|
||||||
|
application to be traced by user mode <filename>lttng</filename>.
|
||||||
|
For example, typing <filename>/path/to/foo</filename> triggers
|
||||||
|
<filename>usttrace /path/to/foo</filename> on the remote target to trace the
|
||||||
|
program <filename>/path/to/foo</filename>.</para>
|
||||||
|
<para><filename>Argument</filename> is passed to <filename>usttrace</filename>
|
||||||
|
running on the remote target.</para>
|
||||||
|
<para>Before you use the <filename>lttng-ust</filename> tool, you need to setup
|
||||||
|
the <filename>lttng</filename> Eclipse plug-in and create a <filename>lttng</filename>
|
||||||
|
project.
|
||||||
|
Do the following:
|
||||||
|
<orderedlist>
|
||||||
|
<listitem><para>Follow these
|
||||||
|
<ulink url='http://wiki.eclipse.org/Linux_Tools_Project/LTTng#Downloading_and_installing_the_LTTng_parser_library'>instructions</ulink>
|
||||||
|
to download and install the <filename>lttng</filename> parser library.
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para>Select <filename>Window -> Open Perspective -> Other</filename>
|
||||||
|
and then select <filename>LTTng</filename>.</para></listitem>
|
||||||
|
<listitem><para>Click <filename>OK</filename> to change the Eclipse perspective
|
||||||
|
into the <filename>LTTng</filename> perspective.</para></listitem>
|
||||||
|
<listitem><para>Create a new <filename>LTTng</filename> project by selecting
|
||||||
|
<filename>File -> New -> Project</filename>.</para></listitem>
|
||||||
|
<listitem><para>Choose <filename>LTTng -> LTTng Project</filename>.</para></listitem>
|
||||||
|
<listitem><para>Click <filename>YoctoTools -> lttng-ust</filename> to start user mode
|
||||||
|
<filename>lttng</filename> on the remote target.</para></listitem>
|
||||||
|
</orderedlist></para>
|
||||||
|
<para>After the output data has been transferred from the remote target back to the local
|
||||||
|
host machine, new traces will be imported into the selected <filename>LTTng</filename> project.
|
||||||
|
Then you can go to the <filename>LTTng</filename> project, right click the imported
|
||||||
|
trace, and set the trace type as the <filename>LTTng</filename> kernel trace.
|
||||||
|
Finally, right click the imported trace and select <filename>Open</filename>
|
||||||
|
to display the data graphically.</para></listitem>
|
||||||
|
<listitem><para><emphasis><filename>PowerTOP</filename>:</emphasis> Selecting this tool runs
|
||||||
|
<filename>powertop</filename> on the remote target machine and displays the results in a
|
||||||
|
new view called <filename>powertop</filename>.</para>
|
||||||
|
<para><filename>Time to gather data(sec):</filename> is the time passed in seconds before data
|
||||||
|
is gathered from the remote target for analysis.</para>
|
||||||
|
<para><filename>show pids in wakeups list:</filename> corresponds to the
|
||||||
|
<filename>-p</filename> argument
|
||||||
|
passed to <filename>powertop</filename>.</para></listitem>
|
||||||
|
<listitem><para><emphasis><filename>LatencyTOP and Perf</filename>:</emphasis>
|
||||||
|
<filename>latencytop</filename> identifies system latency, while
|
||||||
|
<filename>perf</filename> monitors the system's
|
||||||
|
performance counter registers.
|
||||||
|
Selecting either of these tools causes an RSE terminal view to appear
|
||||||
|
from which you can run the tools.
|
||||||
|
Both tools refresh the entire screen to display results while they run.</para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id='customizing-an-image-using-a-bitbake-commander-project-and-hob'>
|
||||||
|
<title>Customizing an Image Using a BitBake Commander Project and Hob</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Within Eclipse, you can create a Yocto BitBake Commander project,
|
||||||
|
edit the metadata, and then use the
|
||||||
|
<ulink url='&YOCTO_HOME_URL;/projects/hob'>Hob</ulink> to build a customized
|
||||||
|
image all within one IDE.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<section id='creating-the-yocto-bitbake-commander-project'>
|
||||||
|
<title>Creating the Yocto BitBake Commander Project</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
To create a Yocto BitBake Commander project, follow these steps:
|
||||||
|
<orderedlist>
|
||||||
|
<listitem><para>Select <filename>Window -> Open Perspective -> Other</filename>
|
||||||
|
and then choose <filename>Bitbake Commander</filename>.</para></listitem>
|
||||||
|
<listitem><para>Click <filename>OK</filename> to change the Eclipse perspective into the
|
||||||
|
Bitbake Commander perspective.</para></listitem>
|
||||||
|
<listitem><para>Select <filename>File -> New -> Project</filename> to create a new Yocto
|
||||||
|
Bitbake Commander project.</para></listitem>
|
||||||
|
<listitem><para>Choose <filename>Yocto Project Bitbake Commander -> New Yocto Project</filename>
|
||||||
|
and click <filename>Next</filename>.</para></listitem>
|
||||||
|
<listitem><para>Enter the Project Name and choose the Project Location.
|
||||||
|
The Yocto project's metadata files will be put under the directory
|
||||||
|
<filename><project_location>/<project_name></filename>.
|
||||||
|
If that directory does not exist, you need to check
|
||||||
|
the "Clone from Yocto Git Repository" box, which would execute a
|
||||||
|
<filename>git clone</filename> command to get the project's metadata files.
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para>Select <filename>Finish</filename> to create the project.</para></listitem>
|
||||||
|
</orderedlist>
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id='editing-the-metadata-files'>
|
||||||
|
<title>Editing the Metadata Files</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
After you create the Yocto Bitbake Commander project, you can modify the metadata files
|
||||||
|
by opening them in the project.
|
||||||
|
When editing recipe files (<filename>.bb</filename> files), you can view BitBake
|
||||||
|
variable values and information by hovering the mouse pointer over the variable name and
|
||||||
|
waiting a few seconds.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
To edit the metadata, follow these steps:
|
||||||
|
<orderedlist>
|
||||||
|
<listitem><para>Select your Yocto Bitbake Commander project.</para></listitem>
|
||||||
|
<listitem><para>Select <filename>File -> New -> Yocto BitBake Commander -> BitBake Recipe</filename>
|
||||||
|
to open a new recipe wizard.</para></listitem>
|
||||||
|
<listitem><para>Point to your source by filling in the "SRC_URL" field.
|
||||||
|
For example, you can add a recipe to your
|
||||||
|
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink>
|
||||||
|
by defining "SRC_URL" as follows:
|
||||||
|
<literallayout class='monospaced'>
|
||||||
|
ftp://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz
|
||||||
|
</literallayout></para></listitem>
|
||||||
|
<listitem><para>Click "Populate" to calculate the archive md5, sha256,
|
||||||
|
license checksum values and to auto-generate the recipe filename.</para></listitem>
|
||||||
|
<listitem><para>Fill in the "Description" field.</para></listitem>
|
||||||
|
<listitem><para>Be sure values for all required fields exist.</para></listitem>
|
||||||
|
<listitem><para>Click <filename>Finish</filename>.</para></listitem>
|
||||||
|
</orderedlist>
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id='buiding-and-customizing-the-image'>
|
||||||
|
<title>Building and Customizing the Image</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
To build and customize the image in Eclipse, follow these steps:
|
||||||
|
<orderedlist>
|
||||||
|
<listitem><para>Select your Yocto Bitbake Commander project.</para></listitem>
|
||||||
|
<listitem><para>Select <filename>Project -> Launch HOB</filename>.</para></listitem>
|
||||||
|
<listitem><para>Enter the build directory where you want to put your final images.</para></listitem>
|
||||||
|
<listitem><para>Click <filename>OK</filename> to launch Hob.</para></listitem>
|
||||||
|
<listitem><para>Use Hob to customize and build your own images.
|
||||||
|
For information on Hob, see the
|
||||||
|
<ulink url='&YOCTO_HOME_URL;/projects/hob'>Hob Project Page</ulink> on the
|
||||||
|
Yocto Project website.</para></listitem>
|
||||||
|
</orderedlist>
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
|
||||||
<section id='workflow-using-stand-alone-cross-development-toolchains'>
|
<section id='workflow-using-stand-alone-cross-development-toolchains'>
|
||||||
<title>Workflow Using Stand-alone Cross-development Toolchains</title>
|
<title>Workflow Using Stand-alone Cross-development Toolchains</title>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue