You copied the Doc URL to your clipboard.

Image symbols

Image symbols are generated by the linker when you use a command-line option to create a simple image.

The following table shows the image symbols:

Table 7. Image symbols 
SymbolSection typeDescription
Image$$RO$$BaseOutput

Address of the start of the RO output section.

Image$$RO$$LimitOutputAddress of the first byte beyond the end of the RO output section.
Image$$RW$$BaseOutputAddress of the start of the RW output section.
Image$$RW$$LimitOutputAddress of the byte beyond the end of the ZI output section. (The choice of the end of the ZI region rather than the end of the RW region is to maintain compatibility with legacy code.)
Image$$ZI$$BaseOutputAddress of the start of the ZI output section.
Image$$ZI$$LimitOutputAddress of the byte beyond the end of the ZI output section.

If you are using a scatter file, the image symbols are undefined. If your code accesses any of these symbols, you must treat them as a weak reference.

The standard implementation of __user_setup_stackheap() uses the value in Image$$ZI$$Limit. Therefore, if you are using a scatter file you must manually place the stack and heap. You can do this either:

  • In a scatter file using one of the following methods:

    • Define separate stack and heap regions called ARM_LIB_STACK and ARM_LIB_HEAP.

    • Define a combined region containing both stack and heap called ARM_LIB_STACKHEAP.

  • By re-implementing __user_setup_stackheap() to set the heap and stack boundaries.

Was this page helpful? Yes No