2004-03-03 Stephane Carrez <stcarrez@nerim.fr>
* m68hc11/sci-inout.S: Supports -mlong-calls. * m68hc11/sim-valid-m68hc11.ld (.tramp): New section for trampolines. (.text): Mark the .installN and .finiN section with KEEP. (.vectors): Likewise for .vectors. (.gcc_except_table): New section. * m68hc11/sim-valid-m68hc12.ld (.tramp): New section for trampolines. (.text): Mark the .installN and .finiN section with KEEP. (.vectors): Likewise for .vectors. (.gcc_except_table): New section.
This commit is contained in:
parent
e299c7addc
commit
13a47bd66a
|
@ -1,3 +1,15 @@
|
|||
2004-03-03 Stephane Carrez <stcarrez@nerim.fr>
|
||||
|
||||
* m68hc11/sci-inout.S: Supports -mlong-calls.
|
||||
* m68hc11/sim-valid-m68hc11.ld (.tramp): New section for trampolines.
|
||||
(.text): Mark the .installN and .finiN section with KEEP.
|
||||
(.vectors): Likewise for .vectors.
|
||||
(.gcc_except_table): New section.
|
||||
* m68hc11/sim-valid-m68hc12.ld (.tramp): New section for trampolines.
|
||||
(.text): Mark the .installN and .finiN section with KEEP.
|
||||
(.vectors): Likewise for .vectors.
|
||||
(.gcc_except_table): New section.
|
||||
|
||||
2004-01-23 Gábor Lóki <loki@inf.u-szeged.hu>
|
||||
|
||||
* m68k/leds.c: remove led_putnum(), zylons() forward
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* M68HC11/M68HC12 serial line operations
|
||||
* Copyright (C) 1999, 2001 Stephane Carrez (stcarrez@nerim.fr)
|
||||
* Copyright (C) 1999, 2001, 2003, 2004 Stephane Carrez (stcarrez@nerim.fr)
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
|
@ -12,6 +12,25 @@
|
|||
* they apply.
|
||||
*/
|
||||
|
||||
#ifdef __HAVE_SHORT_INT__
|
||||
.mode mshort
|
||||
#else
|
||||
.mode mlong
|
||||
#endif
|
||||
|
||||
#if defined(__USE_RTC__)
|
||||
.macro ret
|
||||
#if defined(mc68hc12)
|
||||
rtc
|
||||
#else
|
||||
jmp __return_32
|
||||
#endif
|
||||
.endm
|
||||
#else
|
||||
.macro ret
|
||||
rts
|
||||
.endm
|
||||
#endif
|
||||
#ifdef mc68hc12
|
||||
SC0CR1 = 0xC2
|
||||
SC0CR2 = 0xC3
|
||||
|
@ -39,7 +58,7 @@ L1:
|
|||
ldab SC0CR2,x
|
||||
orab #0x8
|
||||
stab SC0CR2,x
|
||||
rts
|
||||
ret
|
||||
|
||||
.sect .text
|
||||
.globl inbyte
|
||||
|
@ -52,7 +71,7 @@ inbyte:
|
|||
bita #0x20
|
||||
beq inbyte
|
||||
ldab SC0CR2,x
|
||||
rts
|
||||
ret
|
||||
|
||||
.globl _sci_init
|
||||
.sect .text
|
||||
|
@ -99,7 +118,7 @@ L1:
|
|||
ldab SCCR2,x
|
||||
orab #0x8
|
||||
stab SCCR2,x
|
||||
rts
|
||||
ret
|
||||
|
||||
.sect .text
|
||||
.globl inbyte
|
||||
|
@ -112,7 +131,7 @@ inbyte:
|
|||
bita #0x20
|
||||
beq inbyte
|
||||
ldab SCDR,x
|
||||
rts
|
||||
ret
|
||||
|
||||
.globl _sci_init
|
||||
.sect .text
|
||||
|
|
|
@ -146,15 +146,21 @@ SECTIONS
|
|||
{
|
||||
*(.init)
|
||||
} =0
|
||||
/* Put trampolines at beginning of text at 0x4400 so that they
|
||||
are not in memory bank window. */
|
||||
.tramp :
|
||||
{
|
||||
*(.tramp)
|
||||
} > text
|
||||
.text :
|
||||
{
|
||||
/* Put startup code at beginning so that _start keeps same address. */
|
||||
/* Startup code. */
|
||||
*(.install0) /* Section should setup the stack pointer. */
|
||||
*(.install1) /* Place holder for applications. */
|
||||
*(.install2) /* Optional installation of data sections in RAM. */
|
||||
*(.install3) /* Place holder for applications. */
|
||||
*(.install4) /* Section that calls the main. */
|
||||
KEEP (*(.install0)) /* Section should setup the stack pointer. */
|
||||
KEEP (*(.install1)) /* Place holder for applications. */
|
||||
KEEP (*(.install2)) /* Optional installation of data sections in RAM. */
|
||||
KEEP (*(.install3)) /* Place holder for applications. */
|
||||
KEEP (*(.install4)) /* Section that calls the main. */
|
||||
*(.init)
|
||||
*(.text)
|
||||
*(.text.*)
|
||||
|
@ -162,11 +168,11 @@ SECTIONS
|
|||
*(.gnu.warning)
|
||||
*(.gnu.linkonce.t.*)
|
||||
/* Finish code. */
|
||||
*(.fini0) /* Beginning of finish code (_exit symbol). */
|
||||
*(.fini1) /* Place holder for applications. */
|
||||
*(.fini2) /* C++ destructors. */
|
||||
*(.fini3) /* Place holder for applications. */
|
||||
*(.fini4) /* Runtime exit. */
|
||||
KEEP (*(.fini0)) /* Beginning of finish code (_exit symbol). */
|
||||
KEEP (*(.fini1)) /* Place holder for applications. */
|
||||
KEEP (*(.fini2)) /* C++ destructors. */
|
||||
KEEP (*(.fini3)) /* Place holder for applications. */
|
||||
KEEP (*(.fini4)) /* Runtime exit. */
|
||||
_etext = .;
|
||||
PROVIDE (etext = .);
|
||||
} > text
|
||||
|
@ -174,6 +180,10 @@ SECTIONS
|
|||
{
|
||||
*(.eh_frame)
|
||||
} > text
|
||||
.gcc_except_table :
|
||||
{
|
||||
*(.gcc_except_table)
|
||||
} > text
|
||||
.rodata :
|
||||
{
|
||||
*(.rodata)
|
||||
|
@ -188,25 +198,13 @@ SECTIONS
|
|||
.ctors :
|
||||
{
|
||||
PROVIDE (__CTOR_LIST__ = .);
|
||||
*(.ctors)
|
||||
/* We don't want to include the .ctor section from
|
||||
from the crtend.o file until after the sorted ctors.
|
||||
The .ctor section from the crtend file contains the
|
||||
end of ctors marker and it must be last
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors)) */
|
||||
KEEP (*(.ctors))
|
||||
PROVIDE(__CTOR_END__ = .);
|
||||
} > text
|
||||
.dtors :
|
||||
{
|
||||
PROVIDE(__DTOR_LIST__ = .);
|
||||
*(.dtors)
|
||||
/*
|
||||
KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors)) */
|
||||
KEEP (*(.dtors))
|
||||
PROVIDE(__DTOR_END__ = .);
|
||||
} > text
|
||||
/* Start of the data section image in ROM. */
|
||||
|
@ -274,7 +272,7 @@ SECTIONS
|
|||
PROVIDE (_vectors_addr = DEFINED (vectors_addr) ? vectors_addr : 0xffc0);
|
||||
.vectors DEFINED (vectors_addr) ? vectors_addr : 0xffc0 :
|
||||
{
|
||||
*(.vectors)
|
||||
KEEP (*(.vectors))
|
||||
}
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
|
|
|
@ -145,15 +145,21 @@ SECTIONS
|
|||
{
|
||||
*(.init)
|
||||
} =0
|
||||
/* Put trampolines at beginning of text at 0x4400 so that they
|
||||
are not in memory bank window. */
|
||||
.tramp :
|
||||
{
|
||||
*(.tramp)
|
||||
} > text
|
||||
.text :
|
||||
{
|
||||
/* Put startup code at beginning so that _start keeps same address. */
|
||||
/* Startup code. */
|
||||
*(.install0) /* Section should setup the stack pointer. */
|
||||
*(.install1) /* Place holder for applications. */
|
||||
*(.install2) /* Optional installation of data sections in RAM. */
|
||||
*(.install3) /* Place holder for applications. */
|
||||
*(.install4) /* Section that calls the main. */
|
||||
KEEP (*(.install0)) /* Section should setup the stack pointer. */
|
||||
KEEP (*(.install1)) /* Place holder for applications. */
|
||||
KEEP (*(.install2)) /* Optional installation of data sections in RAM. */
|
||||
KEEP (*(.install3)) /* Place holder for applications. */
|
||||
KEEP (*(.install4)) /* Section that calls the main. */
|
||||
*(.init)
|
||||
*(.text)
|
||||
*(.text.*)
|
||||
|
@ -161,11 +167,11 @@ SECTIONS
|
|||
*(.gnu.warning)
|
||||
*(.gnu.linkonce.t.*)
|
||||
/* Finish code. */
|
||||
*(.fini0) /* Beginning of finish code (_exit symbol). */
|
||||
*(.fini1) /* Place holder for applications. */
|
||||
*(.fini2) /* C++ destructors. */
|
||||
*(.fini3) /* Place holder for applications. */
|
||||
*(.fini4) /* Runtime exit. */
|
||||
KEEP (*(.fini0)) /* Beginning of finish code (_exit symbol). */
|
||||
KEEP (*(.fini1)) /* Place holder for applications. */
|
||||
KEEP (*(.fini2)) /* C++ destructors. */
|
||||
KEEP (*(.fini3)) /* Place holder for applications. */
|
||||
KEEP (*(.fini4)) /* Runtime exit. */
|
||||
_etext = .;
|
||||
PROVIDE (etext = .);
|
||||
} > text
|
||||
|
@ -173,6 +179,10 @@ SECTIONS
|
|||
{
|
||||
*(.eh_frame)
|
||||
} > text
|
||||
.gcc_except_table :
|
||||
{
|
||||
*(.gcc_except_table)
|
||||
} > text
|
||||
.rodata :
|
||||
{
|
||||
*(.rodata)
|
||||
|
@ -187,25 +197,13 @@ SECTIONS
|
|||
.ctors :
|
||||
{
|
||||
PROVIDE (__CTOR_LIST__ = .);
|
||||
*(.ctors)
|
||||
/* We don't want to include the .ctor section from
|
||||
from the crtend.o file until after the sorted ctors.
|
||||
The .ctor section from the crtend file contains the
|
||||
end of ctors marker and it must be last
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors)) */
|
||||
KEEP (*(.ctors))
|
||||
PROVIDE(__CTOR_END__ = .);
|
||||
} > text
|
||||
.dtors :
|
||||
{
|
||||
PROVIDE(__DTOR_LIST__ = .);
|
||||
*(.dtors)
|
||||
/*
|
||||
KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors)) */
|
||||
KEEP (*(.dtors))
|
||||
PROVIDE(__DTOR_END__ = .);
|
||||
} > text
|
||||
/* Start of the data section image in ROM. */
|
||||
|
@ -274,7 +272,7 @@ SECTIONS
|
|||
PROVIDE (_vectors_addr = DEFINED (vectors_addr) ? vectors_addr : 0xffc0);
|
||||
.vectors DEFINED (vectors_addr) ? vectors_addr : 0xffc0 :
|
||||
{
|
||||
*(.vectors)
|
||||
KEEP (*(.vectors))
|
||||
}
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
|
|
Loading…
Reference in New Issue