This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Hello,
Try the following :
SECTIONS {
.vector0 :
{
LONG( __stack )
} > rom1
.vector1 :
{
LONG( ABSOLUTE( main ) ) /* or _main depending on the compiler */
} > rom1
.....
Since these are the 2 first sections that go into rom1, the value for stack
will be int the 4 first bytes and the value for main will be int the 4 next
ones.
Giovanni Caterina
> -----Original Message-----
> From: Vermeulen Jan [mailto:Jan.Vermeulen@siemens.atea.be]
> Sent: vendredi 20 juillet 2001 09:48
> To: 'CrossGCC'
> Subject: startup embedded target
>
>
> Hello everybody,
>
> I've been making a led-test program for my 68040 target.
> Everything compiles fine (both the making of the
> cross-compiler and the test
> program).
>
> However, the linker-script i'm making has a few problems.
> (caused by me no
> doubt.)
>
> I got a flash rom and some ram in my board.
> The first 4 bytes of the flash should be the stack-pointer
> (0x0B40000), the
> following 4 bytes should be the start address of my program
> ('main', which
> should be at 0x400).
>
> I have been looking at the info-pages of the 'ld', but i
> don't really know
> how to force those constants at 0x0 and 0x4.
>
> This might be somewhat a newbie question, but i'm kind of stuck to be
> honest.
> I will include my linker script with which i'm toying at the moment.
>
> ----8<--------
>
> OUTPUT_ARCH(m68k) /* Specify the output machine
> architecture to be m68k.
> */
> OUTPUT_FORMAT(ieee) /* Output format. Should be srec (S-records).*/
> /* Same as the --oformat command-line
> option. */
>
> PROVIDE (__stack = 0x0B40000);
>
> ENTRY(main);
>
> MEMORY
> {
> /* Flash; Read-only, execute */
> rom1 (rx): ORIGIN = 0x0, LENGTH = 512K
> /* Internal SRAM; RW, no execute */
> ramcode (rwx): ORIGIN = 0x800000, LENGTH = 2048K
> ramdata (rw): ORIGIN = 0x0A00000, LENGTH = 2048K
> }
>
> SECTIONS {
> .vector0 :
> { . = 0x0} = __stack;
> .vector1 :
> { . = 0x4} = &main;
> .text :
> {
> *(.text)
> } > rom1
> .data :
> {
> *(.data)
> } > rom1
> .bss :
> {
> *(.bss)
> end = ALIGN(0x8);
> } > ramdata
> }
>
> ----8<---------
>
> Best regards, and thanks,
> Jan Vermeulen
>
>
> ------
> Want more information? See the CrossGCC FAQ,
http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to
crossgcc-unsubscribe@sourceware.cygnus.com
###########################################
This message has been scanned by F-Secure Anti-Virus for Microsoft Exchange.
For more information, connect to http://www.F-Secure.com/
------
Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |