replace iram vector to vector copy.

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1060 bbd45198-f89e-11dd-88c7-29a3b14d5316
This commit is contained in:
bernard.xiong@gmail.com 2010-11-17 23:48:18 +00:00
parent 643fea758b
commit 019b654201
3 changed files with 53 additions and 95 deletions

View File

@ -16,105 +16,71 @@
OUTPUT_FORMAT("elf32-tradlittlemips", "elf32-tradlittlemips", "elf32-tradlittlemips") OUTPUT_FORMAT("elf32-tradlittlemips", "elf32-tradlittlemips", "elf32-tradlittlemips")
OUTPUT_ARCH(mips) OUTPUT_ARCH(mips)
MEMORY
{
/* 16M SDRAM */
DRAM : ORIGIN = 0x80200000, LENGTH = 0x01000000
/* 16K SRAM */
IRAM : ORIGIN = 0x80000000, LENGTH = 0x00004000
}
ENTRY(_start) ENTRY(_start)
SECTIONS SECTIONS
{ {
. = 0x80200000 ; . = 0x80200000 ;
.start : .start :
{ {
*(.start); *(.start);
} > DRAM }
. = ALIGN(4); . = ALIGN(4);
.text :
.text :
{ {
*(.text) *(.text)
*(.text.*) *(.text.*)
*(.rodata) *(.rodata)
*(.rodata.*) *(.rodata.*)
*(.rodata1) *(.rodata1)
*(.rodata1.*) *(.rodata1.*)
/* section information for finsh shell */ /* section information for finsh shell */
. = ALIGN(4); . = ALIGN(4);
__fsymtab_start = .; __fsymtab_start = .;
KEEP(*(FSymTab)) KEEP(*(FSymTab))
__fsymtab_end = .; __fsymtab_end = .;
. = ALIGN(4); . = ALIGN(4);
__vsymtab_start = .; __vsymtab_start = .;
KEEP(*(VSymTab)) KEEP(*(VSymTab))
__vsymtab_end = .; __vsymtab_end = .;
. = ALIGN(4); . = ALIGN(4);
} > DRAM }
. = ALIGN(4); . = ALIGN(4);
.data :
.data :
{ {
*(.data) *(.data)
*(.data.*) *(.data.*)
*(.data1) *(.data1)
*(.data1.*) *(.data1.*)
. = ALIGN(8); . = ALIGN(8);
_gp = ABSOLUTE(.); /* Base of small data */ _gp = ABSOLUTE(.); /* Base of small data */
*(.sdata) *(.sdata)
*(.sdata.*) *(.sdata.*)
} > DRAM }
. = ALIGN(4); .sbss :
_iramat = .;
.iram : AT(_iramat)
{ {
_iramstart = .; __bss_start = .;
*(.vectors.1); *(.sbss)
. = 0x100;
*(.vectors.2);
. = 0x180;
*(.vectors.3);
. = 0x200;
*(.vectors.4);
*(.vectors);
*(.icode);
*(.irodata);
*(.idata);
KEEP(*(.vectors*))
_iramend = .;
} > IRAM
_iramcopy = LOADADDR(.iram);
.sbss :
{
__bss_start = .;
*(.sbss)
*(.sbss.*) *(.sbss.*)
*(.dynsbss) *(.dynsbss)
*(.scommon) *(.scommon)
} > DRAM }
.bss : .bss :
{ {
*(.bss) *(.bss)
*(.bss.*) *(.bss.*)
*(.dynbss) *(.dynbss)
*(COMMON) *(COMMON)
__bss_end = .; __bss_end = .;
} > DRAM }
_end = .; _end = .;
/* Stabs debugging sections. */ /* Stabs debugging sections. */

View File

@ -1,6 +1,11 @@
# download script for boot loader
ifaddr dmfe0 192.168.1.100 ifaddr dmfe0 192.168.1.100
load tftp://192.168.1.5/boot_3210 0x80200000 load tftp://192.168.1.5/boot_3210 0x80200000
# download script for RT-Thread
ifaddr dmfe0 192.168.1.100 ifaddr dmfe0 192.168.1.100
load tftp://192.168.1.5/rtthread.elf 0x80200000 load tftp://192.168.1.5/rtthread.elf
oload tftp://192.168.1.5/rtthread.bin 0x80200000
# burn script for RT-Thread
ifaddr dmfe0 192.168.1.100
devcp tftp://192.168.1.5/rtthread.elf /dev/mtd0

View File

@ -36,19 +36,6 @@ _start:
li sp, SYSTEM_STACK li sp, SYSTEM_STACK
la gp, _gp la gp, _gp
#if 0
/* copy IRAM section */
la t0, _iramcopy
la t1, _iramstart
la t2, _iramend
_iram_loop:
lw t3, 0(t0)
sw t3, 0(t1)
addiu t1, 4
bne t1, t2, _iram_loop
addiu t0, 4
#endif
/* clear bss */ /* clear bss */
la t0, __bss_start la t0, __bss_start
la t1, __bss_end la t1, __bss_end