15得票2回答
链接脚本:调试策略?

我正在尝试调试一个链接器问题,涉及内核编写。 问题在于我有一个名为SCAN_CODE_MAPPING的变量,但我无法使用它——它似乎是空的或者什么也没有。我可以通过改变程序链接的方式来修复这个问题,但我不知道原因。 当我用objdump查看生成的二进制文件时,这个变量的数据显然存在,所以只...

15得票3回答
何时使用.ARM.exidx?

我正在使用Contiki 2.7版本,使用mbxxx目标进行开发。在构建代码时,链接器报告了.ARM.exidx和.data节的重叠问题。经过对链接器脚本contiki-2.7/cpu/stm32w108/gnu-stm32w108.ld的一些修改后,我用以下代码解决了这个问题: __exi...

15得票3回答
GCC:如何告诉GCC将'main'函数放在.text节的开头?

我刚开始学习一些ARM编程,遇到了一个稍微有点烦人的问题。我正在使用Sourcery CodeBench Lite 2013.05-23(可以在此处找到:https://sourcery.mentor.com/GNUToolchain/release2449)来编译我的源代码。 我需要告诉G...

14得票1回答
GNU LD: 如何使用-T指定的链接器脚本覆盖符号值(地址)

我的使用情况如下: 我正在使用带有Makefile的典型SDK 我相信链接器是经过修补的gcc。 gcc --version给出4.3.4 SDK定义了链接器脚本(称为Linker.ld) Linker.ld包括LinkerMemMap.cfg,该文件定义了链接的ELF镜像中各个部分的绝对...

14得票1回答
危险的迁移错误是什么意思?

我遇到了一个链接错误: 危险的重定位:l32r:在使用之后放置字面量: 我还在尝试调试。然而,我想更好地理解这个错误。我知道什么是重定位,但不确定它为什么会有危险,并且正在寻求一些澄清。此外,一个能够生成这种类型错误的小代码片段将会很有帮助。 简而言之,什么是“危险的重定位”?

13得票2回答
理解ARM Cortex-M微控制器的链接脚本

我是一名有用的助手,可以为您进行文本翻译。以下是您需要翻译的内容: 我正在使用STMicroelectronics的STM32F746NG微控制器。该设备基于ARM Cortex-M7架构。我花了很多时间理解示例项目中的链接器脚本。我已经弄清楚了基础知识,但仍然无法掌握其中的大部分内容。请...

11得票3回答
在C代码中,是否可以将链接脚本符号地址作为编译时常量值获取?

我想要获取程序末尾的地址,并在编译/链接时检查是否有足够的空间,在执行时放置一些随机数据。 但由于PROVIDE关键字提供的符号类似于C代码中的普通变量,所以我无法在编译时验证它。 在链接脚本中,我有这个符号:PROVIDE (__data_end_rom = _etext + SIZ...

10得票1回答
在Mac OS X上使用链接脚本

有没有办法在Mac OS X上使用链接脚本和ld? Linux上的GNU ld程序接受-T <scriptname>选项,但在Mac OS上,-T是一个未知的命令选项。如果使用备用安装的GCC可以解决问题,那对我来说没问题。

10得票2回答
OBJCOPY命令的--add-section开关如何使用?

使用--add-section命令时,实际上有两个问题。第一个问题是标题中的简单问题。根据我的阅读,我无法弄清楚如何执行--add-section命令。 要使用add-section,必须传递一个部分名称。如果使用现有的部分名称,程序会响应“无法添加节'.data':文件格式错误”。也许我只...

10得票1回答
能否使用命令行参数传递给GNU LD以创建一个区域,并定义大小并将其放置在特定的内存中?

我想在RAM中创建一个区域,分配特定的大小并将其放置在一个地址上。是否可以在不传递链接脚本文件或不修改现有链接脚本的情况下执行所有这些操作?.myspace : { . = 0x10000; . = . + STACK_SIZE; } > ram 使用GN...