如何将变量放置在内存中给定的绝对地址处(使用 GCC)

2023-12-14

RealView ARM C 编译器supports使用变量属性将变量放置在给定的内存地址处at(address):

int var __attribute__((at(0x40001000)));
var = 4;   // changes the memory located at 0x40001000

GCC有类似的变量属性吗?


我不知道,但您可以轻松创建这样的解决方法:

int *var = (int*)0x40001000;
*var = 4;

它不是exactly同样的事情,但在大多数情况下是完美的替代品。它适用于任何编译器,而不仅仅是 GCC。

如果你使用 GCC,我假设你也使用GNU ld(当然,虽然这不是确定的)并且 ld 支持放置变量无论你想要他们在哪里.

我想让链接器完成这项工作是很常见的。

受到@rib回答的启发,我会补充说,如果绝对地址用于某些控制寄存器,我会添加volatile到指针定义。如果只是RAM,那没关系。

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

如何将变量放置在内存中给定的绝对地址处(使用 GCC) 的相关文章

  • GCC C++ (ARM) 和指向结构体字段的 const 指针

    假设有一个简单的测试代码 typedef struct int first int second int third type t define ADDRESS 0x12345678 define REGISTER type t ADDRE
  • MEX 文件中的断言导致 Matlab 崩溃

    我正在使用mxAssert 宏定义为matrix h在我的 C 代码中 mex 可以完美编译 当我调用的 mex 代码中违反断言时 该断言不会导致我的程序崩溃 而是导致 Matlab 本身崩溃 我错过了什么吗 这是有意的行为吗 当我查看 M
  • Blazor 与 Razor

    随着 Blazor 的发明 我想知道这两种语言之间是否存在显着的效率 无论是在代码创建方面还是在代码的实际编译 执行方面 https github com SteveSanderson Blazor https github com Ste
  • try-catch 中未处理的异常

    try list from XElement e in d Descendants wix File where e Attribute Name Value Contains temp Name e Parent Parent Attri
  • 调试内存不足异常

    在修复我制作的小型 ASP NET C Web 应用程序的错误时 我遇到了 OutOfMemoryException 没有关于在哪里查看的提示 因为这是一个编译时错误 如何诊断此异常 我假设这正是内存分析发挥作用的地方 有小费吗 Thank
  • ZLIB 解压缩

    我编写了一个小型应用程序 该应用程序应该解压缩以 gzip deflate 格式编码的数据 为了实现这一点 我使用 ZLIB 库 使用解压缩功能 问题是这个功能不起作用 换句话说 数据不是未压缩的 我在这里发布代码 int decompre
  • C++11 函数局部静态 const 对象的线程安全初始化

    这个问题已在 C 98 上下文中提出 并在该上下文中得到回答 但没有明确说明有关 C 11 的内容 const some type create const thingy lock my lock some mutex static con
  • 如何用 kevent() 替换 select() 以获得更高的性能?

    来自Kqueue 维基百科页面 http en wikipedia org wiki Kqueue Kqueue 在内核和用户空间之间提供高效的输入和输出事件管道 因此 可以修改事件过滤器以及接收待处理事件 同时每次主事件循环迭代仅使用对
  • 为什么 FTPWebRequest 或 WebRequest 通常不接受 /../ 路径?

    我正在尝试从 ftp Web 服务器自动执行一些上传 下载任务 当我通过客户端甚至通过 Firefox 连接到服务器时 为了访问我的目录 我必须指定如下路径 ftp ftpserver com AB00000 incoming files
  • 两组点之间的最佳匹配

    I ve got two lists of points let s call them L1 P1 x1 y1 Pn xn yn and L2 P 1 x 1 y 1 P n x n y n 我的任务是找到它们点之间的最佳匹配 以最小化它
  • 事件日志写入错误

    很简单 我想向事件日志写入一些内容 protected override void OnStop TODO Add code here to perform any tear down necessary to stop your serv
  • 用于从字符串安全转换的辅助函数

    回到 VB6 我编写了一些函数 让我在编码时无需关心字符串的 null 和 数字的 null 和 0 等之间的区别 编码时 没有什么比添加特殊情况更能降低我的工作效率了用于处理可能导致一些不相关错误的数据的代码 9999 10000 如果我
  • C# using 语句、SQL 和 SqlConnection

    使用 using 语句 C SQL 可以吗 private static void CreateCommand string queryString string connectionString using SqlConnection c
  • UWP 无法在两个应用程序之间创建本地主机连接

    我正在尝试在两个 UWP 应用程序之间设置 TCP 连接 当服务器和客户端在同一个应用程序中运行时 它可以正常工作 但是 当我将服务器部分移动到一个应用程序并将客户端部分移动到另一个应用程序时 ConnectAsync 会引发异常 服务器未
  • Qt - 设置不可编辑的QComboBox的显示文本

    我想将 QComboBox 的文本设置为某些自定义文本 不在 QComboBox 的列表中 而不将此文本添加为 QComboBox 的项目 此行为可以在可编辑的 QComboBox 上实现QComboBox setEditText cons
  • 从匿名类型获取值

    我有一个方法如下 public void MyMethod object obj implement 我这样称呼它 MyMethod new myparam waoww 那么我该如何实施MyMethod 获取 myparam 值 Edit
  • 无法使用 Ninject 将依赖项注入到从 Angular 服务调用的 ASP.NET Web API 控制器中

    我将 Ninject 与 ASP NET MVC 4 一起使用 我正在使用存储库 并希望进行构造函数注入以将存储库传递给其中一个控制器 这是实现 StatTracker 接口的上下文对象 EntityFramework public cla
  • 为什么 Ajax.BeginForm 在 Chrome 中不起作用?

    我正在使用 c NET MVC2 并尝试创建一个 ajax 表单来调用删除数据库记录 RemoveRelation 的方法 删除记录的过程正在按预期进行 删除记录后 表单应调用一个 JavaScript 函数 从视觉效果中删除该记录 Rem
  • boost::program_options:带有固定和可变标记的参数?

    是否可以在 boost program options 中使用此类参数 program p1 123 p2 234 p3 345 p12 678 即 是否可以使用第一个标记指定参数名称 例如 p 后跟一个数字 是动态的吗 我想避免这种情况
  • 从类模板参数为 asm 生成唯一的字符串文字

    我有一个非常特殊的情况 我需要为类模板中声明的变量生成唯一的汇编程序名称 我需要该名称对于类模板的每个实例都是唯一的 并且我需要将其传递给asm关键字 see here https gcc gnu org onlinedocs gcc 12

