diff options
Diffstat (limited to 'documentation/sdk-manual/sdk-intro.xml')
-rw-r--r-- | documentation/sdk-manual/sdk-intro.xml | 124 |
1 files changed, 103 insertions, 21 deletions
diff --git a/documentation/sdk-manual/sdk-intro.xml b/documentation/sdk-manual/sdk-intro.xml index 0995f79a93..e0f51e1cf1 100644 --- a/documentation/sdk-manual/sdk-intro.xml +++ b/documentation/sdk-manual/sdk-intro.xml | |||
@@ -12,25 +12,24 @@ | |||
12 | Welcome to the Yocto Project Software Development Kit (SDK) | 12 | Welcome to the Yocto Project Software Development Kit (SDK) |
13 | Developer's Guide. | 13 | Developer's Guide. |
14 | This manual provides information that explains how to use both the | 14 | This manual provides information that explains how to use both the |
15 | standard Yocto Project SDK and an extensible SDK to develop | 15 | Yocto Project extensible and standard SDKs to develop |
16 | applications and images using the Yocto Project. | 16 | applications and images. |
17 | Additionally, the manual also provides information on how to use | 17 | Additionally, the manual also provides information on how to use |
18 | the popular <trademark class='trade'>Eclipse</trademark> IDE as part | 18 | the popular <trademark class='trade'>Eclipse</trademark> IDE as part |
19 | of your application development workflow within the SDK environment. | 19 | of your application development workflow within the SDK environment. |
20 | <note> | ||
21 | Prior to the 2.0 Release of the Yocto Project, application | ||
22 | development was primarily accomplished through the use of the | ||
23 | Application Development Toolkit (ADT) and the availability | ||
24 | of stand-alone cross-development toolchains and other tools. | ||
25 | With the 2.1 Release of the Yocto Project, application development | ||
26 | has transitioned to within a tool-rich extensible SDK and the more | ||
27 | traditional standard SDK. | ||
28 | </note> | ||
20 | </para> | 29 | </para> |
21 | 30 | ||
22 | <para> | 31 | <para> |
23 | Prior to the 2.0 Release of the Yocto Project, application | 32 | All SDKs consist of the following: |
24 | development was primarily accomplished through the use of the | ||
25 | Application Development Toolkit (ADT) and the availability | ||
26 | of stand-alone cross-development toolchains and other tools. | ||
27 | With the 2.1 Release of the Yocto Project, application development | ||
28 | has transitioned to within a more traditional SDK and extensible | ||
29 | SDK. | ||
30 | </para> | ||
31 | |||
32 | <para> | ||
33 | A standard SDK consists of the following: | ||
34 | <itemizedlist> | 33 | <itemizedlist> |
35 | <listitem><para><emphasis>Cross-Development Toolchain</emphasis>: | 34 | <listitem><para><emphasis>Cross-Development Toolchain</emphasis>: |
36 | This toolchain contains a compiler, debugger, and various | 35 | This toolchain contains a compiler, debugger, and various |
@@ -46,19 +45,19 @@ | |||
46 | preparing for SDK use. | 45 | preparing for SDK use. |
47 | </para></listitem> | 46 | </para></listitem> |
48 | </itemizedlist> | 47 | </itemizedlist> |
49 | You can use the standard SDK to independently develop and test code | ||
50 | that is destined to run on some target machine. | ||
51 | </para> | 48 | </para> |
52 | 49 | ||
53 | <para> | 50 | <para> |
54 | An extensible SDK consists of everything that the standard SDK has plus | 51 | Additionally an extensible SDK has tools that allow you to easily add |
55 | tools that allow you to easily add new applications and libraries to | 52 | new applications and libraries to an image, modify the source of an |
56 | an image, modify the source of an existing component, test changes on | 53 | existing component, test changes on the target hardware, and easily |
57 | the target hardware, and easily integrate an application into the | 54 | integrate an application into the |
58 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-system-term'>OpenEmbedded build system</ulink>. | 55 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-system-term'>OpenEmbedded build system</ulink>. |
59 | </para> | 56 | </para> |
60 | 57 | ||
61 | <para> | 58 | <para> |
59 | You can use an SDK to independently develop and test code | ||
60 | that is destined to run on some target machine. | ||
62 | SDKs are completely self-contained. | 61 | SDKs are completely self-contained. |
63 | The binaries are linked against their own copy of | 62 | The binaries are linked against their own copy of |
64 | <filename>libc</filename>, which results in no dependencies | 63 | <filename>libc</filename>, which results in no dependencies |
@@ -73,7 +72,7 @@ | |||
73 | 72 | ||
74 | <para> | 73 | <para> |
75 | Another feature for the SDKs is that only one set of cross-compiler | 74 | Another feature for the SDKs is that only one set of cross-compiler |
76 | toolchain binaries are produced per architecture. | 75 | toolchain binaries are produced for any given architecture. |
77 | This feature takes advantage of the fact that the target hardware can | 76 | This feature takes advantage of the fact that the target hardware can |
78 | be passed to <filename>gcc</filename> as a set of compiler options. | 77 | be passed to <filename>gcc</filename> as a set of compiler options. |
79 | Those options are set up by the environment script and contained in | 78 | Those options are set up by the environment script and contained in |
@@ -98,6 +97,8 @@ | |||
98 | configuration and extensions, | 97 | configuration and extensions, |
99 | which allows you to cross-develop on the host machine for the | 98 | which allows you to cross-develop on the host machine for the |
100 | target hardware. | 99 | target hardware. |
100 | Additionally, the extensible SDK contains the | ||
101 | <filename>devtool</filename> functionality. | ||
101 | </para></listitem> | 102 | </para></listitem> |
102 | <listitem><para>The Quick EMUlator (QEMU), which lets you simulate | 103 | <listitem><para>The Quick EMUlator (QEMU), which lets you simulate |
103 | target hardware. | 104 | target hardware. |
@@ -122,6 +123,85 @@ | |||
122 | </itemizedlist> | 123 | </itemizedlist> |
123 | </para> | 124 | </para> |
124 | 125 | ||
126 | <para> | ||
127 | In summary, the extensible and standard SDK share many features. | ||
128 | However, the extensible SDK has powerful development tools to help you | ||
129 | more quickly develop applications. | ||
130 | Following is a table that summarizes the primary differences between | ||
131 | the standard and extensible SDK types when considering which to | ||
132 | build: | ||
133 | <informaltable frame='none'> | ||
134 | <tgroup cols='3' align='left' colsep='1' rowsep='1'> | ||
135 | <colspec colname='c1' colwidth='1*'/> | ||
136 | <colspec colname='c2' colwidth='1*'/> | ||
137 | <colspec colname='c3' colwidth='1*'/> | ||
138 | <thead> | ||
139 | <row> | ||
140 | <entry align="left"><emphasis>Feature</emphasis></entry> | ||
141 | <entry align="left"><emphasis>Standard SDK</emphasis></entry> | ||
142 | <entry align="left"><emphasis>Extensible SDK</emphasis></entry> | ||
143 | </row> | ||
144 | </thead> | ||
145 | <tbody> | ||
146 | <row> | ||
147 | <entry align="left">Toolchain</entry> | ||
148 | <entry align="left">Yes</entry> | ||
149 | <entry align="left">Yes*</entry> | ||
150 | </row> | ||
151 | <row> | ||
152 | <entry align="left">Debugger</entry> | ||
153 | <entry align="left">Yes</entry> | ||
154 | <entry align="left">Yes*</entry> | ||
155 | </row> | ||
156 | <row> | ||
157 | <entry align="left">Size</entry> | ||
158 | <entry align="left">100+ MBytes</entry> | ||
159 | <entry align="left">1+ GBytes (or 300+ MBytes for minimal w/toolchain)</entry> | ||
160 | </row> | ||
161 | <row> | ||
162 | <entry align="left"><filename>devtool</filename></entry> | ||
163 | <entry align="left">No</entry> | ||
164 | <entry align="left">Yes</entry> | ||
165 | </row> | ||
166 | <row> | ||
167 | <entry align="left">Build Images</entry> | ||
168 | <entry align="left">No</entry> | ||
169 | <entry align="left">Yes</entry> | ||
170 | </row> | ||
171 | <row> | ||
172 | <entry align="left">Updateable</entry> | ||
173 | <entry align="left">No</entry> | ||
174 | <entry align="left">Yes</entry> | ||
175 | </row> | ||
176 | <row> | ||
177 | <entry align="left">Managed Sysroot**</entry> | ||
178 | <entry align="left">No</entry> | ||
179 | <entry align="left">Yes</entry> | ||
180 | </row> | ||
181 | <row> | ||
182 | <entry align="left">Installed Packages</entry> | ||
183 | <entry align="left">No***</entry> | ||
184 | <entry align="left">Yes****</entry> | ||
185 | </row> | ||
186 | <row> | ||
187 | <entry align="left">Construction</entry> | ||
188 | <entry align="left">Packages</entry> | ||
189 | <entry align="left">Shared State</entry> | ||
190 | </row> | ||
191 | </tbody> | ||
192 | </tgroup> | ||
193 | </informaltable> | ||
194 | <literallayout class='monospaced'> | ||
195 | * Extensible SDK will contain the toolchain and debugger if <ulink url='&YOCTO_DOCS_REF_URL;#var-SDK_EXT_TYPE'><filename>SDK_EXT_TYPE</filename></ulink> is "full" or <ulink url='&YOCTO_DOCS_REF_URL;#var-SDK_INCLUDE_TOOLCHAIN'><filename>SDK_INCLUDE_TOOLCHAIN</filename></ulink> is "1", which is the default. | ||
196 | |||
197 | ** Sysroot is managed through use of <filename>devtool</filename>. Thus, it is less likely that you will corrupt your SDK sysroot when you try to add additional libraries. | ||
198 | |||
199 | *** Runtime package management can be added to the standard SDK but it is not supported by default. | ||
200 | |||
201 | **** You must build and make the shared state available to extensible SDK users for "packages" you want to enable users to install. | ||
202 | </literallayout> | ||
203 | </para> | ||
204 | |||
125 | <section id='the-cross-development-toolchain'> | 205 | <section id='the-cross-development-toolchain'> |
126 | <title>The Cross-Development Toolchain</title> | 206 | <title>The Cross-Development Toolchain</title> |
127 | 207 | ||
@@ -131,6 +211,8 @@ | |||
131 | consists of a cross-compiler, cross-linker, and cross-debugger | 211 | consists of a cross-compiler, cross-linker, and cross-debugger |
132 | that are used to develop user-space applications for targeted | 212 | that are used to develop user-space applications for targeted |
133 | hardware. | 213 | hardware. |
214 | Additionally, for an extensible SDK, the toolchain also has | ||
215 | built-in <filename>devtool</filename> functionality. | ||
134 | This toolchain is created by running a toolchain installer script | 216 | This toolchain is created by running a toolchain installer script |
135 | or through a | 217 | or through a |
136 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink> | 218 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink> |
@@ -258,7 +340,7 @@ | |||
258 | For information on how to install the SDK, see the | 340 | For information on how to install the SDK, see the |
259 | "<link linkend='sdk-installing-the-sdk'>Installing the SDK</link>" | 341 | "<link linkend='sdk-installing-the-sdk'>Installing the SDK</link>" |
260 | section.</para></listitem> | 342 | section.</para></listitem> |
261 | <listitem><para><emphasis>Download the Target Image:</emphasis> | 343 | <listitem><para><emphasis>Download or Build the Target Image:</emphasis> |
262 | The Yocto Project supports several target architectures | 344 | The Yocto Project supports several target architectures |
263 | and has many pre-built kernel images and root filesystem | 345 | and has many pre-built kernel images and root filesystem |
264 | images.</para> | 346 | images.</para> |