Cpptest: C++ Example Application

This is a C++ example application.  This application creates standard UDP echo 
services on port 10000, 10001, 10002, 10003.  This example should work on all
development boards.

To test this application use the UDPecho utility (located in the utility directory).
Go to the utility directory and type:

    UDPecho <ip address> <port number> <send count>

The applicationTcpDown() function uses global C++ object
ApplicationDownCnt app_down to calculate number of seconds since the board started

The applicationStart() function creates four UDP echo threads.  The
thread function for a UDP echo thread uses a local instance of the
C++ object, CSocket so.  It is used to create a socket and send back
received datagrams.

This application uses the C function printf() instead of the standard
C++ cout stream for the following reason: in Green Hills MULTI,
environment C++ libraries "take over" the stdout stream.  As a result,
if cout and printf() are both used, then the printf does not flush the
buffer, and there is no output unless C function fflush() is used
after every printf().  NET+ARM BSP software is all written in C.  It
uses printf() and does not call fflush().

One GNU make file is provided.  Build the target 'image' to
generate an image that can be debugged with gdb, and the file 
image.bin which can be written to flash if the bootloader is used.
Build the target 'rom.bin' to create the file rom.bin which 
can be written to ROM if the bootloader is not used.

The following files are provided with this application:

appconf.h         sets application configuration settings
makefile          Make file for the GNU toolset.
readme            this file
root.cxx        contains applicationStart(), applicationTcpDown(), and
                UdpEchoThread() functions
appdown.h       contains the declaration of the PrintApplicationDown class
appdown.cxx     contains the implementation of the PrintApplicationDown class
CSocket.h       contains the declaration of the CSocket class
CSocket.cxx     contains the implementation of the CSocket class

In addition, the following files in the BSP directory are built
as part of this application.

reset.s         contains the reset code
appconf_api.c   contains run time access to the application configuration

The application build file links in the following libraries.

libbsp.a               contains the BSP library
libaddp.a			   contains the ADDP Library
libtcpip.a             contains the TCP/IP stack library
libpppintf.a		   contains the PPP Interface Library
libtx.a                contains the ThreadX kernel
libfilesys.a           contains the Native File System library
libposix.a             contains the POSIX layer library
libflash.a             contains the Flash driver API library
libssh.a			   contains the SSH Library
libtelnsvr.a           contains the Telnet Server library
libdnsclnt.a           contains the DNS Client library

The application uses the following files located in the
netos\src\linkerScripts directory.  These files are generated
when the BSP is built.

bootldr.dat     bootloader configuration file used to generate the
                file image.bin.  It controls the information placed
                in the bootloader header of the image.

image.ldr       GNU linker script used to build an image that can
                be debugged and used with the bootloader.
                
customize.ldr   Customizable GNU linker script
