aboutsummaryrefslogtreecommitdiffstats
path: root/documentation/sdk-manual/sdk-intro.xml
blob: ccc71c8cf4f0c54dbb2c87a05ec51cc9d7f53096 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >

<chapter id='sdk-intro'>
<title>Introduction</title>

<section id='sdk-manual-intro'>
    <title>Introduction</title>

    <para>
        Welcome to the Yocto Project Software Development Kit (SDK)
        Developer's Guide.
        This manual provides information that lets you use both the standard
        Yocto Project SDK and an extensible SDK to develop applications and
        images using the Yocto Project.
        Additionally, the manual also provides information on how to use
        the popular <trademark class='trade'>Eclipse</trademark> IDE as part
        of your application development workflow.
    </para>

    <para>
        Prior to the 2.0 Release of the Yocto Project, application
        development was primarily accomplished through the use of the
        Application Development Toolkit (ADT) and the availability
        of stand-alone cross-development toolchains and other tools.
        With the 2.1 Release of the Yocto Project, application development
        has transitioned to within a more traditional SDK and extensible
        SDK.
    </para>

    <para>
        A standard SDK consists of a cross-development toolchain that contains
        a compiler, debugger, and various miscellaneous tools; libraries,
        headers, and symbols to match an image; and environment setup script.
        You can use this SDK to independently develop and test code that is
        destined to run on some target machine.
    </para>

    <para>
        An extensible SDK consists of everything that the standard SDK has plus
        tools that allow you to easily add new applications and libraries to
        an image, modify the source of an existing component, test changes on
        the target hardware, and easily integrate an application into the
        the Yocto Project build system.
    </para>
</section>

<section id='sdk-development-model'>
    <title>SDK Development Model</title>

    <para>
        Fundamentally, the SDK fits into the development process as follows:
        <imagedata fileref="figures/sdk-environment.png" align="center" width="6in" depth="5in" scalefit="100" />
        The SDK is installed on any machine and can be used to develop
        applications, images, and kernels.
        An SDK can even be used by a QA Engineer or Release Engineer.
        The fundamental concept is that the machine that has the SDK installed
        does not have to be associated with the machine that has the
        Yocto Project installed.
        A developer can independently compile and test an object on their
        machine and then, when the object is ready for integration into an
        image, they can simply make it available to the machine that has the
        the Yocto Project.
        Once the object is available, the image can be rebuilt using the
        Yocto Project to produce the modified image.
    </para>

    <para>
        You just need to follow these general steps:
        <orderedlist>
            <listitem><para><emphasis>Install the SDK for your target hardware:</emphasis>
                For information on how to install the SDK, see the
                "<link url='sdk-installing-the-sdk'>Installing the SDK</link>"
                section.</para></listitem>
            <listitem><para><emphasis>Download the Target Image:</emphasis>
                The Yocto Project supports several target architectures
                and has many pre-built kernel images and root filesystem
                images.</para>
                <para>If you are going to develop your application on
                hardware, go to the
                <ulink url='&YOCTO_MACHINES_DL_URL;'><filename>machines</filename></ulink>
                download area and choose a target machine area
                from which to download the kernel image and root filesystem.
                This download area could have several files in it that
                support development using actual hardware.
                For example, the area might contain
                <filename>.hddimg</filename> files that combine the
                kernel image with the filesystem, boot loaders, and
                so forth.
                Be sure to get the files you need for your particular
                development process.</para>
                <para>If you are going to develop your application and
                then run and test it using the QEMU emulator, go to the
                <ulink url='&YOCTO_QEMU_DL_URL;'><filename>machines/qemu</filename></ulink>
                download area.
                From this area, go down into the directory for your
                target architecture (e.g. <filename>qemux86_64</filename>
                for an <trademark class='registered'>Intel</trademark>-based
                64-bit architecture).
                Download kernel, root filesystem, and any other files you
                need for your process.
                <note>In order to use the root filesystem in QEMU, you
                need to extract it.
                See the
                "<link url='sdk-extracting-the-root-filesystem'>Extracting the Root Filesystem</link>"
                section for information on how to extract the root
                filesystem.</note></para></listitem>
            <listitem><para><emphasis>Develop and Test your
                Application:</emphasis>  At this point, you have the tools
                to develop your application.
                If you need to separately install and use the QEMU
                emulator, you can go to
                <ulink url='http://wiki.qemu.org/Main_Page'>QEMU Home Page</ulink>
                to download and learn about the emulator.
                You can see the
                "<ulink url='&YOCTO_DOCS_DEV_URL;#dev-manual-qemu'>Using the Quick EMUlator (QEMU)</ulink>"
                chapter in the Yocto Project Development Manual
                for information on using QEMU within the Yocto
                Project.</para></listitem>
        </orderedlist>
    </para>

    <para>
        The remainder of this manual describes how to use both the standard
        SDK and the extensible SDK.
        Information also exists in appendix form that describes how you can
        build, install, and modify an SDK.
    </para>
</section>

</chapter>
<!--
vim: expandtab tw=80 ts=4
-->