我已经使用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
我正在为手臂微控制器开发,所以我相信文件格式“ elf32-little”是正确的。
非常感谢您的帮助。
########################################### ######################### 跟随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
由于某些原因,链接器未将数据放在此部分(或任何部分)中。
有什么想法吗?
如果在这里很不对劲,我事先表示歉意,我是链接器脚本的新手,因此仍然了解它们...
答案 0 :(得分:1)
如果您使用的是最新版本的GAS,则可以使用.incbin
directive通过二进制输入文件使用它来创建目标文件:
select Items.*, Cart.Qty
from Items
left join (select ItemID, Qty from carts where CartID = 1 ) Cart
on Items.ItemID = Cart.ItemID