Semihosted version of Dhrystone for the ARM946E-S - debug tools must be attached.

At reset, both TCMs have a base address of 0x0.  The scatter file is used to locate 
the stack, heap and D-TCM.  The I-TCM address cannot be changed and remains at 0x0.

This code will run unmodified on ARMulator or an Integrator ARM946E-S Core module.

Note the scatter file assumes a TCM size of 32 KB

InitTCM.s   - entry point for this image
            - locates configures and enables the TCMs
            - calls InitMPU

InitMPU.s   - creates MPU regions and enables the MPU (prior to scatter loading)
            - caches and regions are invalidated here
            - cache global enables are set to 0x0 before MPU is enabled
            - calls __main

InitCache.s - enables the caches

retarget.c  - provides a re-implementation of __user_initial_stackheap
            - patches main to enable the caches and Integrator core clock
            - default core clock frequency can be changed from here

The example may be built from the supplied makefile - this has been used to generate
the four batch file build options.

Four build options are provided:

buildTCM.bat - enables the TCMs and relocates all code and data into the TCMs
             - This option gives maximum performance and demonstrates the use
             - of TCMs and the placing of objects into TCMs by scatterloading

build.bat    - TCMs not enabled - instruction and data caches are enabled

build_clock.bat and buildTCM_clock.bat duplicate the above builds but also incorporate 
code to set an Integrator Core Module core clock frequency (-DSET_CLCK).

