6 Accessing and Managing Symbols with armlink
6.4 Image$$ execution region symbols
The linker generates Image$$
symbols for every execution region present in the image.
Table 6-1 Image$$ execution region symbols
Symbol | Description |
---|---|
Image$$ |
Execution address of the region. |
Image$$ |
Execution region length in bytes excluding ZI length. |
Image$$ |
Address of the byte beyond the end of the non-ZI part of the execution region. |
Image$$ |
Execution address of the RO output section in this region. |
Image$$ |
Length of the RO output section in bytes. |
Image$$ |
Address of the byte beyond the end of the RO output section in the execution region. |
Image$$ |
Execution address of the RW output section in this region. |
Image$$ |
Length of the RW output section in bytes. |
Image$$ |
Address of the byte beyond the end of the RW output section in the execution region. |
Image$$ |
Execution address of the XO output section in this region. |
Image$$ |
Length of the XO output section in bytes. |
Image$$ |
Address of the byte beyond the end of the XO output section in the execution region. |
Image$$ |
Execution address of the ZI output section in this region. |
Image$$ |
Length of the ZI output section in bytes. |
Image$$ |
Address of the byte beyond the end of the ZI output section in the execution region. |
6.5 Load$$ execution region symbols
The linker generates Load$$
symbols for every execution region present in the image.
Note
Load$$region_name
symbols apply only to execution regions. Load$$LR$$load_region_name
symbols apply only to load regions.Load$$
execution region present in the image. All the symbols refer to load addresses after the C library is initialized.Table 6-2 Load$$ execution region symbols
Symbol | Description |
---|---|
Load$$ |
Load address of the region. |
Load$$ |
Region length in bytes. |
Load$$ |
Address of the byte beyond the end of the execution region. |
Load$$ |
Address of the RO output section in this execution region. |
Load$$ |
Length of the RO output section in bytes. |
Load$$ |
Address of the byte beyond the end of the RO output section in the execution region. |
Load$$ |
Address of the RW output section in this execution region. |
Load$$ |
Length of the RW output section in bytes. |
Load$$ |
Address of the byte beyond the end of the RW output section in the execution region. |
Load$$ |
Address of the XO output section in this execution region. |
Load$$ |
Length of the XO output section in bytes. |
Load$$ |
Address of the byte beyond the end of the XO output section in the execution region. |
Load$$ |
Load address of the ZI output section in this execution region. |
Load$$ |
Load length of the ZI output section in bytes.
The Load Length of ZI is zero unless
region_name has the ZEROPAD scatter-loading keyword set. If ZEROPAD is set then:Load Length =
Image$$ |
Load$$ |
Load address of the byte beyond the end of the ZI output section in the execution region. |
- The symbols are absolute because section-relative symbols can only have execution addresses.
- The symbols take into account RW compression.
- References to linker-defined symbols from RW compressed execution regions must be to symbols that are resolvable before RW compression is applied.
- If the linker detects a relocation from an RW-compressed region to a linker-defined symbol that depends on RW compression, then the linker disables compression for that region.
- Any Zero Initialized data that is written to the file is taken into account by the Limit and Length values. Zero Initialized data is written into the file when the
ZEROPAD
scatter-loading keyword is used.
6.6 Load$$LR$$ load region symbols
The linker generates Load$$LR$$
symbols for every load region present in the image.
Load$$LR$$
load region can contain many execution regions, so there are no separate $$RO
and $$RW
components.Note
Load$$LR$$load_region_name
symbols apply only to load regions. Load$$region_name
symbols apply only to execution regions.Load$$LR$$
load region present in the image.Table 6-3 Load$$LR$$ load region symbols
Symbol | Description |
---|---|
Load$$LR$$ |
Address of the load region. |
Load$$LR$$ |
Length of the load region. |
Load$$LR$$ |
Address of the byte beyond the end of the load region. |
6.7 Region name values when not scatter-loading
When scatter-loading is not used when linking, the linker uses default region name values.
ER_XO
, for an execute-only execution region, if present.ER_RO
, for the read-only execution region.ER_RW
, for the read-write execution region.ER_ZI
, for the zero-initialized execution region.
Image$$
execution region symbols.Load$$
execution region symbols.
Load$$ER_RO$$Base
.Note
- The ZI output sections of an image are not created statically, but are automatically created dynamically at runtime. Therefore, there is no load address symbol for ZI output sections.
- It is recommended that you use region-related symbols in preference to section-related symbols.
6.9 Methods of importing linker-defined symbols in C and C++
You can import linker-defined symbols into your C or C++ source code either by value or by reference.
- Import by value
-
- extern unsigned int symbol_name;
- Import by reference
-
- extern void *symbol_name;
int
, then you must use the address-of operator (&
) to obtain the correct value as shown in these examples:- Importing a linker-defined symbol
-
- extern unsigned int Image$$ZI$$Limit;
- config.heap_base = (unsigned int) &Image$$ZI$$Limit;
- extern unsigned int Image$$ZI$$Limit;
- Importing symbols that define a ZI output section
-
- extern unsigned int Image$$ZI$$Length;
- extern char Image$$ZI$$Base[];
- memset(Image$$ZI$$Base,,(unsigned int)&Image$$Length);
- extern unsigned int Image$$ZI$$Length;
6.11 Section-related symbols
Section-related symbols are symbols generated by the linker when it creates an image without scatter-loading.
- Image symbols, if you do not use scatter-loading to create a simple image. A simple image has up to four output sections (XO, RO, RW, and ZI) that produce the corresponding execution regions.
- Input section symbols, for every input section present in the image.
.text
sections are placed in one contiguous block. A contiguous block of sections with the same attribute and name is known as a consolidated section.6.21 Steering file command summary
A summary of the commands you can use in a streering file.
Table 6-6 Steering file command summary
Command | Description |
---|---|
EXPORT |
Specifies that a symbol can be accessed by other shared objects or executables. |
HIDE |
Makes defined global symbols in the symbol table anonymous. |
IMPORT |
Specifies that a symbol is defined in a shared object at runtime. |
RENAME |
Renames defined and undefined global symbol names. |
REQUIRE |
Creates a DT_NEEDED tag in the dynamic array. DT_NEEDED tags specify dependencies to other shared objects used by the application, for example, a shared library. |
RESOLVE |
Matches specific undefined references to a defined global symbol. |
SHOW |
Makes global symbols visible. This command is useful if you want to make a specific symbol visible that is hidden using a HIDE command with a wildcard. |
Note
6 Accessing and Managing Symbols with armlink的更多相关文章
- Unity3D & C# 设计模式--23
Unity3D & C#Design Patterns 23 design patterns. Creational Patterns 1. Abstract Factory抽象工厂 创 ...
- 【ASP.NET Identity系列教程(二)】运用ASP.NET Identity
注:本文是[ASP.NET Identity系列教程]的第二篇.本系列教程详细.完整.深入地介绍了微软的ASP.NET Identity技术,描述了如何运用ASP.NET Identity实现应用程序 ...
- TN035: Using Multiple Resource Files and Header Files with Visual C++
TN035: Using Multiple Resource Files and Header Files with Visual C++ This note describes how the Vi ...
- ASP.NET Identity 二 (转载)
来源:http://www.cnblogs.com/r01cn/p/5180892.html#undefined 推荐看原文,这里转载是怕好文章消失了. 注:本文是[ASP.NET Identity系 ...
- PASCAL VOC数据集The PASCAL Object Recognition Database Collection
The PASCAL Object Recognition Database Collection News 04-Apr-07: The VOC2007 challenge development ...
- SQLServer学习-- Microsoft SQL Server 2008 Management Studio Express
Microsoft SQL Server 2008 Management Studio Express is a free, integrated environment for accessing, ...
- Design Pattern ->Composite
Layering & Contract Philosophy With additional indirection class CComponent { ; ; ; public: virt ...
- ASP.NET Identity系列教程-3【运用ASP.NET Identity】
https://www.cnblogs.com/r01cn/p/5180892.html 14 运用ASP.NET Identity In this chapter, I show you how t ...
- Managing a node remotely by using the netapp SP
Managing a node remotely by using the Service Processor The Service Processor (SP) is a remote manag ...
随机推荐
- Read Committed
在Read Committed隔离级别下,一个事务可能会遇到不可重复读(Non Repeatable Read)的问题. 不可重复读是指,在一个事务内,多次读同一数据,在这个事务还没有结束时,如果另一 ...
- apue.h报错问题
下载apue.3e后进入make,提示错误如下: collect2: error: exit status Makefile:: recipe for target 'badexit2' failed ...
- A. Srdce and Triangle--“今日头条杯”首届湖北省大学程序设计竞赛(网络同步赛)
如下图这是“今日头条杯”首届湖北省大学程序设计竞赛的第一题,作为赛后补题 题目描述:链接点此 这套题的github地址(里面包含了数据,题解,现场排名):点此 Let be a regualr tr ...
- HDU 6697 Closest Pair of Segments (计算几何 暴力)
2019 杭电多校 10 1007 题目链接:HDU 6697 比赛链接:2019 Multi-University Training Contest 10 Problem Description T ...
- PAT_A1070#Mooncake
Source: PAT A1070 Mooncake (25 分) Description: Mooncake is a Chinese bakery product traditionally ea ...
- MySQL数据库_目录
MySQL数据库初识 MySQL的库表详细操作 MySQL行(记录)的详细操作 MySQL之单表查询 MySQL之多表查询 Navicat工具.pymysql模块 MySQL之视图.触发器.事务.存储 ...
- Java各版本的含义
JavaSE(Java Standard Edition):标准版,定位在个人计算机上的应用.这个版本是Java平台的核心,它提供了非常丰富的API来开发一般个人计算机上的应用程序,包括用户界面接口A ...
- MFC VC 双缓冲绘图基本原理与实现,详细解释
转自:http://blog.csdn.net/foreverhuylee/article/details/21548107 当然你可以直接搜索到能用的代码,并且基本能满足要求.不过这样总不是学习的态 ...
- Java性能调优攻略全分享,5步搞定!(附超全技能图谱)
对于很多研发人员来说,Java 性能调优都是很头疼的问题,为什么这么说?如今,一个简单的系统就囊括了应用程序.数据库.容器.操作系统.网络等技术,线上一旦出现性能问题,就可能要你协调多方面组件去进行优 ...
- hdu6395 /// 分块矩阵快速幂
题目大意: F(1)=A, F(2)=B, F(i)=C*F(i-2)+D*F(i-1)+p/i(向下取整) 给定A B C D p n 求F(n) 构造 矩阵A * 矩阵B = ...