Re: Generating data hex file with GCC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



My target system is an embedded 80186. I found that using:

gcc -c test.c
objcopy --change-address 0xE0000 -O ihex test.o test.hex

does the trick and puts the data at 0xE0000 where I want it.

Ingo Krabbe wrote:

Am Donnerstag, 29. Dezember 2005 21:45 schrieb Anders Norman:
Hi,

I need to create an Intel HEX file containing raw data for an embedded
solution. Source file would look something like this:

const unsigned char myData[] =
{
   0x00, 0x00, 0x00, 0x00 ........
};

I also need to locate the data at a specific location in memory.

Can GCC handle this?

What tools do I need in addition? objdump?

regards,
Anders

What you want is a program that writes your binary data into a specific memory location. In the general case the memory adresses a program sees are completly virtual, which is usefull cause all symbols and data will be relocatable when gcc generates an object file.

The exact location of the data sections not under control of gcc but of the linker ld, which comes with the binutils package (if you don't have a system specific linker for your embedded system). With objdump (from binutils) you can control the relocation and symbol tables of an executable, a shared library or what ever you produce.

This greatly depends on the type of data you produce finally. Is it an ELF executable or just an object file or a shared object library, a static libary archive or even a DLL. See your ld documentation.

I have:
ld: supported targets: elf32-i386 a.out-i386-linux efi-app-ia32 elf64-x86-64 elf64-little elf64-big elf32-little elf32-big srec symbolsrec tekhex binary ihex trad-core

What you mean is possibly named as ihex target ?!

As I say: See your ld documentation.




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux