Datasheet
Migrating Projects from SDT to ADS
4-12 Copyright © 1999-2001 ARM Limited. All rights reserved. ARM DUI 0064D
Peripherals 0x02000000
{ periph.o (+RW) ; Variables for accessing
; peripherals
}
32bitRAM 0x0000
{ vectors.o (Vect,+FIRST) ; vector table
int_handler.o (+RO) ; interrupt handler
}
16bitRAM 0x2000
{ * (+RW,+ZI) ; program variables
}
}
If
periph.c
contains only uninitialized global variables, and this scatter-load description
file is used with ADS, the linker gives the following warning message:
Warning : L6314W: C:\scatter.scf(line 7, col 19) No section matches pattern
periph.o(RW).
because the linker cannot identify any RW data from
periph.o
that can be placed into
this execution region. In Example 4-1 on page 4-11, the ZI data that is produced when
compiling
periph.c
is placed into the 16bitRAM execution region by the wildcard
placement rule:
16bitRAM 0x2000
{ * (+RW,+ZI) ; program variables
}
This causes the application to execute incorrectly because accesses to the variables from
periph.c
will no longer map onto the actual peripheral registers.
If the 16bitRAM wildcard region had not been defined, the link would fail because the
ZI section generated from
periph.c
would not match any placement rule.
To fix this problem, you must change the specification for the
Peripherals
execution
region to:
Peripherals 0x02000000
{ periph.o (+ZI) ; Variables for accessing peripherals
See also Memory Mapped Peripherals on page 4-15.