我使用objcopy从二进制文件创建了一个对象文件,如下所示:
objcopy -I binary -O elf32-little --rename-section .data=.text file.bin file.o在链接器脚本的一个部分中,我包含了以下内容,以便将该文件放入该部分:
file.o (.text)但我得到了以下错误:
skipping incompatible file.o when searching for file.o
error: ld returned 1 exit status我正在开发一个arm微控制器,所以我相信文件格式“elf32 32-小”是正确的。
任何帮助都是非常感谢的。
遵循INCBIN路径的#####################################################################更新:
我尝试了一种新的方法,虽然取得了一些进展,但还没有完全取得进展。
这是我的程序集文件:
.section .text.audio_binary
.global audio_start
audio_start:
.incbin "AudioData.bin"
.global audio_start
audio_end:
.byte 0
.global audio_size
audio_size:
.int audio_start - audio_start这是我得到的对象文件:
raw_audio_binary.o: file format elf32-little
SYMBOL TABLE:
00000000 l d .text 00000000 .text
00000000 l d .data 00000000 .data
00000000 l d .bss 00000000 .bss
00000000 l d .text.audio_binary 00000000 .text.audio_binary
00069a78 l .text.audio_binary 00000000 audio_end
00000000 l .text.audio_binary 00000000 $d
00000000 l d .ARM.attributes 00000000 .ARM.attributes
00000000 g .text.audio_binary 00000000 audio_start
00069a79 g .text.audio_binary 00000000 audio_size这是我的链接脚本中的一节:
.text_Flash3 : ALIGN(4)
{
FILL(0xff)
*(.text.$Flash3*)
*(.text.$AUDIO*) *(.rodata.$Flash3*)
*(.text.audio_binary*) /* audio binary */
*(.rodata.$AUDIO*) } > AUDIO由于某些原因,链接器没有将数据放在本节(或任何部分)中。
有什么不对吗?
如果这里有什么不对劲的地方,我会事先道歉,我对链接脚本很陌生,所以我仍然理解它们.
发布于 2018-07-19 12:06:06
如果您有足够的最新版本的GAS,可以使用它使用 directive从二进制输入文件创建一个对象文件。
.section .rodata
.globl input_wav
input_wav:
.incbin "input.wav"
.globl input_wav_size
input_wav_size:
.long . - input_wavhttps://stackoverflow.com/questions/51411810
复制相似问题