将 gcc libs .data 放在特定部分?

2024-03-18

我正在尝试为我们的嵌入式系统切换到 GNU GCC 编译器,但由于我们芯片的内存布局被分割,我在链接该项目时遇到了问题:

RAM section 1: 0x10000-0x12FFF
RAM section 2: 0x18000-0x1BFFF

我们项目中的数据可以放在第 1 部分中,但从 gcc 库链接的数据则不适合。地图文件提取:

.data          0x00012974      0x3c4 c:/tools/gnucr16_v1.1.3-elf/cr16-elf/bin/../lib/gcc/cr16-elf/4.5.1-GNUCR16_v1.1.3/../../../../cr16-elf/lib\libc.a(lib_a-impure.o)
               0x00012974                _impure_ptr

.data          0x00012d7c      0x410 c:/tools/gnucr16_v1.1.3-elf/cr16-elf/bin/../lib/gcc/cr16-elf/4.5.1-GNUCR16_v1.1.3/../../../../cr16-elf/lib\libc.a(lib_a-mallocr.o)
               0x00012d7c                __malloc_av_
               0x00013184                __malloc_trim_threshold
               0x00013188                __malloc_sbrk_base

是否可以将库中的 .data 部分放在第二部分中?我尝试了不同的方法但没有成功...链接器脚本摘录:

MEMORY
{
  SHARED1    : org =   0x10000, len = 0x3000
  SHARED2    : org =   0x18000, len = 0x4000
}

SECTIONS
{
  .data 0x12004 : { *(.data); } >SHARED1
  .data2 0x19000 : { libc*(.data); } >SHARED2
}

SECTIONS
{
  .section_name:
  {
    *lib_a-impure.o (.data);  //That is the syntax to access sections of object files
   } >SHARED1
}

更多信息请点击这里:http://www.embedded.com/design/mcus-processors-and-socs/4026080/Building-Bare-Metal-ARM-Systems-with-GNU-Part-3 http://www.embedded.com/design/mcus-processors-and-socs/4026080/Building-Bare-Metal-ARM-Systems-with-GNU-Part-3

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

将 gcc libs .data 放在特定部分? 的相关文章

  • 如何让 gcc 生成合适的代码来检查缓冲区是否充满 NUL 字节?

    我正在实现一个解析磁带档案的程序 解析器逻辑的一部分是检查存档结束标记 该标记是一个充满 NUL 字节的 512 字节块 我为此编写了以下代码 希望 gcc 能对此进行很好的优化 int is eof block const char us
  • clang 编译器从相同的源生成不同的目标文件

    我有一个简单的 hello world Objective C 库 hello m import
  • C++x0 unique_ptr GCC 4.4.4

    我正在尝试使用 C x0 中的 unique ptr 方法是 include
  • 是否有与 gcc --kill-at 等效的 Visual C++?

    也就是说 DLL 名称末尾有一个额外的 8 这会造成问题 显然 在 gcc 中使用 kill at 标志可以解决这个问题 但我找不到任何类似的 MSVC 建议 编辑 更多信息 我试图让 C JNI dll 工作 但我总是得到 线程 Thre
  • 全局变量在函数调用之间是否刷新?

    我正在编写嵌入式固件 发现有时很难决定何时需要易失性 当我有一个等待中断更改某个布尔标志的函数时 很明显该标志需要是易失性的 因为否则该函数将永远等待 因为编译器没有意识到该值可以通过打断 但是 当我有一个只检查第一行中的标志的短函数时 我
  • 如何为 iPhone 构建静态库?

    我想我已经到处寻找问题的答案 但没有运气 我正在尝试创建一个简单的静态库来在 iPhone 设备上运行 但我总是以 XCode 结束 说 文件不属于必需的架构 并且我已经尝试了我发现的每个构建标志 但没有任何运气 我已经让它在模拟器上工作了
  • ld: 无法对非 PE 输出文件执行 PE 操作错误

    我是操作系统编程的新手 我正在读一本书 其中给出了一个简单的内核示例 如下所示 main char video memory 0xb8000 video memory X 为了编译这个名为 kernel c 的文件 我在 Windows 7
  • std::thread::id 的 std::operator== 中的分段错误

    我遇到了一个问题 我不确定如何解决 我相信这是 GCC 和 或 libstdc 中的问题 我正在运行 Ubuntu 14 04 LTS 和 GCC 4 8 2 19ubuntu1 libstdc 3 4 19 我相信 如何找到 Linux
  • G++ 错误:“”的类型不完整

    我被迫使用第三方加密狗访问库 该库提供包含文件 sense4 h 其代码如下 if defined WINDOWS define WINAPI define CONST const typedef unsigned char UCHAR t
  • 在LPC2148 ARM处理器上创建中断向量的汇编代码

    我最近刚刚开始使用 LPC2148 ARM 处理器 我试图理解一些有关创建中断向量的汇编代码 这是代码 Runtime Interrupt Vectors Vectors b start reset start ldr pc undf un
  • rand() 的实现

    我正在用 C 编写一些嵌入式代码 需要使用 rand 函数 不幸的是 控制器的库不支持 rand 我需要一个快速的简单实现 但更重要的是空间开销很小 可以产生相对高质量的随机数 有谁知道使用哪种算法或示例代码 编辑 它用于图像处理 因此 相
  • 找不到包“gdk-pixbuf-2.0”

    我正在尝试在 Amazon Linux 发行版实例上构建 librsvg 我已经通过 yum 安装了大部分依赖项 其中一些在实例上启用的默认 yum 存储库中不可用 因此必须从头开始构建它们 我已经走了很远 但还停留在最后一点 跑步时sud
  • gcc,我可以将 offsetof() 与指向成员的模板化指针一起使用吗?

    下面的代码在这里 https ideone com XnxAyw https ideone com XnxAyw 我得到的编译器错误是 prog cpp In member function size t list base
  • 基于 MIPS 的 codesourcery 工具链的编译参数?

    我在我的 WIN 7 机器上安装了用于 mips32 架构的 codesourcery 交叉编译工具链 我想首先为我的路由器编译一个基于 MIPS32 的简单 阶乘 二进制文件 在网上搜索了一下 我发现它是基于MIPS32 big endi
  • Bash for Windows 10 gcc 不会编译粘贴到根目录中的 c 文件

    正如标题所示 如果我将在其他地方编写的c文件粘贴到Linux子系统的根目录中 则无法编译它 我做了一个测试 我制作了两个不同标题的 hello world 程序 一个在 vi 中 我可以从 bash 界面进入 另一个在其他地方 当我编译了
  • 使用 tar 压缩带有密码的文件 tar.gz [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 I use tar czf test tar gz test 压缩test文件夹到test tar gz 现在 我想压缩为test tar
  • 有没有办法用 gcc 查询直接模块依赖关系?

    给定一个模块 a m cc export module A import B import C import D h 有没有一种调用 gcc 的方法 类似于 M 对标头所做的操作 来列出对其他模块和导入标头 即 B C 和 D h 的直接依
  • 编译器如何如此好地优化这个阶乘函数?

    所以我一直在研究一些神奇的东西O3在 GCC 中 实际上我正在使用 Clang 进行编译 但这与 GCC 相同 我猜优化器的很大一部分是从 GCC 转移到 Clang 的 考虑这个 C 程序 int foo int n if n 0 ret
  • 用于优化的编译器提示和语义[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我花了几周时间优化数值算法 通过预计算 内存对齐 编译器提示和标志以及反复试验的组合 我将运行时间缩短了一个数量级 我尚未使用内在函数
  • glibc 堆一致性检查

    根据2008年的帖子 我现在找不到 glibc 堆检查 http www gnu org s libc manual html node Heap Consistency Checking html在多线程环境中不起作用 现在还是2010年

随机推荐

  • 仅根据字段名称对类数组进行排序

    我有一个应用程序 用户向我提供字段名称 例如name or costInCents 我必须按该字段排序 我有办法保证字段名称是正确的 这个应用程序导致了我根本无法上课的复杂情况Comparable并实施具体的compareTo 因为自定义实
  • 为用户定义类型实现 ToOwned

    考虑以下示例代码 derive Clone struct DataRef lt a gt text a str derive Clone struct DataOwned text String 我要实施ToOwned for DataRe
  • 如何让 iPhone 应用程序用户提交崩溃报告? [复制]

    这个问题在这里已经有答案了 可能的重复 iPhone如何获取客户的崩溃日志 https stackoverflow com questions 3844482 iphone how to get crash log from custome
  • 在 JavaScript 中,当完成通过 new ActiveXObject 创建的对象后,我是否需要将其设置为 null?

    在 WSH 中运行并创建对象 例如 Scripting FileSystemObject 或任何任意 COM 对象 的 Javascript 程序中 完成后是否需要将变量设置为 null 例如 我建议这样做 var fso new Acti
  • 如何将开始按钮放在剪辑的中间

    我在以下位置找到了设计师页面http www videojs com http www videojs com 在那里 您可以将开始按钮的位置更改为剪辑的中间 但我无法在 video js 播放器上放置或使用此样式表 有人可以解释一下如何在
  • C++ 中获取用户输入未执行/跳过的代码

    在下面的代码中 当我尝试让用户输入他们的名字时遇到错误 我的程序只是跳过它并直接进行函数调用 而不允许用户输入他们的名字 尽管出现错误 我的程序仍在编译 我不确定出了什么问题 因为我是根据在这里找到的其他示例编写该部分的 有什么建议么 in
  • 使用 Moneta (JavaMoney) JSR 354 实现自定义货币金额格式

    我真的很困惑如何定制MonetaryAmountFormat使用 Moneta JSR 354 实现 我的目的是能够解析两者1 23 and 3 45 as MonetaryAmounts 这是我的单元测试 Test public void
  • 从 WidgetKit 小部件扩展检测应用程序启动

    点击 WidgetKit 小部件会自动启动其父应用程序 如何检测我的应用程序是否是从其 WidgetKit 小部件扩展启动的 我无法找到任何有关在应用程序中捕获此内容的文档AppDelegate and or SceneDelegate 要
  • 如何使用参数和 POST 方法重定向到外部 url?

    我想在提交到 Flask 中的操作 url 之前保存表单数据
  • 如何在android中打开图库中的一个特定文件夹?

    我使用下面的代码打开 Android 默认图库应用程序 它会打开 sdcard 下的所有图像文件夹 如何只打开一个特定文件夹 Intent intent new Intent Intent ACTION PICK android provi
  • 除非作为参数传入,否则无法添加快速路线

    我正在尝试创建映射其自己的路线的节点模块 我在下面提供了一个简化的示例 删除了返回的对象中映射的所有其他函数以及任何代码以简化示例 我最初的尝试是这样做 文件 web core js function initRoutes app var
  • 具有不同 uv 坐标的 OpenGL ES 1 多重纹理

    我需要使用多重纹理渲染一个对象 但两个纹理对于同一对象具有不同的 uv 坐标 一张是法线贴图 另一张是光照贴图 请提供与此相关的任何有用材料 在 OpenGL ES 2 中 无论如何你都会使用着色器 因此 您可以完全自由地使用您喜欢的任何纹
  • 为 RDBMS(MySQL 数据库)创建 SPARQL 端点的最佳方法

    我正在 想做 一些链接开放数据集的实验 特别是政府推出的实验 我有一个 RDBMS 更具体地说是 MySQL 我设计它时考虑了语义网络的想法 即我将信息存储为对象 谓词和定义对象的类 反过来 所有对象通过主语 gt 谓词 gt 宾语形式的语
  • OpenId + 记住我/保持登录状态

    我有一个问题 关于如何 什么是使用 OpenId 并提供保持登录状态的最佳方法 例如 如果我查看 Stackoverflow 我已经使用 Google 登录 如果我关闭浏览器并返回 它仍然显示我已登录 However 我没有登录谷歌 而且我
  • Rails 引擎存在外键问题

    我正在开发一个 Rails 引擎 这是我的gem gemspec s required ruby version gt 2 0 0 s add dependency rails gt 4 2 0 s add dependency enume
  • angularjs - 在范围或 ng-model 上使用“字符串”名称

    在普通的 JavaScript 中 你可以像这样声明变量 var obj obj item text obj item text 这里给出的例子 http jsbin com petafu 1 edit http jsbin com pet
  • Google Play 排行榜 UI 颜色更改

    在我刚刚开发的游戏中 直到一周前 排行榜 UI 颜色还是深半透明的绿色 这看起来感觉很好 至少对眼睛不刺激 突然之间 它变成了明亮的半透明红色 并且从那时起就一直保持这种颜色 这种颜色与我游戏的任何阶段的任何屏幕都不匹配 这是我的排行榜屏幕
  • 如何在 Dart 中创建 HTML 链接?

    我想用 Dart 创建一个 HTML 链接 在 HTML 中我会写 You can click a href url 1 here a and a href url 2 there a 我不知道如何在 Dart 中做到这一点 我尝试过类似的
  • Python xlwt 创建错误的 Excel 书

    我正在尝试使用xlwt创建具有多个选项卡的输出文件 xlsx 格式 我的Python版本号是2 7 我使用Aptana Studio 3作为IDE 我用过xlwt包之前 具有相同的环境 执行相同的任务 效果很好 但这一次 一开始运行良好 然
  • 将 gcc libs .data 放在特定部分?

    我正在尝试为我们的嵌入式系统切换到 GNU GCC 编译器 但由于我们芯片的内存布局被分割 我在链接该项目时遇到了问题 RAM section 1 0x10000 0x12FFF RAM section 2 0x18000 0x1BFFF