summaryrefslogtreecommitdiffstats
path: root/documentation/adt-manual/adt-intro.xml
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/adt-manual/adt-intro.xml')
-rw-r--r--documentation/adt-manual/adt-intro.xml195
1 files changed, 195 insertions, 0 deletions
diff --git a/documentation/adt-manual/adt-intro.xml b/documentation/adt-manual/adt-intro.xml
new file mode 100644
index 0000000000..a92828515d
--- /dev/null
+++ b/documentation/adt-manual/adt-intro.xml
@@ -0,0 +1,195 @@
1<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
2"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
3[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
4
5<chapter id='adt-intro'>
6<title>Introduction</title>
7
8<para>
9 Welcome to the Yocto Project Application Developer's Guide.
10 This manual provides information that lets you begin developing applications
11 using the Yocto Project.
12</para>
13
14<para>
15 The Yocto Project provides an application development environment based on
16 an Application Development Toolkit (ADT) and the availability of stand-alone
17 cross-development toolchains and other tools.
18 This manual describes the ADT and how you can configure and install it,
19 how to access and use the cross-development toolchains, how to
20 customize the development packages installation,
21 how to use command line development for both Autotools-based and Makefile-based projects,
22 and an introduction to the <trademark class='trade'>Eclipse</trademark> IDE
23 Yocto Plug-in.
24 <note>
25 The ADT is distribution-neutral and does not require the Yocto
26 Project reference distribution, which is called Poky.
27 This manual, however, uses examples that use the Poky distribution.
28 </note>
29</para>
30
31<section id='adt-intro-section'>
32 <title>The Application Development Toolkit (ADT)</title>
33
34 <para>
35 Part of the Yocto Project development solution is an Application Development
36 Toolkit (ADT).
37 The ADT provides you with a custom-built, cross-development
38 platform suited for developing a user-targeted product application.
39 </para>
40
41 <para>
42 Fundamentally, the ADT consists of the following:
43 <itemizedlist>
44 <listitem><para>An architecture-specific cross-toolchain and matching
45 sysroot both built by the OpenEmbedded build system.
46 The toolchain and sysroot are based on a
47 <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>
48 configuration and extensions,
49 which allows you to cross-develop on the host machine for the target hardware.
50 </para></listitem>
51 <listitem><para>The Eclipse IDE Yocto Plug-in.</para></listitem>
52 <listitem><para>The Quick EMUlator (QEMU), which lets you simulate target hardware.
53 </para></listitem>
54 <listitem><para>Various user-space tools that greatly enhance your application
55 development experience.</para></listitem>
56 </itemizedlist>
57 </para>
58
59 <section id='the-cross-development-toolchain'>
60 <title>The Cross-Development Toolchain</title>
61
62 <para>
63 The
64 <ulink url='&YOCTO_DOCS_DEV_URL;#cross-development-toolchain'>Cross-Development Toolchain</ulink>
65 consists of a cross-compiler, cross-linker, and cross-debugger
66 that are used to develop user-space applications for targeted
67 hardware.
68 This toolchain is created either by running the ADT Installer
69 script, a toolchain installer script, or through a
70 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
71 that is based on your Metadata configuration or extension for
72 your targeted device.
73 The cross-toolchain works with a matching target sysroot.
74 </para>
75 </section>
76
77 <section id='sysroot'>
78 <title>Sysroot</title>
79
80 <para>
81 The matching target sysroot contains needed headers and libraries for generating
82 binaries that run on the target architecture.
83 The sysroot is based on the target root filesystem image that is built by
84 the OpenEmbedded build system and uses the same Metadata configuration
85 used to build the cross-toolchain.
86 </para>
87 </section>
88
89 <section id='eclipse-overview'>
90 <title>Eclipse Yocto Plug-in</title>
91
92 <para>
93 The Eclipse IDE is a popular development environment and it fully supports
94 development using the Yocto Project.
95 When you install and configure the Eclipse Yocto Project Plug-in into
96 the Eclipse IDE, you maximize your Yocto Project experience.
97 Installing and configuring the Plug-in results in an environment that
98 has extensions specifically designed to let you more easily develop software.
99 These extensions allow for cross-compilation, deployment, and execution of
100 your output into a QEMU emulation session.
101 You can also perform cross-debugging and profiling.
102 The environment also supports a suite of tools that allows you to perform
103 remote profiling, tracing, collection of power data, collection of
104 latency data, and collection of performance data.
105 </para>
106
107 <para>
108 For information about the application development workflow that uses the Eclipse
109 IDE and for a detailed example of how to install and configure the Eclipse
110 Yocto Project Plug-in, see the
111 "<ulink url='&YOCTO_DOCS_DEV_URL;#adt-eclipse'>Working Within Eclipse</ulink>" section
112 of the Yocto Project Development Manual.
113 </para>
114 </section>
115
116 <section id='the-qemu-emulator'>
117 <title>The QEMU Emulator</title>
118
119 <para>
120 The QEMU emulator allows you to simulate your hardware while running your
121 application or image.
122 QEMU is made available a number of ways:
123 <itemizedlist>
124 <listitem><para>If you use the ADT Installer script to install ADT, you can
125 specify whether or not to install QEMU.</para></listitem>
126 <listitem><para>If you have downloaded a Yocto Project release and unpacked
127 it to create a
128 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink> and
129 you have sourced
130 the environment setup script, QEMU is installed and automatically
131 available.</para></listitem>
132 <listitem><para>If you have installed the cross-toolchain
133 tarball and you have sourced the toolchain's setup environment script, QEMU
134 is also installed and automatically available.</para></listitem>
135 </itemizedlist>
136 </para>
137 </section>
138
139 <section id='user-space-tools'>
140 <title>User-Space Tools</title>
141
142 <para>
143 User-space tools are included as part of the distribution.
144 You will find these tools helpful during development.
145 The tools include LatencyTOP, PowerTOP, OProfile, Perf, SystemTap, and Lttng-ust.
146 These tools are common development tools for the Linux platform.
147 <itemizedlist>
148 <listitem><para><emphasis>LatencyTOP:</emphasis> LatencyTOP focuses on latency
149 that causes skips in audio,
150 stutters in your desktop experience, or situations that overload your server
151 even when you have plenty of CPU power left.
152 </para></listitem>
153 <listitem><para><emphasis>PowerTOP:</emphasis> Helps you determine what
154 software is using the most power.
155 You can find out more about PowerTOP at
156 <ulink url='https://01.org/powertop/'></ulink>.</para></listitem>
157 <listitem><para><emphasis>OProfile:</emphasis> A system-wide profiler for Linux
158 systems that is capable of profiling all running code at low overhead.
159 You can find out more about OProfile at
160 <ulink url='http://oprofile.sourceforge.net/about/'></ulink>.
161 For examples on how to setup and use this tool, see the
162 "<ulink url='&YOCTO_DOCS_PROF_URL;#profile-manual-oprofile'>OProfile</ulink>"
163 section in the Yocto Project Profiling and Tracing Manual.
164 </para></listitem>
165 <listitem><para><emphasis>Perf:</emphasis> Performance counters for Linux used
166 to keep track of certain types of hardware and software events.
167 For more information on these types of counters see
168 <ulink url='https://perf.wiki.kernel.org/'></ulink> and click
169 on “Perf tools.”
170 For examples on how to setup and use this tool, see the
171 "<ulink url='&YOCTO_DOCS_PROF_URL;#profile-manual-perf'>perf</ulink>"
172 section in the Yocto Project Profiling and Tracing Manual.
173 </para></listitem>
174 <listitem><para><emphasis>SystemTap:</emphasis> A free software infrastructure
175 that simplifies information gathering about a running Linux system.
176 This information helps you diagnose performance or functional problems.
177 SystemTap is not available as a user-space tool through the Eclipse IDE Yocto Plug-in.
178 See <ulink url='http://sourceware.org/systemtap'></ulink> for more information
179 on SystemTap.
180 For examples on how to setup and use this tool, see the
181 "<ulink url='&YOCTO_DOCS_PROF_URL;#profile-manual-systemtap'>SystemTap</ulink>"
182 section in the Yocto Project Profiling and Tracing Manual.</para></listitem>
183 <listitem><para><emphasis>Lttng-ust:</emphasis> A User-space Tracer designed to
184 provide detailed information on user-space activity.
185 See <ulink url='http://lttng.org/ust'></ulink> for more information on Lttng-ust.
186 </para></listitem>
187 </itemizedlist>
188 </para>
189 </section>
190</section>
191
192</chapter>
193<!--
194vim: expandtab tw=80 ts=4
195-->