Target Setup
To Contents | To previous page | To next page

## Target Setup

### Connecting To A Target Via Serial

While eCos supports a variety of targets, communication with the targets happens in one of four ways. These are descibed in general below.

The descriptions are followed by descriptions of each target, providing specific details of how to set up the target (if hardware) and the necessary communication information (such as baud rate for hardware targets, or special connection options for simulator targets).

Most targets will have eCos GDB stubs or CygMon installed. These normally wait for GDB to connect at 38400 baud, using 8 data bit, no parity bit and 1 stop-bit (no hardware flow control). Check the section for your target to ensure it uses this speed. If not, adjust the following instructions accordingly.

The following instructions depend on you to select the appropriate serial port on the host - the serial port which connects to the target's (primary) serial port. On Linux this could be /dev/ttyS0, while the same port on Windows would be named COM1, or
/dev/ttya on Solaris. Substitute the proper serial port name in the below.

Connect to the target by issuing the following commands in GDB console mode:

    (gdb) set remotebaud 38400
    (gdb) set mips-force-32bit-saved-gpregs
    (gdb) target remote /dev/ttyS0

In Insight, connect by opening the File->Target Settings ... window and enter:

    Target: Remote/Serial
    Baud Rate: 38400
    Port: /dev/ttyS0

You will also need to open the GDB console window with View->Console and enter "set mips-force-32bit-saved-gpregs" at the prompt

Set other options according to preference, close the window and select
Run->Connect to target .

### Connecting To A Target Via Ethernet

Some targets allow GDB to connect via Ethernet - if so, it will be mentioned in the section describing the target. Substitute the target's assigned IP address or hostname for <hostname> in the following. The <port> is the TCP port which the eCos GDB stub or CygWin is listening on. It is also listed in the section describing the target.

Connect to the target by issuing the following command in GDB console mode:

    (gdb) target remote <hostname>:<port>

In Insight, connect by opening the File->Target Settings ... window and enter:

    Target: Remote/TCP
    Hostname: <hostname>
    Port: <port>

Set other options according to preference, close the window and select
Run->Connect to target .

### Connecting To A Simulator Target

GDB connects to all simulator targets using the same basic command, although each simulator may require additional options. These are listed in the section describing the target, and should be used when connecting.

Connect to the target by issuing the following command in GDB console mode:

    (gdb) target sim [target specific options]

In Insight, connect by opening the File->Target Settings ... window and enter:

    Target: Simulator
    Options: [target specific options]

Set other options according to preference, close the window and select
Run->Connect to target .

### Connecting To A Synthetic Target

Synthetic targets are special in that the built tests and applications actually run as native applications on the host. This means that there is no target to connect to - the test or application can be run directly from the GDB console using:

    (gdb) run

or from Insight by pressing the Run icon. There is therefore no need to connect to the target or download the application, so you should ignore GDB "target" and "load" commands in any instructions found in other places in the documentation.

###
SH3/EDK7708 Hardware Setup

The eCos Developer's Kit package comes with a ROM which provides GDB support for the Hitachi EDK7708 board (a big-endian and a little-endian version). Images of these ROMs are also provided at `loaders/sh-edk7708/gdbload.bin` and`loaders/sh-edk7708le/gdbload.bin` under the root of your eCos installation.

The ROM is installed to socket U6 on the board. When using the big-endian ROM, jumper 9 must be set to 2-3. When using the little-endian ROM, jumper 9 must be set to 1-2. Attention should be paid to the correct orientation of the ROM during installation. Only replace the board's existing ROM using a proper PLCC extraction tool, as the socket would otherwise risk being damaged.

If you are going to program a new ROM or FLASH using the binary image, you may have to experiment to get the right byte-order in the device. Depending on the programming software you use, it might be necessary to enable byte-swapping. If the GDB stub ROM/FLASH you program does not work, try reversing the byte-order.

The GDB stub in the EPROM allows communication with GDB using the serial port at connector J1. The communication parameters are fixed at 38400 baud, 8 data bits, no parity bit and 1 stop bit (8-N-1). No flow control is employed. Connection to the host computer should be made using the dedicated serial cable included in the EDK package.

### Installing the Stubs into FLASH

#### Preparing the Binaries

These two binary preparation steps are not strictly necessary as the eCos distribution ships with precompiled binaries in the directory loaders/sh-edk7708 and loaders/sh-edk7708le relative to the installation root.

##### Building the ROM images with the eCos Configuration Tool

1. Start with a new document - selecting the File->New menu item if necessary to do this.

2. Choose the Build->Templates menu item, and then select the SH EDK7708 hardware.

3. While still displaying the Build->Templates dialog box, select the "stubs" package template to build a GDB stub. Click OK .

4. If building a little-endian image, disable the "Use big-endian mode" option in the SH EDK7708 HAL (CYGHWR_HAL_SH_BIGENDIAN).

5. Build eCos using Build->Library .

6. When the build completes, the image files can be found in the bin/ subdirectory of the install tree. GDB stub ROM images have the prefix "gdb_module".

##### Building the ROM images with ecosconfig

1. Make an empty directory to contain the build tree, and cd into it.

2. To build a GDB stub ROM image, enter the command:
   `$ ecosconfig new edk7708 stubs`

3. If building a little-endian image, uncomment the user value in ecos.ecc for CYGHWR_HAL_SH_BIGENDIAN and change it to 0.

4. Enter the commands:
   `$ ecosconfig tree
   $ make`

5. When the build completes, the image files can be found in the bin/ subdirectory of the install tree. GDB stub ROM images have the prefix "gdb_module".

#### Installing the Stubs into ROM or FLASH

1. Program the binary image file gdb_module.bin into ROM or FLASH referring to the instructions of your ROM programmer.

2. Plug the ROM/FLASH into socket U6. If the image is little-endian set jumper 9 to 1-2. If the image is big-endian set jumper 9 to 2-3.

### i386/Linux Synthetic Target Setup

When building for the synthetic Linux target, the resulting binaries are native Linux applications with the HAL providing suitable bindings between the eCos kernel and the Linux kernel.

### NOTE:

Please be aware that the current implementation of the Linux synthetic target does not allow thread-aware debugging.

These Linux applications cannot be run on a Windows system. However, it is possible to write a similar HAL emulation for the Windows kernel if such a testing target is desired.

### Tools

For the synthetic target, eCos relies on features not available in native compilers earlier than gcc-2.95.1. It also requires version 2.9.5 or later of the GNU linker. If you have gcc-2.95.1 or later and ld version 2.9.5 or later, then you do not need to build new tools. eCos does not support earlier versions. You can check the compiler version using `gcc -v` or `egcs -v` , and the linker version using `ld -v` .

If you have native tools that are sufficiently recent for use with eCos, you should be aware that by default eCos assumes that the tools i686-pc-linux-gnu-gcc, i686-pc-linux-gnu-ar, i686-pc-linux-gnu-ld, and i686-pc-linux-gnu-objcopy are on your system and are the correct versions for use with eCos. But instead, you can tell eCos to use your native tools by editting the configuration value "Global command prefix" (CYGBLD_GLOBAL_COMMAND_PREFIX) in your eCos configuration. If left empty (i.e. set to the empty string) eCos will use your native tools when building.

If you have any difficulties, it is almost certainly easiest overall to rebuild the tools as described on:

http://sourceware.cygnus.com/ecos/getstart.html

Target Setup
To Contents | To previous page | To next page