navga: VGA Example Application

This application runs using the connectcore9c_a and connectcorewi9c_a 
modules and connectcore9p9360_a.  This application is a simple graphic application that plots 
vertical bands on the VGA monitor.  Each band corresponds to a digital 
input on the development board's high speed video DAC:

    Band1:  R:b11111 G:b00000 B:b00000 (Red starts)
    Band2:  R:b10000 G:b00000 B:b00000
    Band3:  R:b01000 G:b00000 B:b00000
    Band4:  R:b00100 G:b00000 B:b00000
    Band5:  R:b00010 G:b00000 B:b00000
    Band6:  R:b00001 G:b00000 B:b00000
    Band7:  R:b00000 G:b11111 B:b00000 (Green starts)
    Band8:  R:b00000 G:b10000 B:b00000
    Band9:  R:b00000 G:b01000 B:b00000
    Band10: R:b00000 G:b00100 B:b00000
    Band11: R:b00000 G:b00010 B:b00000
    Band12: R:b00000 G:b00001 B:b00000
    Band13: R:b00000 G:b00000 B:b11111 (Blue starts)
    Band14: R:b00000 G:b00000 B:b10000
    Band15: R:b00000 G:b00000 B:b01000
    Band16: R:b00000 G:b00000 B:b00100
    Band17: R:b00000 G:b00000 B:b00010
    Band18: R:b00000 G:b00000 B:b00001

NOTE:

    This application supports 18 bit TFT VGA monitors at 640x480 that 
    support 60.14 Hz refresh (vertical frequency) and a horizontal
    frequency of 30.61 KHz.  If the monitor does not support these rates,
    the lcdInfo record can be updated.

    VGA/LCD external clock source:
        The JS DEV board has 48MHz oscillator that supports resolutions up to 640 x 480.
        This frequency is divided by two before being used as VGA/LCD clock source.
        This will work for monitors that don't mind if the 640x480 video is slightly incorrect.
        A 50.350MHz external oscillator would produce the exact VGA clock of 25.175MHz.
        
        
    The application requries the following:

    (1) The development board supports 18 bit TFT panel, which means:
        a. power supply
        b. VGA cable
        c. GPIO pin 18 as inversion enable for LCD power control (required 
		   only for connectcore9p9360_a, see /connectcore9p9360_a/customizeLcdGpio.c)

    (2) Make sure #define BSP_INCLUDE_LCD_DRIVER    TRUE is in file
        platforms/<platform>/bsp_drivers.h

    (3) Make sure in file platforms/<platform>/gpio.h following defines are set
        accordingly
        #define BSP_GPIO_MUX_LCD                    BSP_GPIO_MUX_LCD_18BIT_APP
        (For external clock)
        #define BSP_GPIO_MUX_LCD_EXTERNAL_CLOCK_IN  BSP_GPIO_MUX_USE_PRIMARY_PATH

    (4) Rebuild bsp library


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.

The following files are provided in this template.

appconf.h         sets application configuration settings
makefile          Make file for the GNU toolset.
readme            this file
root.c            contains applicationStart() function
vga_test.c        contains VgaTestStart() function


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 code used to read settings in appconf.h


The application build file links in the following libraries.

libbsp.a           		contains the BSP code
libtcpip.a         		contains the Net+Works TCP/IP stack
libtx.a            		contains the ThreadX kernel
libfilesys.a       		contains the file system libraries
libposix.a         		contains the POSIX layer libraries
libflash.a         		contains the Flash driver API library
libftpclnt.a       		contains the FTP client library
libftpsvr.a        		contains the FTP server library
libemailc.a        		contains the Email client library
libtelnsvr.a       		contains the Telnet server library
libds.a       	   		contains the Directory Services library
libaddp.a		   		contains the ADDP Library
libssh.a		   		contains the SSH Library
librphttpd.a       		contains the NET+Works AWS API library.
libmanapi.a        		contains the NET+Works Management API library.
libusbmassstorage.a    	contains the USB Mass Storage library
libusbhost.a           	contains the USB Host library
libfat32.a             	contains the FAT32 library
libldap3.a       		contains the LDAPv3 client API library
libsntp.a				contains the SNTP API Library
libgui.a 				contains the GUI Library
libcrypto.a 			contains the Crypto Library
libssl.a 				contains the SSL Library
libsflash.a         	contains the Serial Flash driver API library
libdnsclnt.a            contains the DNS Client library
libpppintf.a		    contains the PPP Interface Library
libnarmapi.a

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

