napsave: Power Management Application

This example is to demonstrate how power management APIs can be used to put 
the unit in low power consumption (sleep) modes. Basically there are two main 
calls:
    1.  naPdSleep() will put the system in sleep mode, where the clock to 
        processor will be stopped, but the clock to modules which trigger 
        the wakeup will run.
    2.  naPdCatnapStart() will put the system in catnap mode, where the system 
        will run at lower speed to save power.  (This mode only available
        on the ns9210 and ns9215 processors.)

    Note this application must not be run from the debugger, and run from Flash 
    only.

Supported platforms:
====================
    All ARM9 platforms

Example flow:
=============
    1.  Registers two callback functions, cbLoPriority, and cbHiPriority, 
        using naPdRegister() which are called prior to entering sleep mode.  
        These callbacks demonstrate how threads register to be notified when 
        entering a Power Save mode.  Additionally, the cbHiPriority callback 
        is called prior to the cbLoPriority due to the priority argument 
        in the naPdRegister() call. 
    2.  Starts up the "Blink Thread", which blinks an LED every second when
        the system is executing instructions.  The visual indicator helps 
        confirm when the CPU has stopped (Deep Sleep) versus when it is 
        running (Catnap, Clock scaling), and proves the system tick count
        does not change when clock scaling is enabled.
    3.  Selects a Power management scenario, where the operator selects a  
        power mode, which is then setup and performed.  A wake-up mechanism 
        is described on the console.  The modes include:
            A) Ethernet Wake-up from Deep Sleep.
            B) Serial Wake-up from deep sleep.
                    'A' is used for ns9210 and ns9215 based units
                   'aaaa' is used for ns9360 and ns9750 based units
            C) External IRQ Wakeup from deep sleep.
            D) Cat nap mode (for the ns9210 and ns9215 only).
    
        For Deep Sleep, calls to naPdSleep() are used.  Note for ns9360 and 
        ns9750 based units, wake-up uses the NAPD_SLEEP_AND_RESET mode, which 
        performs a system reset (reboot).  The ns9210 and ns9215 based units
        use the NAPD_SLEEP_AND_RESUME mode, which resumes operation by 
        returning from the naPdSleep() call.

Local Application Files:
========================
    root.c
    appconf.h

Required libraries:
===================
    libbsp.a
    libtx.a
    libfilesys.a
    libposix.a
    libflash.a
    libftpsvr.a
    libtelnsvr.a
    libaddp.a
    libbsp.a
    libtcpip.a
    libsntp.a
    libcrypto.a
    libwpa.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
