Configuring EMAC OE 4.0 SDK

From wiki.emacinc.com
Revision as of 13:55, 17 May 2013 by Mcoleman (talk | contribs) (adding category tag)
Jump to: navigation, search
Table 1: Conventions
/download/directory/ Placeholder indicating the directory to which the SDK archive will be downloaded.
/path/to/sdk/ Placeholder indicating the directory to which the SDK will be extracted.
EMAC-OE-arm-linux-gnueabi-SDK_XX.YY.rZZ.tar.bz2
EMAC-OE-arm-linux-gnueabi-SDK_XX.YY
XX is the major version
YY is the minor version
ZZ is the current revision
The major and minor version numbers will match the version of OE for which the SDK is created.

When Eclipse generates a Makefile to use for building a project, the generated Makefile includes a file named global.properties before it performs any other steps. This file is located in the projects directory, which is the root directory for Eclipse projects. The projects directory is located within the EMAC SDK directory provided by the EMAC SDK package (or installed on the LDC).

The global.properties file provides information needed to build projects and upload them to the target machine (the board supplied by EMAC). The following information is provided by this file:

Configuration variable Description
SDKBASE The base directory for the SDK .
CC, CXX Exectuable binaries to use for compiling for the C and C++ compiler, respectively.
LD_LIBRARY_PATH The path the linker should use to search for shared library files.
CFLAGS The flags passed to the compiler to specify target processor architecture, debugging flags, etc.
OFLAGS The flags passed to the compiler to specify optimization options to use.
TARGET_IP The IP Address of the target machine (needed for uploading the compiled binary to the target machine).
LOGIN The user name to use for logging into the target machine.
PASSWORD The password to use for logging into the target machine.*
WPUT The location of the wput command, along with options to pass to wput.

*NOTE The password is stored in plain text in this file. However, read permission is required to view this password. In most development environments, this should not be an issue. If development is taking place in a shared environment (such as a University lab) and secrecy of this password is required, simply ensure that only trusted users have read permission for this file.

The global.properties file is actually a type of virtual file, called a softlink. This softlink acts as a pointer which points to another file. The file it points to is chosen when the CPU architecture is chosen. To see why it works this way, see the above information about the flags specified for the processor architecture, and note that different library and compiler paths may be required to support different hardware. The softlink is updated when the hardware to use for the development project is selected.

Configuration Steps

The following configuration steps are necessary to begin using the EMAC OE SDK.

Before cross-compiling source code on the development machine for the target machine:

  • A set up script linking global.properties to an architecture-specific global.properties file must be run.
  • The TARGET_IP variable in the global.properties file must be changed to the IP address or hostname belonging to the target board.

SDK Set Up Script

Before compiling source code for the target machine, toolchain libraries for the target machine must be specified by running setmachine.sh.

Procedure

  1. Navigate to the SDK directory.
developer@ldc:~$ cd /path/to/sdk/EMAC-OE-arm-linux-gnueabi-SDK_XX.YY/
  1. Run the script using the command shown below to produce a menu as shown in Figure 1 with options for the target machine for which the source will be compiled.
developer@ldc:~$ ./setmachine.sh

Emac oe sdk setup-2.png

Remote Upload Set-up

In the global.properties file there is a variable, IP which must be set to the target board IP address as shown in Listing 1 below. This step is necessary to ensure that the Make target, 'upload' will work as expected.

Procedure

  1. Navigate to the projects directory within the SDK.
developer@ldc:~$ cd /path/to/sdk/EMAC-OE-arm-linux-gnueabi-SDK_XX.YY/projects
  1. The global.properties file should be listed in the current directory. The relevant lines from global.properties are shown in Listing 1 below.

Listing 1. global.properties snippet

TARGET_IP=
LOGIN=root
PASSWORD=emac_inc_90210
  1. Change the value of TARGET_IP to the target system's IP address.

This can be found using the following command from a shell on the target system:

root@emac-oe:~# /sbin/ifconfig eth0 | grep inet

For more information on how to connect to the remote system, see the initial connections section of the EMAC OE getting started guide.

  1. Change the value of PASSWORD to whatever value was set in the System Login section of the EMAC OE getting started guide. Listing 1 shows the default user name and password.