diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2003-01-03 16:45:10 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2003-01-03 16:45:10 +0000 |
commit | 8f10c925f6a4a02a870d16057ec9e57f5c6ee2c3 (patch) | |
tree | 75d0e71c5d80ebf8523fe3c2859d1c03b53eb10b /c/src/lib/libbsp/mips/genmongoosev | |
parent | 2003-01-03 Eugeny S. Mints <Eugeny.Mints@oktet.ru> (diff) | |
download | rtems-8f10c925f6a4a02a870d16057ec9e57f5c6ee2c3.tar.bz2 |
2002-12-08 Greg Menke <gregory.menke@gsfc.nasa.gov>
* bsp_specs: Added crtbegin/crtend and INIT_FINI for C++ support.
* linkcmds: Added .init, .fini & related sections.
Diffstat (limited to 'c/src/lib/libbsp/mips/genmongoosev')
-rw-r--r-- | c/src/lib/libbsp/mips/genmongoosev/ChangeLog | 5 | ||||
-rw-r--r-- | c/src/lib/libbsp/mips/genmongoosev/bsp_specs | 9 | ||||
-rw-r--r-- | c/src/lib/libbsp/mips/genmongoosev/start/start.S | 13 | ||||
-rw-r--r-- | c/src/lib/libbsp/mips/genmongoosev/startup/linkcmds | 35 |
4 files changed, 46 insertions, 16 deletions
diff --git a/c/src/lib/libbsp/mips/genmongoosev/ChangeLog b/c/src/lib/libbsp/mips/genmongoosev/ChangeLog index 2f8f689ecf..f5d360264c 100644 --- a/c/src/lib/libbsp/mips/genmongoosev/ChangeLog +++ b/c/src/lib/libbsp/mips/genmongoosev/ChangeLog @@ -1,3 +1,8 @@ +2002-12-08 Greg Menke <gregory.menke@gsfc.nasa.gov> + + * bsp_specs: Added crtbegin/crtend and INIT_FINI for C++ support. + * linkcmds: Added .init, .fini & related sections. + 2002-12-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de> * clock/Makefile.am: Don't include @RTEMS_BSP@.cfg. diff --git a/c/src/lib/libbsp/mips/genmongoosev/bsp_specs b/c/src/lib/libbsp/mips/genmongoosev/bsp_specs index 20bb94652c..c4b277e75b 100644 --- a/c/src/lib/libbsp/mips/genmongoosev/bsp_specs +++ b/c/src/lib/libbsp/mips/genmongoosev/bsp_specs @@ -5,7 +5,7 @@ %rename link old_link *cpp: -%(old_cpp) %{qrtems: -D__embedded__} -Asystem(embedded) +%(old_cpp) %{qrtems: -D__embedded__ -D__USE_INIT_FINI__ } -Asystem(embedded) *lib: %{!qrtems: %(old_lib)} %{!nostdlib: %{qrtems: --start-group \ @@ -15,9 +15,12 @@ *startfile: %{!qrtems: %(old_startfile)} %{!nostdlib: %{qrtems: \ -%{!qnostartfile: %{!qrtems_debug: start.o%s} \ - %{qrtems_debug: start_g.o%s}}}} + %{!qnostartfile: %{!qrtems_debug: start.o%s} \ + %{qrtems_debug: start_g.o%s}} crti.o%s crtbegin.o%s }} *link: %(old_link) %{!qrtems: %(old_link)} %{qrtems: -dc -dp -N -e _start} +*endfile: +%{!qrtems: %(old_endfile)} %{qrtems: crtend.o%s crtn.o%s } + diff --git a/c/src/lib/libbsp/mips/genmongoosev/start/start.S b/c/src/lib/libbsp/mips/genmongoosev/start/start.S index 95761abd48..1076b8255d 100644 --- a/c/src/lib/libbsp/mips/genmongoosev/start/start.S +++ b/c/src/lib/libbsp/mips/genmongoosev/start/start.S @@ -411,9 +411,9 @@ zerobss: ** Function: _init */ .globl exit .text - .globl _init - .ent _init -_init: + .globl _initialize_rtems + .ent _initialize_rtems +_initialize_rtems: /* ** Print 'i'. Starting to initialize RTEMS. @@ -445,7 +445,7 @@ _init: */ jal _sys_exit nop - .end _init + .end _initialize_rtems /********************************************************************** @@ -578,7 +578,10 @@ _cpuinit: # INV = 0: 1 : Disable invalidate mode # LOCK = 0: 0 : Disable cache lock # - li t0,0x00027AA0 + # 0x00027AA0 caches on + # 0x00027220 caches off + # + li t0,0x00027aa0 sw t0,M_BIU # diff --git a/c/src/lib/libbsp/mips/genmongoosev/startup/linkcmds b/c/src/lib/libbsp/mips/genmongoosev/startup/linkcmds index 21f2e55398..f8d68486a8 100644 --- a/c/src/lib/libbsp/mips/genmongoosev/startup/linkcmds +++ b/c/src/lib/libbsp/mips/genmongoosev/startup/linkcmds @@ -14,7 +14,7 @@ _RamBase = DEFINED(_RamBase) ? _RamBase : 0x80000000; _RamSize = DEFINED(_RamSize) ? _RamSize : 32M; HeapSize = DEFINED(HeapSize) ? HeapSize : 0x40000; -_StackSize = DEFINED(_StackSize) ? _StackSize : 0x1000; +_StackSize = DEFINED(_StackSize) ? _StackSize : 0x4000; ClockRate = DEFINED(ClockRate) ? ClockRate : 12000000; @@ -29,11 +29,11 @@ SECTIONS .text : { _ftext = . ; - *(.init) - eprol = .; + + */start.o(.text) + *(.text) *(.text.*) - *(.eh_frame) *(.gnu.linkonce.t*) *(.mips16.fn.*) *(.mips16.call.*) @@ -41,10 +41,25 @@ SECTIONS *(.rel.sdata) *(.rel.dyn) PROVIDE (__runtime_reloc_stop = .); - *(.fini) + *(.gcc_except_table) + *(.eh_frame_hdr) + *(.eh_frame) } >ram + .init : + { + KEEP(*(.init)) + + } > ram + + .fini : + { + KEEP(*(.fini)) + + } > ram + + .ctors : { /* gcc uses crtbegin.o to find the start of @@ -99,13 +114,17 @@ SECTIONS *(.gnu.linkonce.d*) } >ram - - .lit8 : + .jcr : { . = ALIGN(8); + KEEP (*(.jcr)) - _gp = . + 0x8000; + _gp = ALIGN(16) + 0x7440; __global = _gp; + } >ram + + .lit8 : + { *(.lit8) } >ram |