| |||
| Home > Accessing and managing symbols with armlink > 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
| Symbol | Section type | Description |
|---|---|---|
Image$$RO$$Base | Output | Address of the start of the RO output section. |
Image$$RO$$Limit | Output | Address of the first byte beyond the end of the RO output section. |
Image$$RW$$Base | Output | Address of the start of the RW output section. |
Image$$RW$$Limit | Output | Address 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$$Base | Output | Address of the start of the ZI output section. |
Image$$ZI$$Limit | Output | Address 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.
Migration and Compatibility:
Using ARM® C and C++ Libraries and Floating-Point Support: