summaryrefslogtreecommitdiffstats
path: root/documentation/sdk-manual/intro.rst
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/sdk-manual/intro.rst')
-rw-r--r--documentation/sdk-manual/intro.rst74
1 files changed, 31 insertions, 43 deletions
diff --git a/documentation/sdk-manual/intro.rst b/documentation/sdk-manual/intro.rst
index e4b9b05ba6..e8fd191dbc 100644
--- a/documentation/sdk-manual/intro.rst
+++ b/documentation/sdk-manual/intro.rst
@@ -8,29 +8,20 @@ eSDK Introduction
8================= 8=================
9 9
10Welcome to the Yocto Project Application Development and the Extensible 10Welcome to the Yocto Project Application Development and the Extensible
11Software Development Kit (eSDK) manual. This manual provides information 11Software Development Kit (eSDK) manual. This manual
12that explains how to use both the Yocto Project extensible and standard 12explains how to use both the Yocto Project extensible and standard
13SDKs to develop applications and images. 13SDKs to develop applications and images.
14 14
15.. note::
16
17 Prior to the 2.0 Release of the Yocto Project, application
18 development was primarily accomplished through the use of the
19 Application Development Toolkit (ADT) and the availability of
20 stand-alone cross-development toolchains and other tools. With the
21 2.1 Release of the Yocto Project, application development has
22 transitioned to within a tool-rich extensible SDK and the more
23 traditional standard SDK.
24
25All SDKs consist of the following: 15All SDKs consist of the following:
26 16
27- *Cross-Development Toolchain*: This toolchain contains a compiler, 17- *Cross-Development Toolchain*: This toolchain contains a compiler,
28 debugger, and various miscellaneous tools. 18 debugger, and various associated tools.
29 19
30- *Libraries, Headers, and Symbols*: The libraries, headers, and 20- *Libraries, Headers, and Symbols*: The libraries, headers, and
31 symbols are specific to the image (i.e. they match the image). 21 symbols are specific to the image (i.e. they match the image
22 against which the SDK was built).
32 23
33- *Environment Setup Script*: This ``*.sh`` file, once run, sets up the 24- *Environment Setup Script*: This ``*.sh`` file, once sourced, sets up the
34 cross-development environment by defining variables and preparing for 25 cross-development environment by defining variables and preparing for
35 SDK use. 26 SDK use.
36 27
@@ -48,14 +39,14 @@ time since that path cannot be dynamically altered. This is the reason
48for a wrapper around the ``populate_sdk`` and ``populate_sdk_ext`` 39for a wrapper around the ``populate_sdk`` and ``populate_sdk_ext``
49archives. 40archives.
50 41
51Another feature for the SDKs is that only one set of cross-compiler 42Another feature of the SDKs is that only one set of cross-compiler
52toolchain binaries are produced for any given architecture. This feature 43toolchain binaries are produced for any given architecture. This feature
53takes advantage of the fact that the target hardware can be passed to 44takes advantage of the fact that the target hardware can be passed to
54``gcc`` as a set of compiler options. Those options are set up by the 45``gcc`` as a set of compiler options. Those options are set up by the
55environment script and contained in variables such as 46environment script and contained in variables such as
56:term:`CC` and 47:term:`CC` and
57:term:`LD`. This reduces the space needed 48:term:`LD`. This reduces the space needed
58for the tools. Understand, however, that every target still needs a 49for the tools. Understand, however, that every target still needs its own
59sysroot because those binaries are target-specific. 50sysroot because those binaries are target-specific.
60 51
61The SDK development environment consists of the following: 52The SDK development environment consists of the following:
@@ -75,7 +66,7 @@ The SDK development environment consists of the following:
75 66
76In summary, the extensible and standard SDK share many features. 67In summary, the extensible and standard SDK share many features.
77However, the extensible SDK has powerful development tools to help you 68However, the extensible SDK has powerful development tools to help you
78more quickly develop applications. Following is a table that summarizes 69more quickly develop applications. Here is a table that summarizes
79the primary differences between the standard and extensible SDK types 70the primary differences between the standard and extensible SDK types
80when considering which to build: 71when considering which to build:
81 72
@@ -118,8 +109,8 @@ The Cross-Development Toolchain
118 109
119The :term:`Cross-Development Toolchain` consists 110The :term:`Cross-Development Toolchain` consists
120of a cross-compiler, cross-linker, and cross-debugger that are used to 111of a cross-compiler, cross-linker, and cross-debugger that are used to
121develop user-space applications for targeted hardware. Additionally, for 112develop user-space applications for targeted hardware; in addition,
122an extensible SDK, the toolchain also has built-in ``devtool`` 113the extensible SDK comes with built-in ``devtool``
123functionality. This toolchain is created by running a SDK installer 114functionality. This toolchain is created by running a SDK installer
124script or through a :term:`Build Directory` that is based on 115script or through a :term:`Build Directory` that is based on
125your metadata configuration or extension for your targeted device. The 116your metadata configuration or extension for your targeted device. The
@@ -138,21 +129,19 @@ The QEMU Emulator
138----------------- 129-----------------
139 130
140The QEMU emulator allows you to simulate your hardware while running 131The QEMU emulator allows you to simulate your hardware while running
141your application or image. QEMU is not part of the SDK but is made 132your application or image. QEMU is not part of the SDK but is
142available a number of different ways: 133automatically installed and available if you have done any one of
134the following:
143 135
144- If you have cloned the ``poky`` Git repository to create a 136- cloned the ``poky`` Git repository to create a
145 :term:`Source Directory` and you have 137 :term:`Source Directory` and sourced the environment setup script.
146 sourced the environment setup script, QEMU is installed and
147 automatically available.
148 138
149- If you have downloaded a Yocto Project release and unpacked it to 139- downloaded a Yocto Project release and unpacked it to
150 create a Source Directory and you have sourced the environment setup 140 create a Source Directory and sourced the environment setup
151 script, QEMU is installed and automatically available. 141 script.
152 142
153- If you have installed the cross-toolchain tarball and you have 143- installed the cross-toolchain tarball and
154 sourced the toolchain's setup environment script, QEMU is also 144 sourced the toolchain's setup environment script.
155 installed and automatically available.
156 145
157SDK Development Model 146SDK Development Model
158===================== 147=====================
@@ -160,7 +149,7 @@ SDK Development Model
160Fundamentally, the SDK fits into the development process as follows: 149Fundamentally, the SDK fits into the development process as follows:
161 150
162.. image:: figures/sdk-environment.png 151.. image:: figures/sdk-environment.png
163 :align: center 152 :width: 100%
164 153
165The SDK is installed on any machine and can be used to develop applications, 154The SDK is installed on any machine and can be used to develop applications,
166images, and kernels. An SDK can even be used by a QA Engineer or Release 155images, and kernels. An SDK can even be used by a QA Engineer or Release
@@ -175,11 +164,11 @@ image.
175 164
176You just need to follow these general steps: 165You just need to follow these general steps:
177 166
1781. *Install the SDK for your target hardware:* For information on how to 167#. *Install the SDK for your target hardware:* For information on how to
179 install the SDK, see the "`Installing the 168 install the SDK, see the ":ref:`sdk-manual/using:installing the sdk`"
180 SDK <#sdk-installing-the-sdk>`__" section. 169 section.
181 170
1822. *Download or Build the Target Image:* The Yocto Project supports 171#. *Download or Build the Target Image:* The Yocto Project supports
183 several target architectures and has many pre-built kernel images and 172 several target architectures and has many pre-built kernel images and
184 root filesystem images. 173 root filesystem images.
185 174
@@ -202,12 +191,11 @@ You just need to follow these general steps:
202 191
203 .. note:: 192 .. note::
204 193
205 To use the root filesystem in QEMU, you need to extract it. See 194 To use the root filesystem in QEMU, you need to extract it. See the
206 the " 195 ":ref:`sdk-manual/appendix-obtain:extracting the root filesystem`"
207 Extracting the Root Filesystem 196 section for information on how to do this extraction.
208 " section for information on how to extract the root filesystem.
209 197
2103. *Develop and Test your Application:* At this point, you have the 198#. *Develop and Test your Application:* At this point, you have the
211 tools to develop your application. If you need to separately install 199 tools to develop your application. If you need to separately install
212 and use the QEMU emulator, you can go to `QEMU Home 200 and use the QEMU emulator, you can go to `QEMU Home
213 Page <https://wiki.qemu.org/Main_Page>`__ to download and learn about 201 Page <https://wiki.qemu.org/Main_Page>`__ to download and learn about
@@ -216,5 +204,5 @@ You just need to follow these general steps:
216 within the Yocto Project. 204 within the Yocto Project.
217 205
218The remainder of this manual describes how to use the extensible and 206The remainder of this manual describes how to use the extensible and
219standard SDKs. Information also exists in appendix form that describes 207standard SDKs. There is also information in appendix form describing
220how you can build, install, and modify an SDK. 208how you can build, install, and modify an SDK.