__ attribute __((extion(“ name”)))用法?

2023-12-30

我已经运行过使用的代码__attribute__((section("name")))。据我所知,对于 gcc 编译器,这允许您告诉链接器将创建的对象放置在特定部分“名称”(在链接器文件中声明“名称”绝对地址)。

这样做而不是仅仅使用 .data 部分有什么意义?


有许多可能的用途。 [编辑添加注释:这只是我自己见过或考虑过的用途示例,而不是完整列表。]

例如,Linux 内核将某些代码和数据部分标记为仅在内核引导期间使用。这些可以在内核运行后被抛弃,回收空间以供其他用途。

您可以使用它来标记需要在特定处理器变体上修补的代码或数据值,例如,带或不带协处理器。

您可以使用它使内容存在于“特殊”地址空间中,这些地址空间将被烧录到 PROM 或保存在 EEPROM 上,而不是普通内存中。

您可以使用它来收集代码或数据区域,以实现初始化和清理等目的,就像在程序启动之前和结束时运行的 C++ 构造函数和析构函数一样,或者使用更短的寻址模式(我不知道有多少)将适用于 ARM,因为我自己没有编写任何 ARM 代码)。

实际使用取决于链接描述文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

__ attribute __((extion(“ name”)))用法? 的相关文章

随机推荐

  • 从 DllMain() 锁定时,Visual Studio 2012 中的 C++11 std::mutex 死锁

    我看到了僵局std mutex当互斥体被锁定时DllMain 下面是一个最小的 DLL 测试用例 它向我展示了这个问题 我的实际代码执行互斥锁定 因为它使用的成员函数也可以在正常函数期间在初始化之外使用 我认为问题是调度程序之间的死锁 如调
  • 模仿 Python 产量的惯用 Clojure 方式

    我正在迭代一个列表 边走边建立状态 偶尔当我遇到某个哨兵时 我会返回一个结果 如果我用 Python 来做这件事 我会懒惰地yield结果 跟踪函数本地范围内的状态 this is simplified for illustration d
  • 计算列表差异[重复]

    这个问题在这里已经有答案了 在Python中 计算两个列表之间差异的最佳方法是什么 example A 1 2 3 4 B 2 5 A B 1 3 4 B A 5 If 顺序并不重要 您可以简单地计算集合差 gt gt gt set 1 2
  • 在 Ada 中实现具有访问类型的抽象函数

    我有一个名为 Statements 的包 其中包含一个名为 Statement 的抽象类型和一个名为execute 的抽象函数 在另一个包中 我有一个CompoundStatement 类型 它是一个Statement 类型 它实现了exe
  • 如何在 WP7 silverlight 中将网格背景更改为图像?

    我正在尝试在 WP7 silverlight 中为网格控件设置背景 我需要以编程方式完成此操作 而不是在设计中 我尝试过类似的东西 ContentPanel Background new BitmapImage new Uri Images
  • 关于最小化代码和最大化数据哲学的思考

    我听说过最小化代码和最大化数据的概念 并且想知道其他人可以就我在构建自己的系统时如何 为什么应该这样做提供什么建议 通常 数据驱动的代码更易于阅读和维护 我知道我见过数据驱动被推向极端并且最终变得非常不可用的情况 我正在考虑我使用过的一些
  • Volusion API - 按日期范围导出订单

    我想按计划按日期范围导出 Volusion 订单 select from orders o where o OrderDate gt 7 20 2015 AND o OrderDate lt 7 23 2015 这可能吗 看来我的网址只能做
  • Android - 验证XML的签名

    我已经在网络上签署了 XML 文档 通过带有 RSA 和 X509 标签的纯 Java 并且我已经实现了 XML pull 解析器 在将 XML 文档中的一些信息解析到特定 URL 之前 我需要验证该文档是否正确一 你知道如何检查XML签名
  • 跨子域使用会话存储

    我有两个域domain1 site com 和domain2 site com 我在domain1 site com 中设置了会话存储 然后无法从同一选项卡获取其他域domain2 site com 上的会话存储 在跨子域导航时是否有其他方
  • Django Models / SQLAlchemy 太臃肿了!有没有真正的 Pythonic DB 模型?

    让事情尽可能简单 但不能更简单 我们能找到修复 Python 数据库世界的解决方案吗 Update Alex Martelli 编写了 lustdb 原型 http groups google com group lustdb 如果您知道任
  • Codeigniter 的活动记录有几个类似或?

    嘿 我在 sql 查询中使用几个 like 时遇到了问题 使用 Codeigniter 的 activerecord 生成 SELECT FROM posts WHERE city LIKE test AND title LIKE OR t
  • 在 Vim 崩溃之前捕获它的错误输出

    这与调试中提到的问题有关 插件 vim latex 在启动时导致 gVim 崩溃 https stackoverflow com questions 7034254 plugin vim latex crashing gvim on sta
  • 如何使用 sklearn 查找 Logistic 回归模型中的 beta 值

    基于Logistic回归函数 我正在尝试从我的模型中提取以下值scikit学习 and Where is the intercept and is the regression coefficient as per the wikipedi
  • 如何使用pysnmp获取SNMP数据?

    我想通过使用 python pysnmp 模块获取 snmp 数据 我曾经使用命令行来获取 SNMP 数据 但现在我想使用 pysnmp 模块来读取它 SNMP命令 snmpwalk v 1 c public
  • Ms-Access MDB:将备注字段拆分为多个文本字段。 (防止数据损坏)

    我使用 Access 数据库作为后端 我使用一些备注字段 我了解到 备注字段容易导致数据库损坏 因为它们存储在单独的数据页中 该记录仅保存指向存储实际数据的数据页的指针 大多数时候我只需要 100 到 1000 个字符左右 所以我有一个想法
  • 使用 iTextSharp 将 pdf 显示到网页?

    我正在使用 iTextSharp 生成 pdf 我想将其显示在网页上 并让用户从在线 pdf 查看器中保存它 动态pdf有一个drawtoweb 方法 但它不是免费使用的 而且我无法使用iTextSharp找到相同的功能 我怎样才能显示pd
  • 使用原型时的 Javascript 继承问题 - 实例被覆盖:(

    我是 JavaScript 编程新手 我对继承有一些噩梦 我正在为 Appcelerator Titanium 编写一些代码 并且我希望继承一个名为 Slide2D 的基类 所以我在Slide2D的原型中放置了一些函数 这些通常不会被覆盖
  • AngularJS then() 的行为与 success()-error() 不同[重复]

    这个问题在这里已经有答案了 As the success and error AngularJS 中不推荐使用函数 我正在更新我的代码 将它们替换为then 现在根据我的理解 这两段代码的行为应该是相同的 http get some par
  • 乔达时间 - 添加工作日至今

    是否可以将工作日添加到 joda 时间 例如 如果当前日期是 01 03 星期五 则 date 1 应返回 04 03 星期一 而不是 02 03 据我所知 Joda Time 中没有内置方法可以自动为您执行此操作 但是 您可以编写自己的方
  • __ attribute __((extion(“ name”)))用法?

    我已经运行过使用的代码 attribute section name 据我所知 对于 gcc 编译器 这允许您告诉链接器将创建的对象放置在特定部分 名称 在链接器文件中声明 名称 绝对地址 这样做而不是仅仅使用 data 部分有什么意义 有