I have created an object file from a binary file using objcopy as below:
objcopy -I binary -O elf32-little --rename-section .data=.text file.bin file.o
In one of the linker script sections I have included the following to place that file into that section:
file.o (.text)
But I get the following error:
skipping incompatible file.o when searching for file.oerror: ld returned 1 exit status
I am developing for a arm microcontroller so I believe the file format "elf32-little" is correct.
Any help is much appreciated.
#####################################################################UPDATE FOLLOWING THE INCBIN path:
I have tried a new approach and although I have made some progress still not quite yet there.
This is my assembly file:
.section .text.audio_binary .global audio_start audio_start: .incbin "AudioData.bin" .global audio_start audio_end: .byte 0 .global audio_sizeaudio_size: .int audio_start - audio_start
This is the object file I get:
raw_audio_binary.o: file format elf32-littleSYMBOL TABLE:00000000 l d .text 00000000 .text00000000 l d .data 00000000 .data00000000 l d .bss 00000000 .bss00000000 l d .text.audio_binary 00000000 .text.audio_binary00069a78 l .text.audio_binary 00000000 audio_end00000000 l .text.audio_binary 00000000 $d00000000 l d .ARM.attributes 00000000 .ARM.attributes00000000 g .text.audio_binary 00000000 audio_start00069a79 g .text.audio_binary 00000000 audio_size
And this is the section I have in my linker script:
.text_Flash3 : ALIGN(4) { FILL(0xff) *(.text.$Flash3*) *(.text.$AUDIO*) *(.rodata.$Flash3*) *(.text.audio_binary*) /* audio binary */ *(.rodata.$AUDIO*) } > AUDIO
For some reason the linker does NOT place the data in this section (or in any).
Any ideas what is wrong?
I apologise in advance if something is very wrong here, I am new to linker scripts so still understanding them...