随机推荐

  • 神秘消失的参考资料

    我的 Windows 窗体应用程序遇到了一个似乎非常奇怪的问题 我是一名 Web 开发人员 开发 Windows 窗体应用程序的经验有限 我正在开发一个电子商务网站 该网站将产品图像作为 blob 存储在数据库中 为了更容易批量导入图像 我
  • 多线程最佳实践:约束任务 newFixedThreadPool

    我想启动很多任务来在 42Mio 记录的数据库上运行 我想以 5000 条记录 时间的批次运行此程序 结果为 850 个任务 我还想限制 java 开始为我执行此操作的线程数 最多 16 个 并且我正在使用当前代码来完成此任务 Execut
  • JAXB无尽的数据结构,递归绑定?

    在开始一个项目之前 我想先简单了解一下 如果我有这样的结构
  • 如何在OpenCV中进行网格插值interp2

    我试图弄清楚如何在 OpenCV 中执行与此 matlab 代码等效的操作 有几个地方可以使用cv remap作为替代interp2 但它给我的结果与 matlab 不同 如果有帮助的话 这是在执行分段仿射变换的函数内部 作为拟合主动外观模
  • 确定如何在 ZoneDateTime 上使用 nodaTime 和 withZone 计算不同时区的时间

    在时区之间转换时间时 我发现以下代码有效 但是我不确定如何以编程方式将什么作为构造函数的偏移量ZonedDateTime 我可以选择芝加哥地区的一个偏移量 只有两个 因为它要么没有夏令时 但我怎么知道我使用哪一个 对于超过两个的时区 什么是
  • 如何在php mysql中重命名上传多个图像?

    我正在尝试使用下面的代码使用 php mysql 通过数据库上传多个图像 但无法正常工作 请帮助我如何在 php mysql 中上传多个图像 并出现错误 558d45b0b348a 注意 未定义的变量 第 37 行 D xampp htdo
  • SQL Server 2005 - 查找哪些存储过程运行到特定表

    有没有一种快速的方法可以让我找到 哪些存储过程运行到 我的数据库中的特定表 数据库非常大 有很多表和存储过程 如果您想将搜索限制为存储过程 那么您可以这样做 SELECT name FROM sys objects WHERE type P
  • 从预期的嵌套块块访问变量[重复]

    这个问题在这里已经有答案了 在下面的程序中 如何从A块到C块中检索aa的值 我们只能使用范围解析运算符访问最外层的全局 aa 已知解决方案 1 不同块使用不同的指针 2 在使用当前块的变量之前先使用父块中的变量 我正在寻找任何其他替代解决方
  • GitHub - 检测到大文件 - 无法推送

    我完全无法推送到我的 GitHubmaster分支 它抱怨一个 100 MB 的文件甚至不是前端的一部分 该文件是 Net 后端的一部分 前端是 Angular 13 这些是独立的项目 我在这里能做什么 我已经用尽了所有的选择 它抱怨 An
  • Volumes_from 指令 - docker compose

    与下面的docker compose yml file test build dockerfile docker dev Dockerfile volumes from cachev cachev build dockerfile dock
  • XPath 和 Jenkins Plot 插件

    我正在尝试使用 Jenkins 的 Plot 插件生成一个图表 显示我们的代码中有多少个 TODO 标记 我在构建过程中生成了一个 XML 文件 其中包含有关它们的数据 除其他外 每个 TODO 标记在 XML 中都有一行 如下所示
  • 使用 sqlalchemy WHERE 子句和 IN 运算符时保持顺序

    考虑以下数据库表 ID ticker description 1 GDBR30 30YR 2 GDBR10 10YR 3 GDBR5 5YR 4 GDBR2 2YR 可以用这段代码复制它 from sqlalchemy import Col
  • jQuery 验证 - 如何使用两个 XOR 规则验证一个字段

    我有一个字段可以包含电子邮件或手机 在我的例子中手机是 8 位数字 我已经尝试了两种方法 两个示例都不起作用 因为 元素 没有验证方法 第一种方法 创建自定义方法并在那里进行两种验证 但随后我必须创建自己的电子邮件和移动验证 我找不到在新方
  • useCallBack 执行两次

    为什么 useCallback 钩子执行两次 我收到一条警告 建议我使用 useCallback 所以我正在尝试这样做 据我了解 useCallback 仅在我们传递给数组的对象更新时才会执行 所以我的目标是在加载令牌后让 websocke
  • 从 ThreadPoolTask​​Executor 获取可调用对象或将 Runnable 转换为 Callable

    我在用着线程池任务执行器用于执行我的任务 这些任务是Callable界面 我只想及时检查任务是否仍在池中 监视 怎么做 我知道我可以从线程池执行器但我怎样才能将 Runnable 转换为 Callable 呢 基本上我有这个可调用的 pub
  • 启用和禁用 Android 中的日期

    我在我的应用程序中使用日历 在我的应用程序中成功实现了日历 但问题是如何启用和禁用特定日期 例如 需要在所有月份中仅启用星期一或在所有月份中启用星期一和星期日 我的日历视图 import java util ArrayList import
  • psycopg2.sql 发生了什么?

    在 psycopg2 文档中它引用了sql充满乐趣的财产safely构造 SQL 字符串 然而我在 python 3 上的安装 应该是 PyPI 的最新版本 不包含这样的属性 from psycopg2 import sql ImportE
  • 如何在 matplotlib 中的特定日期绘制垂直线[重复]

    这个问题在这里已经有答案了 如何在特定日期向该图表添加垂直线标记 Week end是日期列 fig ax plt subplots figsize 20 9 thirteen plot line x Week end y OFF color
  • 在 PowerShell 中如何将文件从远程 PSsession 复制到另一台 Windows 服务器

    我正在尝试将文件夹从一台远程服务器复制到 PSSession 内的另一台服务器 它给出了诸如访问被拒绝之类的错误 我对两台服务器都有管理员权限 如果我在没有 PSSession 的情况下尝试它 它会起作用 在远程服务器中 PS C User
  • 如何将变量放置在内存中给定的绝对地址处(使用 GCC)

    RealView ARM C 编译器supports使用变量属性将变量放置在给定的内存地址处at address int var attribute at 0x40001000 var 4 changes the memory locate