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> |
