A complete suite of GNU software tools including C, C++, Fortran, Java Cross Compilers, GDB/Insight Debugger Simulator, and additional hosted utilities for embedded ARM7, ARM9, and XScale CPU applications development.

2/11/2004

Tool Building, Debugger & CPU Simulator: GDB/Insight 6.0

posted by mmitchel at 2/11/2004 12:10:00 PM

GDB, the GNU Project debugger, allows you to see what is going on `inside' another program while it executes -- or what another program was doing at the moment it crashed. GDB can do four main kinds of things (plus other things in support of these) to help you catch bugs in the act:

Start your program, specifying anything that might affect its behavior.
Make your program stop on specified conditions.
Examine what has happened, when your program has stopped.
Change things in your program, so you can experiment with correcting the effects of one bug and go on to learn about another.

The program being debugged can be written in C, C++, Pascal, Objective-C (and many other languages). Those programs might be executing on the same machine as GDB (native) or on another machine (remote). GDB can run on most popular UNIX and Microsoft Windows variants.

The following commands are issued to generate the target directory.

$ CFLAGS="-s -O3" export CFLAGS
$ PATH=/gnude/bin:$PATH export PATH
$ mkdir build-insight; cd build-insight; ../insight-6.0/configure --target=arm-elf --prefix=/gnude --disable-shared --disable-nls --disable-win32-registry --enable-interwork --enable-multilib; make all install; cd ..

Tool Building, C Runtime Library: Newlib 1.12.0

posted by mmitchel at 2/11/2004 12:05:00 PM

Newlib is a C library intended for use on embedded systems. It is a conglomeration of several library parts, all under free software licenses that make them easily usable on embedded products.

The following commands are issued to generate the target directory.

$ CFLAGS="-s -O3" export CFLAGS
$ PATH=/gnude/bin:$PATH export PATH
$ mkdir build-newlib; cd build-newlib; ../newlib-1.12.0/configure --target=arm-elf --prefix=/gnude --disable-shared --disable-nls --disable-win32-registry --enable-interwork --enable-multilib; make all install; cd ..

Tool Building, Bootstrap Cross Compiler GCC 3.3.2

posted by mmitchel at 2/11/2004 12:05:00 PM

GCC is the GNU Compiler Collection, which currently contains front ends for C, C++, Objective-C, Fortran, Java, and Ada, as well as libraries for these languages (libstdc++, libgcj,...).

The following commands are issued to generate the target directory.

$ CFLAGS="-s -O3" export CFLAGS
$ PATH=/gnude/bin:$PATH export PATH
$ mkdir build-gcc; cd build-gcc; $ ../gcc-3.3.2/configure --target=arm-elf --prefix=/gnude --disable-shared --disable-nls --disable-win32-registry --enable-interwork --enable-multilib --enable-languages="c,c++" --with-headers=../newlib-1.12.0/newlib/libc/include/ --with-newlib; make all-gcc install-gcc; cd ..

Tool Building, Binary Utilities: Binutils 2.14

posted by mmitchel at 2/11/2004 11:40:00 AM

The GNU Binutils are a collection of binary tools. The main ones are:

ld - the GNU linker.
as - the GNU assembler.

But they also include:

addr2line - Converts addresses into filenames and line numbers.
ar - A utility for creating, modifying and extracting from archives.
c++filt - Filter to demangle encoded C++ symbols.
gprof - Displays profiling information.
nlmconv - Converts object code into an NLM.
nm - Lists symbols from object files.
objcopy - Copys and translates object files.
objdump - Displays information from object files.
ranlib - Generates an index to the contents of an archive.
readelf - Displays information from any ELF format object file.
size - Lists the section sizes of an object or archive file.
strings - Lists printable strings from files.
strip - Discards symbols.

The following commands are issued to generate the target directory.

$ CFLAGS="-s -O3" export CFLAGS
$ PATH=/gnude/bin:$PATH export PATH
$ mkdir build-binutils; cd build-binutils; ../binutils-2.14/configure --target=arm-elf --prefix=/gnude --disable-shared --disable-nls --disable-win32-registry --enable-interwork --enable-multilib; make all install; cd ..

Description of Development Tools

posted by mmitchel at 2/11/2004 11:39:00 AM

A Development Environment for ARM7, ARM9, and XScale Targets

The GNU Development Environment is a complete suite of GNU C/C++, Fortran, Java Cross Compilers, Insight/GDB Debugger, and additional utilities hosted on Windows NT/2K/XP for embedded ARM7, ARM9, and XScale CPU applications development.

The Windows Installer distribution contains all of the following GNU Packages: Binutils 2.12, GCC 3.1, Newlib 1.10.0, GDB Insight 5.2, Make 3.79.1, DiffUtils 2.8.1, and FindUtils 4.1. The base libraries in the distribution are compiled to support an RDP debug monitor in target.

Sourceforge.Net Hosted Project, Online Documentation

The GNU Development Environment project (GNUDE) summary, downloads and files, forums, and mailing lists are being hosted by Sourceforge.Net at http://www.sourceforge.net/projects/gnude.

Online Documentation generated from the info files included in the distribution is available.

GNU Licensing Information, Source Code, and Bug Management

Original GNU Licenses for the individual packages remain unmodified; the original licenses are still applicable. This distribution is specifically compiled and collated as a collection of GNU utilities to facilitate embedded development and provide a convenient method for programmers to obtain precompiled tools for their environment.

Criteria for libraries included in this distribution is that the license governing their redistribution do not require disclosure of the remainder of the application due to the GNU License. Libraries must not have any more encumbrances than provided for by the Lesser GNU License. Copies of common open source licenses can be located at the Open Source Initiative (OSI) web site.

Sources for this distribution remain unmodified from the original release unless a bug has been identified, documented, corrected, and the results forwarded to the original GNU bug repository. The final correction or solution and possible inclusion in future GNU source releases is solely to the discretion of the original source repository maintainers. The associated PR and list information is captured as part of the creation of this distribution.

SourceForge.net Logo

2/06/2004

apcs -- arm procedure calling standard (search)

posted by mmitchel at 2/06/2004 12:35:00 PM

An ARM developed standard convention for register naming, stack layout, and argument passing.
Google Search

tpcs -- thumb procedure calling standard (search)

posted by mmitchel at 2/06/2004 12:32:00 PM

An ARM developed standard convention for register naming, stack layout, and argument passing.
Google Search

returnne -- tpcs return to caller (macro)

posted by mmitchel at 2/06/2004 10:26:00 AM

The following macro generates inline code to return to caller; the current state of flags within the processor status word are consulted.

macro
returnne
bxne lr
mend

returneq -- tpcs return to caller (macro)

posted by mmitchel at 2/06/2004 10:25:00 AM

The following macro generates inline code to return to caller; the current state of flags within the processor status word are consulted.

macro
returneq
bxeq lr
mend

return -- tpcs return to caller (macro)

posted by mmitchel at 2/06/2004 10:22:00 AM

The following macro generates inline code to return to caller.

macro
return
bx lr
mend

callne -- tpcs call to named label (macro)

posted by mmitchel at 2/06/2004 10:20:00 AM

The following macro generates inline code to call a named label; the current state of flags within the processor status word are consulted.

macro
callne $a1
ldrne ip,=$a1
movne lr,pc
bxne ip
mend

macro: calleq -- tpcs call to named label

posted by mmitchel at 2/06/2004 10:19:00 AM

The following macro generates inline code to call a named label; the current state of flags within the processor status word are consulted.

macro
calleq $a1
ldreq ip,=$a1
moveq lr,pc
bxeq ip
mend

macro: call -- apcs call to named label

posted by mmitchel at 2/06/2004 09:50:00 AM

The following macro generates inline code to call a named label.

macro
call $a1
ldr ip,=$a1
mov lr,pc
bx ip
mend

2/01/2004

Description

posted by mmitchel at 2/01/2004 09:51:00 AM

Original GNU Licenses for the individual packages remain unmodified; the original licenses are still applicable. This distribution is specifically compiled and collated as a collection of GNU utilities to facilitate embedded development and provide a convenient method for programmers to obtain precompiled tools for their environment.

Criteria for libraries included in this distribution is that the license governing their redistribution do not require disclosure of the remainder of the application due to the GNU License. Libraries must not have any more encumbrances than provided for by the Lesser GNU License. Copies of common open source licenses can be located at the Open Source Initiative (OSI) web site.

Sources for this distribution remain unmodified from the original release unless a bug has been identified, documented, corrected, and the results forwarded to the original GNU bug repository. The final correction or solution and possible inclusion in future GNU source releases is solely to the discretion of the original source repository maintainers. The associated PR and list information is captured as part of the creation of this distribution.

Description

posted by mmitchel at 2/01/2004 09:50:00 AM

The GNU Development Environment is a complete suite of GNU C/C++, Fortran, Java Cross Compilers, Insight/GDB Debugger, and additional utilities hosted on Windows NT/2K/XP for embedded ARM7, ARM9, and XScale CPU applications development.

The Windows Installer distribution contains all of the following GNU Packages: Binutils 2.12, GCC 3.1, Newlib 1.10.0, GDB Insight 5.2, Make 3.79.1, DiffUtils 2.8.1, and FindUtils 4.1. The base libraries in the distribution are compiled to support an RDP debug monitor in target.

The Mac Installer distribution contains all of the following GNU Packages: Binutils 2.12, GCC 3.1, Newlib 1.10.0, GDB Insight 5.2, Make 3.79.1, DiffUtils 2.8.1, and FindUtils 4.1. The base libraries in the distribution are compiled to support an RDP debug monitor in target.

Definition

posted by mmitchel at 2/01/2004 09:49:00 AM

GNUDE is a complete suite of GNU C, C++, Fortran, and Java Cross Compilers, and the GDB CPU Simulator and Debugger for embedded microprocessor applications development. Targets development for ARM7, ARM9, and XScale applications.

Description

posted by mmitchel at 2/01/2004 09:47:00 AM

GNUDE is a complete suite of GNU C, C++, Fortran, and Java Cross Compilers, and the GDB CPU Simulator and Debugger for embedded microprocessor applications development. Targets development for ARM7, ARM9, and XScale applications.