diff options
-rw-r--r-- | documentation/sdk-manual/sdk-intro.xml | 184 |
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'> |