DeviceMaster Software Developer Kit Installing arm-elf Tools

The complete SDK requires about 800Mb of disk space. The original development of the DeviceMaster and the samples in the SDK was done under Redhat Linux 8.0.

Installing arm-elf Tools

Use the appropriate procedure for your system:

Linux: Installing arm-elf Tools

The Linux binaries for the Gnu ARM-elf toolchain are provided in a compressed tar archive. When un-tarred, a directory called gnutools will be created and the directory gnutools/bin will need to be added to the PATH variable. You can place the gnutools directory anywhere you like. In this example, we will install the tools under /usr/local, so /usr/local/gnutools/bin will need to be added to the user's PATH environment variable.

  1. Change to the usr/local directory.

    # cd /usr/local

  2. Unpackage the arm-elf-3.4.3-linux.tar.gz file in Linux_Tools directory.

    # tar xf arm-elf-3.4.3-linux.tar.gz

  3. Verify that the arm-elf tools installed on your system.

     # tree gnutools

            gnutools
            |-- arm-elf
            |   |-- bin
            |   |   |-- ar
            |   |   |-- as
            |   |   |-- c++
            |   |   |-- g++
            |   |   |-- gcc
            |   |   |-- ld
            |   |   |-- nm
            |   |   |-- objcopy
            |   |   |-- objdump
            |   |   |-- ranlib
            |   |   `-- strip
            |   |-- include
            |   |   |-- _ansi.h
            |   |   |-- _syslist.h
            |   |  ...  ...
            |   |   |-- wchar.h
            |   |   `-- wctype.h
            |   `-- lib
            |       |-- be
            |       |   |-- crt0.o
            |      ... ...
            |       |   `-- redboot.specs
            |       |-- crt0.o
            |       |-- iq80310.specs
            |      ...  ...
            |       |-- redboot.specs
            |       `-- thumb
            |           `- ...
            |-- bin
            |   |-- arm-elf-addr2line
            |   |-- arm-elf-ar
            |   |-- arm-elf-as
            |   |-- arm-elf-c++
            |   |-- arm-elf-c++filt
            |   |-- arm-elf-cpp
            |   |-- arm-elf-g++
            |   |-- arm-elf-gcc
            |   |-- arm-elf-gcc-3.4.3
            |   |-- arm-elf-gccbug
            |   |-- arm-elf-gcov
            |   |-- arm-elf-gdb
            |   |-- arm-elf-gdbtui
            |   |-- arm-elf-gprof
            |   |-- arm-elf-insight
            |   |-- arm-elf-ld
            |   |-- arm-elf-nm
            |   |-- arm-elf-objcopy
            |   |-- arm-elf-objdump
            |   |-- arm-elf-ranlib
            |   |-- arm-elf-readelf
            |   |-- arm-elf-run
            |   |-- arm-elf-size
            |   |-- arm-elf-strings
            |   |-- arm-elf-strip
            |   |-- tclsh8.4
            |   `-- wish8.4
            |-- include
            |   |-- itcl.h
            |   |-- itclDecls.h
            |   |-- itclInt.h
            |   |-- itclIntDecls.h
            |   |-- itk.h
            |   |-- itkDecls.h
            |   |-- tcl.h
            |   |-- tclDecls.h
            |   |-- tclPlatDecls.h
            |   |-- tk.h
            |   |-- tkDecls.h
            |   `-- tkPlatDecls.h
            |-- info
            |   |-- annotate.info
            |   |-- as.info
            |   |-- bfd.info
            |   |-- binutils.info
            |   |-- configure.info
            |   |-- cpp.info
            |   |-- cppinternals.info
            |   |-- dir
            |   |-- gcc.info
            |   |-- gccinstall.info
            |   |-- gccint.info
            |   |-- gdb.info
            |   |-- gdb.info-1
            |   |-- gdb.info-2
            |   |-- gdb.info-3
            |   |-- gdb.info-4
            |   |-- gdbint.info
            |   |-- gdbint.info-1
            |   |-- gdbint.info-2
            |   |-- gprof.info
            |   |-- ld.info
            |   |-- stabs.info
            |   `-- standards.info
            |-- lib
            |   |-- gcc
            |   |   `-- arm-elf
            |   |       `-- 3.4.3
            |   |           |-- be
            |   |          ...
            |   |-- insight1.0
            |   |   `-- plugins.tcl
            |   |-- itcl3.2
            |   |   `-- pkgIndex.tcl
            |   |-- itk3.2
            |   |   `-- pkgIndex.tcl
            |   |-- libarm-elf-sim.a
            |   |-- libiberty.a
            |   |-- libitcl3.2.a
            |   |-- libitclstub3.2.a
            |   |-- libitk3.2.a
            |   |-- libitkstub3.2.a
            |   |-- libtcl8.4.a
            |   |-- libtclstub8.4.a
            |   |-- libtk8.4.a
            |   |-- libtkstub8.4.a
            |   |-- tclConfig.sh
            |   |-- tk8.4
            |   `-- tkConfig.sh
            |-- libexec
            |   `-- gcc
            |       `-- arm-elf
            |           `-- 3.4.3
            |               |-- cc1
            |               |-- cc1plus
            |               |-- collect2
            |               `-- install-tools
            |                   |-- fixinc.sh
            |                   |-- fixincl
            |                   `-- mkheaders
            |-- man
            |   |-- man1
            |   |   |-- arm-elf-addr2line.1
            |   |   |-- arm-elf-ar.1
            |   |  ...  ...
            |   |   |-- tclsh.1
            |   |   `-- wish.1
            |   |-- man3
            |   |   |-- 3DBorder.3
            |   |   |-- Access.3
            |   |  ...  ...
            |   |   `-- panicVA.3
            |   |-- man7
            |   |   |-- fsf-funding.7
            |   |   |-- gfdl.7
            |   |   `-- gpl.7
            |   `-- mann
            |       |-- Archetype.n
            |      ...  ...
            |       |-- winfo.n
            |       `-- wm.n
            `-- share
            |-- insight1.0
            |   |-- about.tcl
            |  ...  ...
            |   `-- watch.tcl
            |-- itcl3.2
            |   `-- itcl.tcl
            |-- itk3.2
            |   |-- Archetype.itk
            |  ...  ...
            |   `-- tclIndex
            |-- iwidgets4.0.1
            |   |-- demos
            |   |    ...
            |   |-- iwidgets.tcl
            |   |-- license.terms
            |   |-- pkgIndex.tcl
            |   `-- scripts
            |       ...
            |       `-- watch.itk
            |-- locale
            |   |-- be
            |  ...  ...
            |   `-- zh_TW
            |       `- ...
            |
            |-- redhat
            |   `- ...
            |-- tcl8.4
            |   |-- auto.tcl
            |  ... ...
            |   `-- word.tcl
            `-- tk8.4
            |-- bgerror.tcl
            ...  ...
            |-- button.tcl
            `-- xmfbox.tcl
            
            121 directories, 2520 files
        

Windows: arm-elf Tools

If you did a default installation of Cygwin from the snapshot in the cygwin directory (Installing Cygwin), then you already have the arm-elf toolchain installed in /usr/local and you do not need to install the files in arm-elf-3.4.3-cygwin.tar.gz, and you do not need to modify your PATH variable.

[Note]
Note

The files in arm-elf-3.4.3-cygwin.tar.gz, which are used in the following procedures are provided for users who already have a Cygwin installation and are not installing Cygwin from this SDK.

While Pepperl+Fuchs Comtrol, Inc. is happy to provide such users with a copy of the toolchain binaries, Pepperl+Fuchs Comtrol, Inc. will be unable to provide technical support for toolchain-related problems that occur on Cygwin systems that were not installed from the SDK Cygwin snapshot.

To perform the following procedure, you must have installed Cygwin, which provides the Cygwin UNIX environment for Windows DLL and associated programs; including the arm-elf toolchain required for use with eCos for the DeviceMaster.

You can use the one of the following procedures to install the arm-elf tools using Cygwin.

  • Experienced Users:

    All you need to do is untar arm-elf-3.4.3-cygwin.tar.gz somewhere. That will create a directory called gnutools. Add the location of gnutools/bin to your PATH.

  • Detailed procedures are provided in the following subsections.

Installing arm-elf Tools with Cygwin

Use the following procedure to install the arm-elf toolchain for Windows with Cygwin.

  1. Move the arm-elf-3.4.3-cygwin.tar.gz file $/Windows_Tools/arm-elf-tools/tools.tar.gz to the Cygwin root directory.

    '$' designates the root directory of the Comtrol DeviceMaster Developer Kit distribution disk. The Cygwin root directory is C:\Cygwin unless you chose to override the default Cygwin installation directory during Cygwin installation.

  2. Open a Cygwin window by clicking the Cygwin icon on the desktop or selecting Start\Programs\Cygnus Solutions\Cygwin Bash Shell from the Start menu

  3. Change the directory to the location of the arm-elf-3.4.3-cygwin.tar.gz file. In this example, the file is located in the root directory of a CD ROM that is drive D.

    cd /cygwin/d

  4. Unpack the file, instructing tar to do so in the root "/" directory.

    tar -xzvf arm-elf-3.4.3-cygwin.tar.gz -C / &> /tar.out

  5. Open the file tar.out with vi or emacs in a Cygwin window or with Wordpad.

    cd /
                        emacs tar.out

    [Note]
    Note

    Do not use Notepad. Files created in the Cygwin environment have UNIX line endings, Notepad does not display files legibly.

  6. Scan the file for error messages. If there are no error messages the installation was successful and you may delete tar.out.

  7. Update the PATH environmental variable for the tools to function properly.

  8. You can test your Cygwin and arm-elf tool installations by building the Sample Programs.

Windows Installation Method

This procedure requires WinZip. Verify that the WinZip version you have supports tar.gz file expansion.

  1. Open WinZip.

  2. Under the Options menu, select Configuration. On the Miscellaneous tab, make sure that TAR file smart CR/LF handling is not checked.

    Click OK to save the configuration.

  3. Double-click arm-elf-3.4.3-cygwin.tar.gz file to use the file on the SDK CD (or the location to which it was downloaded).

    WinZip will present a dialog box reading:

    Archive contains one file:
    arm-elf-3.4.3-cygwin.tar
    Should WinZip decompress it to a temporary folder and open it?
         
  4. Click Yes.

  5. In the WinZip Actions drop down menu select Extract.

  6. WinZip will present an Extract dialog box. Enter C:\Cygwin or your Cygwin root directory path in the Extract to: text entry field.

  7. Click the Extract button.

    WinZip will create the C:\Cygwin\gnutools directory and populate it with the contents of tool.tar.gz.

  8. Go to Updating PATH to continue the installation.

Updating PATH

After the tool executables are installed you must add their location to the PATH environmental variable. This allows the system to find them. Use one of the following methods.

  • The simple method is to add the fully qualified path name of the tool executables to the existing PATH statement. Assuming that you allowed tar to place the tools in their default path, type the following at the Cygwin prompt:

    PATH=$PATH":/gnutools/bin"

    Unfortunately using the simple method means that additions to the PATH variable are lost at log off.

  • Optionally, you can edit the .bash_profile file to add the GNU tools to the PATH variable every time you login.

    [Note]
    Note

    The .bash_profile file resides in you home directory, i.e. /home/yourusername. If it does not exist in your installation create it with your favorite text editor and add the above PATH= statement to it. If it does exist open it with your favorite text editor and add the above PATH= statement. When you are done, logout and login to invoke the PATH= command.

    DO NOT USE NOTEPAD. Notepad ends lines with the DOS CRLF instead of the UNIX new-line.

    Bash supports both vi and emacs, but emacs is the default. However, all text editing of bash text files can be done with WordPad if you prefer a GUI editor. WordPad seems to have a problem with creating a new file with a leading period in it's name. WordPad also wants to append a suffix on a new file when it creates it. Consequently you may have to store your new file as bash_profile.txt or something similar. You can rename the file using the bash mv (move) command. The following syntax should work: mv -i bash_profile.txt .bash_profile

    If you use vi or emacs you won't have this problem.

You are ready to install the eCos library (pre-compiled or source eCos library).

[Note]
Note

You can refer to the GNU Documentation for more information.


nice color