diff options
Diffstat (limited to 'documentation/adt-manual/adt-intro.rst')
-rw-r--r-- | documentation/adt-manual/adt-intro.rst | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/documentation/adt-manual/adt-intro.rst b/documentation/adt-manual/adt-intro.rst new file mode 100644 index 0000000000..4e44afacbe --- /dev/null +++ b/documentation/adt-manual/adt-intro.rst | |||
@@ -0,0 +1,136 @@ | |||
1 | ***************************************** | ||
2 | The Application Development Toolkit (ADT) | ||
3 | ***************************************** | ||
4 | |||
5 | Part of the Yocto Project development solution is an Application | ||
6 | Development Toolkit (ADT). The ADT provides you with a custom-built, | ||
7 | cross-development platform suited for developing a user-targeted product | ||
8 | application. | ||
9 | |||
10 | Fundamentally, the ADT consists of the following: | ||
11 | |||
12 | - An architecture-specific cross-toolchain and matching sysroot both | ||
13 | built by the `OpenEmbedded build | ||
14 | system <&YOCTO_DOCS_DEV_URL;#build-system-term>`__. The toolchain and | ||
15 | sysroot are based on a `Metadata <&YOCTO_DOCS_DEV_URL;#metadata>`__ | ||
16 | configuration and extensions, which allows you to cross-develop on | ||
17 | the host machine for the target hardware. | ||
18 | |||
19 | - The Eclipse IDE Yocto Plug-in. | ||
20 | |||
21 | - The Quick EMUlator (QEMU), which lets you simulate target hardware. | ||
22 | |||
23 | - Various user-space tools that greatly enhance your application | ||
24 | development experience. | ||
25 | |||
26 | The Cross-Development Toolchain | ||
27 | =============================== | ||
28 | |||
29 | The `Cross-Development | ||
30 | Toolchain <&YOCTO_DOCS_DEV_URL;#cross-development-toolchain>`__ consists | ||
31 | of a cross-compiler, cross-linker, and cross-debugger that are used to | ||
32 | develop user-space applications for targeted hardware. This toolchain is | ||
33 | created either by running the ADT Installer script, a toolchain | ||
34 | installer script, or through a `Build | ||
35 | Directory <&YOCTO_DOCS_DEV_URL;#build-directory>`__ that is based on | ||
36 | your Metadata configuration or extension for your targeted device. The | ||
37 | cross-toolchain works with a matching target sysroot. | ||
38 | |||
39 | Sysroot | ||
40 | ======= | ||
41 | |||
42 | The matching target sysroot contains needed headers and libraries for | ||
43 | generating binaries that run on the target architecture. The sysroot is | ||
44 | based on the target root filesystem image that is built by the | ||
45 | OpenEmbedded build system and uses the same Metadata configuration used | ||
46 | to build the cross-toolchain. | ||
47 | |||
48 | .. _eclipse-overview: | ||
49 | |||
50 | Eclipse Yocto Plug-in | ||
51 | ===================== | ||
52 | |||
53 | The Eclipse IDE is a popular development environment and it fully | ||
54 | supports development using the Yocto Project. When you install and | ||
55 | configure the Eclipse Yocto Project Plug-in into the Eclipse IDE, you | ||
56 | maximize your Yocto Project experience. Installing and configuring the | ||
57 | Plug-in results in an environment that has extensions specifically | ||
58 | designed to let you more easily develop software. These extensions allow | ||
59 | for cross-compilation, deployment, and execution of your output into a | ||
60 | QEMU emulation session. You can also perform cross-debugging and | ||
61 | profiling. The environment also supports a suite of tools that allows | ||
62 | you to perform remote profiling, tracing, collection of power data, | ||
63 | collection of latency data, and collection of performance data. | ||
64 | |||
65 | For information about the application development workflow that uses the | ||
66 | Eclipse IDE and for a detailed example of how to install and configure | ||
67 | the Eclipse Yocto Project Plug-in, see the "`Working Within | ||
68 | Eclipse <&YOCTO_DOCS_DEV_URL;#adt-eclipse>`__" section of the Yocto | ||
69 | Project Development Manual. | ||
70 | |||
71 | The QEMU Emulator | ||
72 | ================= | ||
73 | |||
74 | The QEMU emulator allows you to simulate your hardware while running | ||
75 | your application or image. QEMU is made available a number of ways: | ||
76 | |||
77 | - If you use the ADT Installer script to install ADT, you can specify | ||
78 | whether or not to install QEMU. | ||
79 | |||
80 | - If you have cloned the ``poky`` Git repository to create a `Source | ||
81 | Directory <&YOCTO_DOCS_DEV_URL;#source-directory>`__ and you have | ||
82 | sourced the environment setup script, QEMU is installed and | ||
83 | automatically available. | ||
84 | |||
85 | - If you have downloaded a Yocto Project release and unpacked it to | ||
86 | create a `Source Directory <&YOCTO_DOCS_DEV_URL;#source-directory>`__ | ||
87 | and you have sourced the environment setup script, QEMU is installed | ||
88 | and automatically available. | ||
89 | |||
90 | - If you have installed the cross-toolchain tarball and you have | ||
91 | sourced the toolchain's setup environment script, QEMU is also | ||
92 | installed and automatically available. | ||
93 | |||
94 | User-Space Tools | ||
95 | ================ | ||
96 | |||
97 | User-space tools are included as part of the Yocto Project. You will | ||
98 | find these tools helpful during development. The tools include | ||
99 | LatencyTOP, PowerTOP, OProfile, Perf, SystemTap, and Lttng-ust. These | ||
100 | tools are common development tools for the Linux platform. | ||
101 | |||
102 | - *LatencyTOP:* LatencyTOP focuses on latency that causes skips in | ||
103 | audio, stutters in your desktop experience, or situations that | ||
104 | overload your server even when you have plenty of CPU power left. | ||
105 | |||
106 | - *PowerTOP:* Helps you determine what software is using the most | ||
107 | power. You can find out more about PowerTOP at | ||
108 | ` <https://01.org/powertop/>`__. | ||
109 | |||
110 | - *OProfile:* A system-wide profiler for Linux systems that is capable | ||
111 | of profiling all running code at low overhead. You can find out more | ||
112 | about OProfile at ` <http://oprofile.sourceforge.net/about/>`__. For | ||
113 | examples on how to setup and use this tool, see the | ||
114 | "`OProfile <&YOCTO_DOCS_PROF_URL;#profile-manual-oprofile>`__" | ||
115 | section in the Yocto Project Profiling and Tracing Manual. | ||
116 | |||
117 | - *Perf:* Performance counters for Linux used to keep track of certain | ||
118 | types of hardware and software events. For more information on these | ||
119 | types of counters see ` <https://perf.wiki.kernel.org/>`__. For | ||
120 | examples on how to setup and use this tool, see the | ||
121 | "`perf <&YOCTO_DOCS_PROF_URL;#profile-manual-perf>`__" section in the | ||
122 | Yocto Project Profiling and Tracing Manual. | ||
123 | |||
124 | - *SystemTap:* A free software infrastructure that simplifies | ||
125 | information gathering about a running Linux system. This information | ||
126 | helps you diagnose performance or functional problems. SystemTap is | ||
127 | not available as a user-space tool through the Eclipse IDE Yocto | ||
128 | Plug-in. See ` <http://sourceware.org/systemtap>`__ for more | ||
129 | information on SystemTap. For examples on how to setup and use this | ||
130 | tool, see the | ||
131 | "`SystemTap <&YOCTO_DOCS_PROF_URL;#profile-manual-systemtap>`__" | ||
132 | section in the Yocto Project Profiling and Tracing Manual. | ||
133 | |||
134 | - *Lttng-ust:* A User-space Tracer designed to provide detailed | ||
135 | information on user-space activity. See ` <http://lttng.org/ust>`__ | ||
136 | for more information on Lttng-ust. | ||