summaryrefslogtreecommitdiffstats
path: root/documentation
diff options
context:
space:
mode:
authorScott Rifenbark <srifenbark@gmail.com>2016-03-08 07:49:48 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-03-23 21:56:08 +0000
commit815d68684eb964cb3675f42bf103b3995dfb9e05 (patch)
tree8e443d9c1ddb997d583fcd83c43a3d3ecfba4943 /documentation
parent4c5157f7dcfecab3b4e4483cd122e0ae74b377ee (diff)
downloadpoky-815d68684eb964cb3675f42bf103b3995dfb9e05.tar.gz
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>
Diffstat (limited to 'documentation')
-rw-r--r--documentation/sdk-manual/sdk-intro.xml184
1 files changed, 184 insertions, 0 deletions
diff --git a/documentation/sdk-manual/sdk-intro.xml b/documentation/sdk-manual/sdk-intro.xml
index ccc71c8cf4..36d946459d 100644
--- a/documentation/sdk-manual/sdk-intro.xml
+++ b/documentation/sdk-manual/sdk-intro.xml
@@ -44,6 +44,190 @@
44 the target hardware, and easily integrate an application into the 44 the target hardware, and easily integrate an application into the
45 the Yocto Project build system. 45 the Yocto Project build system.
46 </para> 46 </para>
47
48 <para>
49 Going beyond the actual SDK, the SDK development environment consists
50 of the following:
51 <itemizedlist>
52 <listitem><para>An architecture-specific cross-toolchain and
53 matching sysroots (target and native) all built by the
54 <ulink url='&YOCTO_DOCS_DEV_URL;#build-system-term'>OpenEmbedded build system</ulink>.
55 The toolchain and sysroots are based on a
56 <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>
57 configuration and extensions,
58 which allows you to cross-develop on the host machine for the
59 target hardware.
60 </para></listitem>
61 <listitem><para>The Quick EMUlator (QEMU), which lets you simulate
62 target hardware.
63 QEMU is not literally part of the SDK.
64 You must build and include this emulator separately.
65 However, QEMU plays an important role in the development
66 process that revolves around use of and SDK.
67 </para></listitem>
68 <listitem><para>The Eclipse IDE Yocto Plug-in.
69 This plug-in is also available for you if you are an Eclipse
70 user.
71 In the same manner as QEMU, the plug-in is not literally part
72 of the SDK but is rather available for use as part of the
73 development process.
74 </para></listitem>
75 <listitem><para>Various user-space tools that greatly enhance
76 your application development experience.
77 These tools are also separate from the actual SDK but can be
78 independently obtained and used in the development process.
79 </para></listitem>
80 </itemizedlist>
81 </para>
82
83 <section id='the-cross-development-toolchain'>
84 <title>The Cross-Development Toolchain</title>
85
86 <para>
87 The
88 <ulink url='&YOCTO_DOCS_DEV_URL;#cross-development-toolchain'>Cross-Development Toolchain</ulink>
89 consists of a cross-compiler, cross-linker, and cross-debugger
90 that are used to develop user-space applications for targeted
91 hardware.
92 This toolchain is created by running a toolchain installer script
93 or through a
94 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
95 that is based on your Metadata configuration or extension for
96 your targeted device.
97 The cross-toolchain works with a matching target sysroot.
98 </para>
99 </section>
100
101 <section id='sysroot'>
102 <title>Sysroots</title>
103
104 <para>
105 The native and target sysroots contain needed headers and libraries
106 for generating binaries that run on the target architecture.
107 The target sysroot is based on the target root filesystem image
108 that is built by the OpenEmbedded build system and uses the same
109 Metadata configuration used to build the cross-toolchain.
110 </para>
111 </section>
112
113 <section id='the-qemu-emulator'>
114 <title>The QEMU Emulator</title>
115
116 <para>
117 The QEMU emulator allows you to simulate your hardware while
118 running your application or image.
119 QEMU is not part of the SDK but is made available a number of ways:
120 <itemizedlist>
121 <listitem><para>
122 If you have cloned the <filename>poky</filename> Git
123 repository to create a
124 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
125 and you have sourced the environment setup script, QEMU is
126 installed and automatically available.
127 </para></listitem>
128 <listitem><para>
129 If you have downloaded a Yocto Project release and unpacked
130 it to create a
131 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
132 and you have sourced the environment setup script, QEMU is
133 installed and automatically available.
134 </para></listitem>
135 <listitem><para>
136 If you have installed the cross-toolchain tarball and you
137 have sourced the toolchain's setup environment script, QEMU
138 is also installed and automatically available.
139 </para></listitem>
140 </itemizedlist>
141 </para>
142 </section>
143
144 <section id='eclipse-overview'>
145 <title>Eclipse Yocto Plug-in</title>
146
147 <para>
148 The Eclipse IDE is a popular development environment and it fully
149 supports development using the Yocto Project.
150 When you install and configure the Eclipse Yocto Project Plug-in
151 into the Eclipse IDE, you maximize your Yocto Project experience.
152 Installing and configuring the Plug-in results in an environment
153 that has extensions specifically designed to let you more easily
154 develop software.
155 These extensions allow for cross-compilation, deployment, and
156 execution of your output into a QEMU emulation session.
157 You can also perform cross-debugging and profiling.
158 The environment also supports a suite of tools that allows you to
159 perform remote profiling, tracing, collection of power data,
160 collection of latency data, and collection of performance data.
161 </para>
162
163 <para>
164 For information about the application development workflow that
165 uses the Eclipse IDE and for a detailed example of how to install
166 and configure the Eclipse Yocto Project Plug-in, see the
167 "<link link='sdk-developing-applications-using-eclipse'>Developing Applications Using <trademark class='trade'>Eclipse</trademark></link>"
168 section.
169 </para>
170 </section>
171
172 <section id='user-space-tools'>
173 <title>User-Space Tools</title>
174
175 <para>
176 User-space tools are available as part of the SDK development
177 process and can be helpful.
178 The tools include LatencyTOP, PowerTOP, OProfile, Perf, SystemTap,
179 and Lttng-ust.
180 These tools are common development tools for the Linux platform.
181 <itemizedlist>
182 <listitem><para><emphasis>LatencyTOP:</emphasis> LatencyTOP
183 focuses on latency that causes skips in audio, stutters in
184 your desktop experience, or situations that overload your
185 server even when you have plenty of CPU power left.
186 </para></listitem>
187 <listitem><para><emphasis>PowerTOP:</emphasis> Helps you
188 determine what software is using the most power.
189 You can find out more about PowerTOP at
190 <ulink url='https://01.org/powertop/'></ulink>.</para></listitem>
191 <listitem><para><emphasis>OProfile:</emphasis> A system-wide
192 profiler for Linux systems that is capable of profiling all
193 running code at low overhead.
194 You can find out more about OProfile at
195 <ulink url='http://oprofile.sourceforge.net/about/'></ulink>.
196 For examples on how to setup and use this tool, see the
197 "<ulink url='&YOCTO_DOCS_PROF_URL;#profile-manual-oprofile'>OProfile</ulink>"
198 section in the Yocto Project Profiling and Tracing Manual.
199 </para></listitem>
200 <listitem><para><emphasis>Perf:</emphasis> Performance counters
201 for Linux used to keep track of certain types of hardware
202 and software events.
203 For more information on these types of counters see
204 <ulink url='https://perf.wiki.kernel.org/'></ulink>.
205 For examples on how to setup and use this tool, see the
206 "<ulink url='&YOCTO_DOCS_PROF_URL;#profile-manual-perf'>perf</ulink>"
207 section in the Yocto Project Profiling and Tracing Manual.
208 </para></listitem>
209 <listitem><para><emphasis>SystemTap:</emphasis> A free software
210 infrastructure that simplifies information gathering about
211 a running Linux system.
212 This information helps you diagnose performance or
213 functional problems.
214 SystemTap is not available as a user-space tool through
215 the Eclipse IDE Yocto Plug-in.
216 See <ulink url='http://sourceware.org/systemtap'></ulink>
217 for more information on SystemTap.
218 For examples on how to setup and use this tool, see the
219 "<ulink url='&YOCTO_DOCS_PROF_URL;#profile-manual-systemtap'>SystemTap</ulink>"
220 section in the Yocto Project Profiling and Tracing Manual.
221 </para></listitem>
222 <listitem><para><emphasis>Lttng-ust:</emphasis> A User-space
223 Tracer designed to provide detailed information on
224 user-space activity.
225 See <ulink url='http://lttng.org/ust'></ulink> for more
226 information on Lttng-ust.
227 </para></listitem>
228 </itemizedlist>
229 </para>
230 </section>
47</section> 231</section>
48 232
49<section id='sdk-development-model'> 233<section id='sdk-development-model'>