Datasheet

Migrating Projects from SDT to ADS
ARM DUI 0064D Copyright © 1999-2001 ARM Limited. All rights reserved. 4-11
The ADS C library defines an entry point at
__main()
. If you specify additional entry
points, and do not explicitly specify an initial entry point with the
-entry
option, the
linker cannot determine which entry point to use as the initial entry point and gives a
warning:
Image does not have an entry point. (Not specified or not set due to multiple
choices)
You can select one of the entry points as the initial image entry point. For example, use
-entry 0x0
for ROM images that are entered at reset.
ARM cores that support WinCE have a high vector pin. For example, the ARM920T has
the HiVecs pin, so that the vector table can be moved to
0xFFFF0000
. In this case, link
with
-entry 0xFFFF0000
.
See the description of image entry points in the ADS Linker and Utilities Guide for more
information.
Use of +RW and +ZI in scatter-loading
SDT places global variable declarations such is:
int a;
into the RW data area, unless the compiler switch
-zzt0
is used, in which case it is
placed into the ZI data area. See -zz, -zt, -zzt0 on page 4-5 for more information.
In ADS 1.0 and later an uninitialized global variable is always placed into the ZI data
area. In ADS 1.1 and later, zero initialized global definitions such as:
int a=0;
are also placed in the ZI data area.
This change in default behavior can cause problems with some SDT scatter-load
description files.
Example 4-1 shows a typical scatter-load description file that can be used with SDT,
where
int a;
is declared in
periph.c
:
Example 4-1
LOAD_FLASH 0x04000000 0x80000 ; start address and length
{ EXEC_FLASH 0x04000000
{ init.o (Init,+FIRST) ; remap & init code
* (+RO) ; all other RO areas
}