diff options
Diffstat (limited to 'documentation/sdk-manual/intro.rst')
-rw-r--r-- | documentation/sdk-manual/intro.rst | 74 |
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 | ||
10 | Welcome to the Yocto Project Application Development and the Extensible | 10 | Welcome to the Yocto Project Application Development and the Extensible |
11 | Software Development Kit (eSDK) manual. This manual provides information | 11 | Software Development Kit (eSDK) manual. This manual |
12 | that explains how to use both the Yocto Project extensible and standard | 12 | explains how to use both the Yocto Project extensible and standard |
13 | SDKs to develop applications and images. | 13 | SDKs 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 | |||
25 | All SDKs consist of the following: | 15 | All 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 | |||
48 | for a wrapper around the ``populate_sdk`` and ``populate_sdk_ext`` | 39 | for a wrapper around the ``populate_sdk`` and ``populate_sdk_ext`` |
49 | archives. | 40 | archives. |
50 | 41 | ||
51 | Another feature for the SDKs is that only one set of cross-compiler | 42 | Another feature of the SDKs is that only one set of cross-compiler |
52 | toolchain binaries are produced for any given architecture. This feature | 43 | toolchain binaries are produced for any given architecture. This feature |
53 | takes advantage of the fact that the target hardware can be passed to | 44 | takes 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 |
55 | environment script and contained in variables such as | 46 | environment 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 |
58 | for the tools. Understand, however, that every target still needs a | 49 | for the tools. Understand, however, that every target still needs its own |
59 | sysroot because those binaries are target-specific. | 50 | sysroot because those binaries are target-specific. |
60 | 51 | ||
61 | The SDK development environment consists of the following: | 52 | The SDK development environment consists of the following: |
@@ -75,7 +66,7 @@ The SDK development environment consists of the following: | |||
75 | 66 | ||
76 | In summary, the extensible and standard SDK share many features. | 67 | In summary, the extensible and standard SDK share many features. |
77 | However, the extensible SDK has powerful development tools to help you | 68 | However, the extensible SDK has powerful development tools to help you |
78 | more quickly develop applications. Following is a table that summarizes | 69 | more quickly develop applications. Here is a table that summarizes |
79 | the primary differences between the standard and extensible SDK types | 70 | the primary differences between the standard and extensible SDK types |
80 | when considering which to build: | 71 | when considering which to build: |
81 | 72 | ||
@@ -118,8 +109,8 @@ The Cross-Development Toolchain | |||
118 | 109 | ||
119 | The :term:`Cross-Development Toolchain` consists | 110 | The :term:`Cross-Development Toolchain` consists |
120 | of a cross-compiler, cross-linker, and cross-debugger that are used to | 111 | of a cross-compiler, cross-linker, and cross-debugger that are used to |
121 | develop user-space applications for targeted hardware. Additionally, for | 112 | develop user-space applications for targeted hardware; in addition, |
122 | an extensible SDK, the toolchain also has built-in ``devtool`` | 113 | the extensible SDK comes with built-in ``devtool`` |
123 | functionality. This toolchain is created by running a SDK installer | 114 | functionality. This toolchain is created by running a SDK installer |
124 | script or through a :term:`Build Directory` that is based on | 115 | script or through a :term:`Build Directory` that is based on |
125 | your metadata configuration or extension for your targeted device. The | 116 | your metadata configuration or extension for your targeted device. The |
@@ -138,21 +129,19 @@ The QEMU Emulator | |||
138 | ----------------- | 129 | ----------------- |
139 | 130 | ||
140 | The QEMU emulator allows you to simulate your hardware while running | 131 | The QEMU emulator allows you to simulate your hardware while running |
141 | your application or image. QEMU is not part of the SDK but is made | 132 | your application or image. QEMU is not part of the SDK but is |
142 | available a number of different ways: | 133 | automatically installed and available if you have done any one of |
134 | the 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 | ||
157 | SDK Development Model | 146 | SDK Development Model |
158 | ===================== | 147 | ===================== |
@@ -160,7 +149,7 @@ SDK Development Model | |||
160 | Fundamentally, the SDK fits into the development process as follows: | 149 | Fundamentally, 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 | ||
165 | The SDK is installed on any machine and can be used to develop applications, | 154 | The SDK is installed on any machine and can be used to develop applications, |
166 | images, and kernels. An SDK can even be used by a QA Engineer or Release | 155 | images, and kernels. An SDK can even be used by a QA Engineer or Release |
@@ -175,11 +164,11 @@ image. | |||
175 | 164 | ||
176 | You just need to follow these general steps: | 165 | You just need to follow these general steps: |
177 | 166 | ||
178 | 1. *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 | ||
182 | 2. *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 | ||
210 | 3. *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 | ||
218 | The remainder of this manual describes how to use the extensible and | 206 | The remainder of this manual describes how to use the extensible and |
219 | standard SDKs. Information also exists in appendix form that describes | 207 | standard SDKs. There is also information in appendix form describing |
220 | how you can build, install, and modify an SDK. | 208 | how you can build, install, and modify an SDK. |