出现此错误是因为:
5.1.1. Symbols defined for scatter-loading
When the linker is creating an image using a scatter-loading description, it creates some region-related symbols. These are described in Region-related symbols. The linker creates these special symbols only if your code references them.
Be aware that these symbols are not defined when a scatter-loading description file is used:
-
Image$$RW$$Base
-
Image$$RW$$Limit
-
Image$$RO$$Base
-
Image$$RO$$Limit
-
Image$$ZI$$Base
-
Image$$ZI$$Limit
Because the default implementation uses Image$$ZI$$Limit
, you must reimplement __user_initial_stackheap()
and define a value for the start of the heap region and the top of the stack region. For more information see:
-
the chapter describing the C and C++ libraries in RealView Compilation Tools v2.2 Compiler and Libraries Guide (for details on library memory models)
-
the chapter describing how to develop embedded software in RealView Compilation Tools v2.2 Developer Guide.
If you do not reimplement __user_initial_stackheap()
, the following error message is displayed from the linker:
Undefined symbol Image$$ZI$$Limit (referred from sys_stackheap.o).