博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
#pragma arm section说明
阅读量:5036 次
发布时间:2019-06-12

本文共 1395 字,大约阅读时间需要 4 分钟。

原文pdf文件请到如下地址下载查看:

4.6.3 #pragma arm section [section_sort_list]

此编译指示指定要用于后续函数或对象的节名称。这包括编译器为进行初始化而创建的匿名对象的定义。注意可以将 __attribute__((section(..)))  用于函数或变量以替代 #pragma arm section。

【语法】

#pragma arm section [ section_sort_list]
其中:
section_sort_list 指定要用于后续函数或对象的节名称的可选列表。
section_sort_list  的语法为:section_type[[=]"name"] [,section_type="name"]*

有效的节类型是:• code 、• rodata、• rwdata、• zidata 。

【用法】

可以将分散加载描述文件与 ARM  链接器配合使用,以控制将已命名的节放在特定内存地址的方式。

【限制】

此选项对以下内容无效:

• 内联函数及其局部静态变量。
• 模板实例化及其局部静态变量。
• 删除未使用的变量和函数。但是,可通过使用  #pragma arm section,使链接
器能够删除本来可能会保留的函数或变量,因为它与使用的函数或变量位
于相同的节中。
• 将定义写入对象文件的顺序。

【示例】

int x1 = 5;                     // in .data (default)

int y1[100];                    // in .bss (default)
int const z1[3] = {1,2,3};      // in .constdata (default)
#pragma arm section rwdata = "foo", rodata = "bar"
int x2 = 5;                     // in foo (data part of region)
int y2[100];                    // in .bss
int const z2[3] = {1,2,3};      // in bar
char *s2 = "abc";               // s2 in foo, "abc" in .conststring
#pragma arm section rodata
int x3 = 5;                     // in foo
int y3[100];                    // in .bss
int const z3[3] = {1,2,3};      // in .constdata
char *s3 = "abc";               // s3 in foo, "abc" in .conststring
#pragma arm section code = "foo"
int add1(int x)                   // in foo (code part of region)
{
return x+1;
}
#pragma arm section code

其实就是增加额外的name段,将这个段放在code、rodata、rwdata或zidata的起始位置,至于具体是哪个段,就是由section_type[[=]"name"]中的section_type指定了。

转载于:https://www.cnblogs.com/WIT-Evan/archive/2012/09/12/7291468.html

你可能感兴趣的文章
tmp目录
查看>>
Codeforces Round #374 (Div. 2)
查看>>
6个出色的基于JQuery的Tab选项卡实例
查看>>
(转)8款在线CSS优化工具/组织和压缩CSS
查看>>
删除文本文件行号的小方法(shell,sed)
查看>>
table头部、尾部固定;中间内容定高自适应滚动
查看>>
JAVA设计模式之调停者模式
查看>>
[SHELL进阶] (转)最牛B的 Linux Shell 命令 (二)
查看>>
微信小程序开发6-WXSS
查看>>
css
查看>>
js 输入一段英语找出最长的英语单词
查看>>
学习笔记26— roc曲线(python)
查看>>
学习笔记80—火狐设置
查看>>
Windows下修改Git bash的HOME路径(转)
查看>>
第三章 TCP/IP
查看>>
【cocos2d-x制作别踩白块儿】第一期:游戏介绍
查看>>
operator= 复制操作符的意外
查看>>
杭电ACM1408——盐水的故事
查看>>
发现的最大数量
查看>>
Ubuntu12.04环境搭建遇到的问题和建议(一个)
查看>>