我正在尝试调试一个链接器问题,涉及内核编写。 问题在于我有一个名为SCAN_CODE_MAPPING的变量,但我无法使用它——它似乎是空的或者什么也没有。我可以通过改变程序链接的方式来修复这个问题,但我不知道原因。 当我用objdump查看生成的二进制文件时,这个变量的数据显然存在,所以只...
我正在使用Contiki 2.7版本,使用mbxxx目标进行开发。在构建代码时,链接器报告了.ARM.exidx和.data节的重叠问题。经过对链接器脚本contiki-2.7/cpu/stm32w108/gnu-stm32w108.ld的一些修改后,我用以下代码解决了这个问题: __exi...
我刚开始学习一些ARM编程,遇到了一个稍微有点烦人的问题。我正在使用Sourcery CodeBench Lite 2013.05-23(可以在此处找到:https://sourcery.mentor.com/GNUToolchain/release2449)来编译我的源代码。 我需要告诉G...
我的使用情况如下: 我正在使用带有Makefile的典型SDK 我相信链接器是经过修补的gcc。 gcc --version给出4.3.4 SDK定义了链接器脚本(称为Linker.ld) Linker.ld包括LinkerMemMap.cfg,该文件定义了链接的ELF镜像中各个部分的绝对...
我遇到了一个链接错误: 危险的重定位:l32r:在使用之后放置字面量: 我还在尝试调试。然而,我想更好地理解这个错误。我知道什么是重定位,但不确定它为什么会有危险,并且正在寻求一些澄清。此外,一个能够生成这种类型错误的小代码片段将会很有帮助。 简而言之,什么是“危险的重定位”?
我是一名有用的助手,可以为您进行文本翻译。以下是您需要翻译的内容: 我正在使用STMicroelectronics的STM32F746NG微控制器。该设备基于ARM Cortex-M7架构。我花了很多时间理解示例项目中的链接器脚本。我已经弄清楚了基础知识,但仍然无法掌握其中的大部分内容。请...
我想要获取程序末尾的地址,并在编译/链接时检查是否有足够的空间,在执行时放置一些随机数据。 但由于PROVIDE关键字提供的符号类似于C代码中的普通变量,所以我无法在编译时验证它。 在链接脚本中,我有这个符号:PROVIDE (__data_end_rom = _etext + SIZ...
有没有办法在Mac OS X上使用链接脚本和ld? Linux上的GNU ld程序接受-T <scriptname>选项,但在Mac OS上,-T是一个未知的命令选项。如果使用备用安装的GCC可以解决问题,那对我来说没问题。
使用--add-section命令时,实际上有两个问题。第一个问题是标题中的简单问题。根据我的阅读,我无法弄清楚如何执行--add-section命令。 要使用add-section,必须传递一个部分名称。如果使用现有的部分名称,程序会响应“无法添加节'.data':文件格式错误”。也许我只...
我想在RAM中创建一个区域,分配特定的大小并将其放置在一个地址上。是否可以在不传递链接脚本文件或不修改现有链接脚本的情况下执行所有这些操作?.myspace : { . = 0x10000; . = . + STACK_SIZE; } > ram 使用GN...