Subject: RE: Need method to combine multiple binary images into one. (ld?)

From: George France <[email-masked]>
Date: Fri, 14 Jul 2000 13:15:37 -0400

arm-linux-objcopy.

--George

George France,      [email-masked]
Cambridge Research Laboratory, Compaq Computer Corporation
One Cambridgecenter    MS: CRL
Cambridge, MA 02142 USA

-----Original Message-----
From: Tom Walsh [mailto:[email-masked]]
Sent: Friday, July 14, 2000 11:21 AM
To: [email-masked]
Cc: [email-masked]
Subject: Re: Need method to combine multiple binary images into one.
(ld?)

S A McConnell wrote:
> 
> I am showing my lack of Linux/Unix experience....
> 
> I have five different binary images. To speed and simplify the
> loading/Flashing process I would like to combine the images into a
> single file placing each image at a set location. ( Image1 @ 0x0, Image2
> @ 0x3800, Image3 @ 0x10000....) There will be holes between each image.
> 
> The images are all ARM binaries. The command 'file' describes them as
> 'data' files.
> 
> I tried to us arm-linux-ld but it complained about not knowing the
> format. I looked in the documentation but did not see a way to tell the
> linker to treat it as just data.
> 
> $file image1
> image1:data
> 
> $arm-linux-gcc -Timage.ld image1 image2 image3 image4 image5
> image1: file not recognized: File format not recognized
> collect2: ld returned 1 exit status
> 
> INPUT(image1 image2 image3 image4 image5)
> 
> OUTPUT (bigimage)
> 
> SECTIONS
> {
>         output :
>         {
>                 image1
>                 . = 0x3800;
>                 image2
>                 . = 0x4000;
>                 image3
>                 . = 0x1000;
>                 image4
>                 . = 0x100000;
>                 image5
>         }
> }
> 
> -------------------------------
> Does anyone have a suggestion about how to do this with or without the
> linker?

Well, you are on the right track if the images were object files which
contained symbolic info identifying segments within the files.  If that
were the case, then you would need to create and 'ld' file that
specified which segment got placed into where.

But, if your file is pure, raw, binary data, I would suggest that you
write a quick program, or script, to append extra bytes to each image,
then cat them together.  Use 'dd' to spec the number & value of the
appended padding.

TomW

> 
> Thanks,
> SAM
> 
> unsubscribe: body of `unsubscribe linux-arm' to [email-masked]
> ++        Please use [email-masked] for
++
> ++                        kernel-related discussions.
++

-- 
Tom Walsh - WN3L - Embedded Systems Consultant
'www.openhardware.net', 'www.cyberiansoftware.com'
"Windows? No thanks, I have work to do..."

unsubscribe: body of `unsubscribe linux-arm' to [email-masked]
++        Please use [email-masked] for
++
++                        kernel-related discussions.
++

unsubscribe: body of `unsubscribe linux-arm' to [email-masked]
++        Please use [email-masked] for           ++
++                        kernel-related discussions.                      ++

---

From: Tom Walsh <[email-masked]>
Date: Fri, 14 Jul 2000 13:40:56 -0400

> arm-linux-objcopy.

I did not want to mention that utility, I do use it for the uClinux on
my 68EZ328 based design to create the S19 records to load into my
flash.  I found the docu on the utility to be a bit cryptic and after
experimenting with it, gave up, and kept to the S19 record output it
gave.

Sometimes 'brute force' is the more elegant approach? ;-)

Regards,

TomW