From 04ca8b2862cf720159ba2c6672c64efa615f207e Mon Sep 17 00:00:00 2001 From: Scott Rifenbark Date: Thu, 1 Sep 2011 09:19:36 -0700 Subject: YOCTO #1419: General edits and fix for oprofile-server rev requirements. I performed general edits to this chapter as well as addressed the two items for the YOCTO #1419, which was re-opened. These included specifying oprofile version 0.9.4 required and the note that oprofile-server is only installed by default in the core-image-sato-sdk image. (From yocto-docs rev: fdca6458d9cd431052126d31f6eb4396c3327982) Signed-off-by: Scott Rifenbark Signed-off-by: Richard Purdie --- documentation/adt-manual/adt-eclipse.xml | 419 ++++++++++++++++--------------- 1 file changed, 222 insertions(+), 197 deletions(-) diff --git a/documentation/adt-manual/adt-eclipse.xml b/documentation/adt-manual/adt-eclipse.xml index cb46598910..dee8e1fb1a 100644 --- a/documentation/adt-manual/adt-eclipse.xml +++ b/documentation/adt-manual/adt-eclipse.xml @@ -3,6 +3,7 @@ Working Within Eclipse + The Eclipse IDE is a popular development environment and it fully supports development using Yocto Project. @@ -10,10 +11,10 @@ the Eclipse IDE, you maximize your Yocto Project design experience. Installing and configuring the Plug-in results in an environment that has extensions specifically designed to let you more easily develop software. - These extensions allow for cross-compilation and deployment and execution of + These extensions allow for cross-compilation, deployment, and execution of your output into a QEMU emulation session. You can also perform cross-debugging and profiling. - The environment also has a suite of tools that allows you to perform + The environment also supports a suite of tools that allows you to perform remote profiling, tracing, collection of power data, collection of latency data, and collection of performance data. @@ -24,19 +25,21 @@
Setting Up the Eclipse IDE + - To develop within the Eclipse IDE you need to do the following: + To develop within the Eclipse IDE, you need to do the following: Be sure the optimal version of Eclipse IDE - is installed. - Install Eclipse plug-in requirements prior to installing - the Eclipse Yocto Plug-in. + is installed. + Install the Eclipse Plug-in requirements prior to installing + the Eclipse Yocto Plug-in. Configure the Eclipse Yocto Plug-in.
Installing Eclipse IDE + It is recommended that you have the Indigo 3.7 version of the Eclipse IDE installed on your development system. @@ -46,29 +49,32 @@ This version contains the Eclipse Platform, the Java Development Tools (JDT), and the Plug-in Development Environment. + Once you have downloaded the tarball, extract it into a clean directory and complete the installation. + One issue exists that you need to be aware of regarding the Java Virtual machine’s garbage collection (GC) process. The GC process does not clean up the permanent generation space (PermGen). - This space stores meta-data descriptions of classes. + This space stores metadata descriptions of classes. The default value is set too small and it could trigger an out-of-memory error such as the following: Java.lang.OutOfMemoryError: PermGen space + This error causes the application to hang. + To fix this issue, you can use the --vmargs - option when you start - Eclipse to increase the size of the permanent generation space: + option when you start Eclipse to increase the size of the permanent generation space: eclipse --vmargs --XX:PermSize=256M @@ -77,118 +83,125 @@
Installing Required Plug-ins and the Eclipse Yocto Plug-in + Before installing the Yocto Plug-in, you need to be sure that the CDT 8.0, RSE 3.2, and Autotools plug-ins are all installed in the following order. - After installing these three plug-ins, you can install the - Eclipse Yocto plug-in. + After installing these three plug-ins, you can install the Eclipse Yocto Plug-in. Use the following URLs for the plug-ins: - CDT 8.0 – - : - For CDT main features, select the checkbox so you get all items. - For CDT optional features expand the selections and check - C/C++ Remote Launch. - RSE 3.2 – - : - Check the box next to TM and RSE Main Features so you select all - those items. - Note that all items in the main features depend on 3.2.1 version. - Expand the items under TM and RSE Uncategorized 3.2.1 and - select the following: Remote System Explorer End-User Runtime, - Remote System Explorer Extended SDK, - Remote System Explorer User Actions, - RSE Core, RSE Terminals UI, - and Target Management Terminal. - Autotools – - : - Expand the items under “Linux Tools” and select “Autotools support for - CDT (Incubation)”. - Yocto Plug-in – - : - Check the box next to Development tools & SDKs for Yocto Linux - to select all the items. + + CDT 8.0: + For CDT main features, select the + checkbox so you get all items. + For CDT optional features expand the selections and check + C/C++ Remote Launch. + + RSE 3.2: + Check the box next to TM and RSE Main Features so you select all + those items. + Note that all items in the main features depend on 3.2.1 version. + Expand the items under TM and RSE Uncategorized 3.2.1 and + select the following: Remote System Explorer End-User Runtime, + Remote System Explorer Extended SDK, + Remote System Explorer User Actions, + RSE Core, RSE Terminals UI, + and Target Management Terminal. + + Autotools: + Expand the items under “Linux Tools” and select “Autotools support for + CDT (Incubation)”. + + Yocto Plug-in: + Check the box next to + Development tools & SDKs for Yocto Linux + to select all the items. + - Follow these general steps to install a plug-in: + Follow these general steps to install an Eclipse plug-in: - From within the Eclipse IDE select the - Install New Software item from the Help - menu. + From within the Eclipse IDE, select the + Install New Software item from the Help + menu. Click Add… in the - Work with: area. + Work with: area. Enter the URL for the repository and leave the Name - field blank. + field blank. Check the boxes next to the software you need to - install and then complete the installation. - For information on the specific software packages you need to include, - see the previous list. + install and then complete the installation. + For information on the specific software packages you need to include, + see the previous list.
Configuring the Plug-in + Configuring the Eclipse Yocto Plug-in involves choosing the Cross Compiler Options, selecting the Target Architecture, and choosing the Target Options. - These settings are the default settings for all projects. - You do have opportunities to change them later if you choose to when + The settings you choose become the default settings for all projects. + You do have opportunities to change them later when you configure the project (see the following section). + To start, you need to do the following from within the Eclipse IDE: Choose Windows -> Preferences to display - the Preferences Dialog + the Preferences Dialog Click Yocto SDK
Configuring the Cross-Compiler Options + Choose between Stand-alone Prebuilt Toolchain - and Build System Derived Toolchain for Cross + and Build System Derived Toolchain for Cross Compiler Options. - Stand-alone Prebuilt Toolchain – - Select this mode - when you are not concerned with building a target image or you do not have - a Yocto Project build tree on your development system. - For example, suppose you are an application developer and do not - need to build a target image. - Instead, you just want to use an architecture-specific toolchain on an - existing kernel and target root filesystem. - When you use Stand-alone Prebuilt Toolchain - you are using the toolchain installed - in the /opt/poky directory. - Build System Derived Toolchain – - Select this mode - if you are building images for target hardware or your - development environment already has a Yocto Project build tree. - In this case, you likely already have a Yocto Project build tree on - your system or you (or someone else) will be building one. - When you select Build System Derived Toolchain - you are using the toolchain bundled - inside the Yocto Project build tree. - If you use this mode, you must also supply the Yocto Project build directory - in the Preferences Dialog. + Stand-alone Prebuilt Toolchain: + Select this mode + when you are not concerned with building a target image or you do not have + a Yocto Project build tree on your development system. + For example, suppose you are an application developer and do not + need to build a target image. + Instead, you just want to use an architecture-specific toolchain on an + existing kernel and target root filesystem. + When you use Stand-alone Prebuilt Toolchain, + you are using the toolchain installed + in the /opt/poky directory. + Build System Derived Toolchain: + Select this mode + if you are building images for target hardware or your + development environment already has a Yocto Project build tree. + In this case, you likely already have a Yocto Project build tree on + your system or you (or someone else) will be building one. + When you select Build System Derived Toolchain, + you are using the toolchain bundled + inside the Yocto Project build tree. + If you use this mode, you must also supply the Yocto Project build directory + in the Preferences Dialog.
Configuring the Sysroot + Specify the sysroot location, which is where the root filesystem for the target hardware is created on the development system by the ADT Installer. The QEMU user-space tools, the - NFS boot process and the cross-toolchain all use the sysroot location + NFS boot process, and the cross-toolchain all use the sysroot location regardless of whether you select (Stand-alone Prebuilt Toolchain or Build System Derived Toolchain). @@ -197,59 +210,60 @@
Selecting the Target Architecture + Use the pull-down Target Architecture menu and select the target architecture. + The target architecture is the type of hardware you are going to use or emulate. This pull-down menu should have the supported architectures. - If the architecture you need is not listed in the menu then you - will need to re-visit - - Preparing to Use the Application Development Toolkit (ADT) - section earlier in this document. + If the architecture you need is not listed in the menu, you + will need to re-visit the section "Preparing to Use + the Application Development Toolkit (ADT)" earlier in this document.
Choosing the Target Options + You can choose to emulate hardware using the QEMU emulator, or you can choose to use actual hardware. - External HW – Select this option - if you will be using actual hardware. - QEMU – Select this option if - you will be using the QEMU emulator. - If you are using the emulator, you also need to locate the kernel - and specify any custom options. - If you select Build System Derived Toolchain, - the target kernel you built will be located in the - Yocto Project build tree in tmp/deploy/images directory. - If you select Stand-alone Prebuilt Toolchain, the - pre-built kernel you downloaded is located - in the directory you specified when you downloaded the image. - Most custom options are for advanced QEMU users to further - customize their QEMU instance. - These options are specified between paired angled brackets. - Some options must be specified outside the brackets. - In particular, the options serial, - nographic, and kvm must all - be outside the brackets. - Use the man qemu command to get help on all the options - and their use. - The following is an example: + External HW: Select this option + if you will be using actual hardware. + QEMU: Select this option if + you will be using the QEMU emulator. + If you are using the emulator, you also need to locate the kernel + and specify any custom options. + If you select Build System Derived Toolchain, + the target kernel you built will be located in the + Yocto Project build tree in tmp/deploy/images directory. + If you select Stand-alone Prebuilt Toolchain, the + pre-built kernel you downloaded is located + in the directory you specified when you downloaded the image. + Most custom options are for advanced QEMU users to further + customize their QEMU instance. + These options are specified between paired angled brackets. + Some options must be specified outside the brackets. + In particular, the options serial, + nographic, and kvm must all + be outside the brackets. + Use the man qemu command to get help on all the options + and their use. + The following is an example: serial ‘<-m 256 -full-screen>’ - - - - Regardless of the mode, Sysroot is already defined in the “Sysroot” - field. + + + Regardless of the mode, Sysroot is already defined in the “Sysroot” + field. + Click the OK button to save your plug-in configurations. @@ -259,14 +273,15 @@
Creating the Project + You can create two types of projects: Autotools-based, or Makefile-based. This section describes how to create autotools-based projects from within the Eclipse IDE. - For information on creating projects in a terminal window see - Using the Command Line - section. + For information on creating Makefile-based projects in a terminal window see the section + "Using the Command Line". + To create a project based on a Yocto template and then display the source code, follow these steps: @@ -276,54 +291,56 @@ Double click C Project to create the project. Double click Yocto SDK Project. Select Hello World ANSI C Autotools Project. - This is an Autotools-based project based on a Yocto Project template. + This is an Autotools-based project based on a Yocto Project template. Put a name in the Project name: field. Click Next. Add information in the Author field. Use GNU General Public License v2.0 - for the License. + for the License. Click Finish. Answer Yes to the open perspective prompt. In the Project Explorer expand your project. Expand src. Double click on your source file and the code appears - in the window. - This is the template. + in the window. + This is the template.
Configuring the Cross-Toolchains + - The previous section, - Configuring the Cross-Compiler Options, set up the default project + The previous section, " + Configuring the Cross-Compiler Options", set up the default project configurations. You can change these settings for a given project by following these steps: - Select Project -> Invoke Yocto Tools -> Reconfigure Yocto - - This selection brings up the project's Yocto Settings Dialog. - Settings are inherited from the default project configuration. - The information in this dialog is identical to that chosen earlier - for the Cross Compiler Option - (Stand-alone Prebuilt Toolchain or - Build System Derived Toolchain), - the Target Architecture, and the - Target Options. - The settings are inherited from the Yocto Plug-in configuration performed - after installing the plug-in. - Select Project -> Reconfigure Project - - This selection runs the autogen.sh in the workspace for your project. - The script runs libtoolize, aclocal, - autoconf, autoheader, - automake --a, and - ./configure. + Select Project -> Invoke Yocto Tools -> Reconfigure Yocto: + This selection brings up the project's Yocto Settings Dialog. + Settings are inherited from the default project configuration. + The information in this dialog is identical to that chosen earlier + for the Cross Compiler Option + (Stand-alone Prebuilt Toolchain or + Build System Derived Toolchain), + the Target Architecture, and the + Target Options. + The settings are inherited from the Yocto Plug-in configuration performed + after installing the plug-in. + Select Project -> Reconfigure Project: + This selection runs the autogen.sh in the workspace for your project. + The script runs libtoolize, aclocal, + autoconf, autoheader, + automake --a, and + ./configure.
Building the Project + To build the project, select Project -> Build Project. The console should update and you can note the cross-compiler you are using. @@ -332,27 +349,30 @@
Starting QEMU in User Space NFS Mode + To start the QEMU emulator from within Eclipse, follow these steps: - Select Run -> External Tools -> External Tools Configurations... - - This selection brings up the External Tools Configurations Dialog. + Select Run -> External Tools -> External Tools + Configurations.... + This selection brings up the External Tools Configurations + Dialog. Go to the left navigation area and expand Program. - You should find the image listed. - For example, qemu-x86_64-poky-linux. + You should find the image listed. + For example, qemu-x86_64-poky-linux. Click on the image. - This brings up a new environment in the main area of the - External Tools Configurations Dialog. - The Main tab is selected. + This brings up a new environment in the main area of the + External Tools Configurations Dialog. + The Main tab is selected. Click Run next. - This brings up a shell window. + This brings up a shell window. Enter your host root password in the shell window at the prompt. - This sets up a Tap 0 connection needed for running in user-space - NFS mode. + This sets up a Tap 0 connection needed for running in user-space + NFS mode. Wait for QEMU to launch. Once QEMU launches you need to determine the IP Address - for the user-space NFS. - You can do that by going to a terminal in the QEMU and entering the + for the user-space NFS. + You can do that by going to a terminal in the QEMU and entering the ipconfig command. @@ -360,34 +380,35 @@
Deploying and Debugging the Application + Once QEMU is running, you can deploy your application and use the emulator to perform debugging. Follow these steps to deploy the application. Select Run -> Debug Configurations... - In the left area expand C/C++Remote Application. + In the left area, expand C/C++Remote Application. Locate your project and select it to bring up a new - tabbed view in the Debug Configurations Dialog. + tabbed view in the Debug Configurations Dialog. Enter the absolute path into which you want to deploy - the application. - Use the Remote Absolute File Path for C/C++Application:. - For example, enter /usr/bin/<programname>. + the application. + Use the Remote Absolute File Path for C/C++Application:. + For example, enter /usr/bin/<programname>. Click on the Debugger tab to see the cross-tool debugger - you are using. + you are using. Create a new connection to the QEMU instance - by clicking on new. + by clicking on new. Select TCF, which means Target Communication - Framework. + Framework. Click Next. Clear out the host name field and enter the IP Address - determined earlier. + determined earlier. Click Finish to close the new connections - Dialog. + Dialog. Use the drop-down menu now in the Connection field and pick - the IP Address you entered. + the IP Address you entered. Click Debug to bring up a login screen - and login. + and login. Accept the debug perspective. @@ -395,64 +416,68 @@
Running User-Space Tools + - As mentioned earlier in the manual several tools exist that enhance + As mentioned earlier in the manual, several tools exist that enhance your development experience. These tools are aids in developing and debugging applications and images. - You can run these user-space tools from within the Yocto Eclipse - Plug-in through the Window -> YoctoTools menu. + You can run these user-space tools from within the Eclipse IDE through the + Window -> YoctoTools menu. + Once you pick a tool, you need to configure it for the remote target. Every tool needs to have the connection configured. You must select an existing TCF-based RSE connection to the remote target. If one does not exist, click New to create one. + Here are some specifics about the remote tools: OProfile: Selecting this tool causes - the oprofile-server on the remote target to launch on - the local host machine. - The oprofile-viewer must be installed on the local host machine and the - oprofile-server must be installed on the remote target, - respectively, in order to use. - You must compile and install the oprofile-viewer from the source code - on your local host machine. - Furthermore, in order to convert the target's sample format data into a form that the - host can use, you must have oprofile-viewer version 0.9.4 or - greater installed on the host. - The oprofile-server is installed by default in the image. - You can locate both the viewer and server from - . - Lttng-ust: Selecting this tool runs - usttrace on the remote target, transfers the output data back to the - local host machine and uses lttv-gui to graphically display the output. - The lttv-gui must be installed on the local host machine to use this tool. - For information on how to use lttng to trace an application, see - . - For Application, you must supply the absolute path name of the - application to be traced by user mode lttng. - For example, typing /path/to/foo triggers - usttrace /path/to/foo on the remote target to trace the - program /path/to/foo. - Argument is passed to usttrace - running on the remote target. - PowerTOP: Selecting this tool runs - powertop on the remote target machine and displays the results in a - new view called powertop. - Time to gather data(sec): is the time passed in seconds before data - is gathered from the remote target for analysis. - show pids in wakeups list: corresponds to the - -p argument - passed to powertop. - LatencyTOP and Perf: - latencytop identifies system latency, while - perf monitors the system's - performance counter registers. - Selecting either of these tools causes an RSE terminal view to appear - from which you can run the tools. - Both tools refresh the entire screen to display results while they run. + the oprofile-server on the remote target to launch on + the local host machine. + The oprofile-viewer must be installed on the local host machine and the + oprofile-server must be installed on the remote target, + respectively, in order to use. + You must compile and install the oprofile-viewer from the source code + on your local host machine. + Furthermore, in order to convert the target's sample format data into a form that the + host can use, you must have oprofile version 0.9.4 or + greater installed on the host. + You can locate both the viewer and server from + . + The oprofile-server is installed by default on + the core-image-sato-sdk image. + Lttng-ust: Selecting this tool runs + usttrace on the remote target, transfers the output data back to the + local host machine, and uses lttv-gui to graphically display the output. + The lttv-gui must be installed on the local host machine to use this tool. + For information on how to use lttng to trace an application, see + . + For Application, you must supply the absolute path name of the + application to be traced by user mode lttng. + For example, typing /path/to/foo triggers + usttrace /path/to/foo on the remote target to trace the + program /path/to/foo. + Argument is passed to usttrace + running on the remote target. + PowerTOP: Selecting this tool runs + powertop on the remote target machine and displays the results in a + new view called powertop. + Time to gather data(sec): is the time passed in seconds before data + is gathered from the remote target for analysis. + show pids in wakeups list: corresponds to the + -p argument + passed to powertop. + LatencyTOP and Perf: + latencytop identifies system latency, while + perf monitors the system's + performance counter registers. + Selecting either of these tools causes an RSE terminal view to appear + from which you can run the tools. + Both tools refresh the entire screen to display results while they run.
-- cgit v1.2.3-54-g00ecf