diff options
| author | Scott Rifenbark <srifenbark@gmail.com> | 2016-03-08 07:49:48 -0800 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-03-23 21:56:08 +0000 |
| commit | 815d68684eb964cb3675f42bf103b3995dfb9e05 (patch) | |
| tree | 8e443d9c1ddb997d583fcd83c43a3d3ecfba4943 | |
| parent | 4c5157f7dcfecab3b4e4483cd122e0ae74b377ee (diff) | |
| download | poky-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>
| -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'> |
