sdk-manual: Added some intro stuff about the SDK

(From yocto-docs rev: 6b829c70349f42d902395a586c84fa21b53227e8)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Scott Rifenbark 2016-03-08 07:49:48 -08:00 committed by Richard Purdie
parent 4c5157f7dc
commit 815d68684e
1 changed files with 184 additions and 0 deletions

View File

@ -44,6 +44,190 @@
the target hardware, and easily integrate an application into the
the Yocto Project build system.
</para>
<para>
Going beyond the actual SDK, the SDK development environment consists
of the following:
<itemizedlist>
<listitem><para>An architecture-specific cross-toolchain and
matching sysroots (target and native) all built by the
<ulink url='&YOCTO_DOCS_DEV_URL;#build-system-term'>OpenEmbedded build system</ulink>.
The toolchain and sysroots are based on a
<ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>
configuration and extensions,
which allows you to cross-develop on the host machine for the
target hardware.
</para></listitem>
<listitem><para>The Quick EMUlator (QEMU), which lets you simulate
target hardware.
QEMU is not literally part of the SDK.
You must build and include this emulator separately.
However, QEMU plays an important role in the development
process that revolves around use of and SDK.
</para></listitem>
<listitem><para>The Eclipse IDE Yocto Plug-in.
This plug-in is also available for you if you are an Eclipse
user.
In the same manner as QEMU, the plug-in is not literally part
of the SDK but is rather available for use as part of the
development process.
</para></listitem>
<listitem><para>Various user-space tools that greatly enhance
your application development experience.
These tools are also separate from the actual SDK but can be
independently obtained and used in the development process.
</para></listitem>
</itemizedlist>
</para>
<section id='the-cross-development-toolchain'>
<title>The Cross-Development Toolchain</title>
<para>
The
<ulink url='&YOCTO_DOCS_DEV_URL;#cross-development-toolchain'>Cross-Development Toolchain</ulink>
consists of a cross-compiler, cross-linker, and cross-debugger
that are used to develop user-space applications for targeted
hardware.
This toolchain is created by running a toolchain installer script
or through a
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
that is based on your Metadata configuration or extension for
your targeted device.
The cross-toolchain works with a matching target sysroot.
</para>
</section>
<section id='sysroot'>
<title>Sysroots</title>
<para>
The native and target sysroots contain needed headers and libraries
for generating binaries that run on the target architecture.
The target sysroot is based on the target root filesystem image
that is built by the OpenEmbedded build system and uses the same
Metadata configuration used to build the cross-toolchain.
</para>
</section>
<section id='the-qemu-emulator'>
<title>The QEMU Emulator</title>
<para>
The QEMU emulator allows you to simulate your hardware while
running your application or image.
QEMU is not part of the SDK but is made available a number of ways:
<itemizedlist>
<listitem><para>
If you have cloned the <filename>poky</filename> Git
repository to create a
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
and you have sourced the environment setup script, QEMU is
installed and automatically available.
</para></listitem>
<listitem><para>
If you have downloaded a Yocto Project release and unpacked
it to create a
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
and you have sourced the environment setup script, QEMU is
installed and automatically available.
</para></listitem>
<listitem><para>
If you have installed the cross-toolchain tarball and you
have sourced the toolchain's setup environment script, QEMU
is also installed and automatically available.
</para></listitem>
</itemizedlist>
</para>
</section>
<section id='eclipse-overview'>
<title>Eclipse Yocto Plug-in</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>
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
"<link link='sdk-developing-applications-using-eclipse'>Developing Applications Using <trademark class='trade'>Eclipse</trademark></link>"
section.
</para>
</section>
<section id='user-space-tools'>
<title>User-Space Tools</title>
<para>
User-space tools are available as part of the SDK development
process and can be helpful.
The tools include LatencyTOP, PowerTOP, OProfile, Perf, SystemTap,
and Lttng-ust.
These tools are common development tools for the Linux platform.
<itemizedlist>
<listitem><para><emphasis>LatencyTOP:</emphasis> LatencyTOP
focuses on latency that causes skips in audio, stutters in
your desktop experience, or situations that overload your
server even when you have plenty of CPU power left.
</para></listitem>
<listitem><para><emphasis>PowerTOP:</emphasis> Helps you
determine what software is using the most power.
You can find out more about PowerTOP at
<ulink url='https://01.org/powertop/'></ulink>.</para></listitem>
<listitem><para><emphasis>OProfile:</emphasis> A system-wide
profiler for Linux systems that is capable of profiling all
running code at low overhead.
You can find out more about OProfile at
<ulink url='http://oprofile.sourceforge.net/about/'></ulink>.
For examples on how to setup and use this tool, see the
"<ulink url='&YOCTO_DOCS_PROF_URL;#profile-manual-oprofile'>OProfile</ulink>"
section in the Yocto Project Profiling and Tracing Manual.
</para></listitem>
<listitem><para><emphasis>Perf:</emphasis> Performance counters
for Linux used to keep track of certain types of hardware
and software events.
For more information on these types of counters see
<ulink url='https://perf.wiki.kernel.org/'></ulink>.
For examples on how to setup and use this tool, see the
"<ulink url='&YOCTO_DOCS_PROF_URL;#profile-manual-perf'>perf</ulink>"
section in the Yocto Project Profiling and Tracing Manual.
</para></listitem>
<listitem><para><emphasis>SystemTap:</emphasis> A free software
infrastructure that simplifies information gathering about
a running Linux system.
This information helps you diagnose performance or
functional problems.
SystemTap is not available as a user-space tool through
the Eclipse IDE Yocto Plug-in.
See <ulink url='http://sourceware.org/systemtap'></ulink>
for more information on SystemTap.
For examples on how to setup and use this tool, see the
"<ulink url='&YOCTO_DOCS_PROF_URL;#profile-manual-systemtap'>SystemTap</ulink>"
section in the Yocto Project Profiling and Tracing Manual.
</para></listitem>
<listitem><para><emphasis>Lttng-ust:</emphasis> A User-space
Tracer designed to provide detailed information on
user-space activity.
See <ulink url='http://lttng.org/ust'></ulink> for more
information on Lttng-ust.
</para></listitem>
</itemizedlist>
</para>
</section>
</section>
<section id='sdk-development-model'>