From acfbfad25e9304019b83e6825818da9fc02f7fcf Mon Sep 17 00:00:00 2001 From: qiuyiuestc Date: Sun, 10 Oct 2010 11:50:28 +0000 Subject: [PATCH] fix MMU table overwrite issue git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1006 bbd45198-f89e-11dd-88c7-29a3b14d5316 --- bsp/mini2440/mini2440_ram.ld | 3 --- bsp/mini2440/rtthread-mini2440.sct | 8 ++++---- bsp/mini2440/startup.c | 8 ++++---- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/bsp/mini2440/mini2440_ram.ld b/bsp/mini2440/mini2440_ram.ld index 9eb287ffd6..37c06324e0 100644 --- a/bsp/mini2440/mini2440_ram.ld +++ b/bsp/mini2440/mini2440_ram.ld @@ -62,9 +62,6 @@ SECTIONS .nobss : { *(.nobss) } . = 0x30200000; - .mmu_table : { *(.mmu_table) } - - . = 0x30300000; . = ALIGN(4); __bss_start = .; .bss : { *(.bss) } diff --git a/bsp/mini2440/rtthread-mini2440.sct b/bsp/mini2440/rtthread-mini2440.sct index 8eda8ada8b..5b0c1d734c 100644 --- a/bsp/mini2440/rtthread-mini2440.sct +++ b/bsp/mini2440/rtthread-mini2440.sct @@ -5,14 +5,14 @@ LR_IROM1 0x30000000 0x1000000 { .ANY (+RO) } - ER_MMU 0x30400000 EMPTY 0x00100000 { - } - - RW_IRAM1 0x30500000 { ; RW data + RW_IRAM1 +0 { ; RW data .ANY (+RW) } ER_ZI +0 { ; ZI data .ANY (+ZI) } + + ER_MMU 0x33FF0000 EMPTY 0x00100000 { + } } diff --git a/bsp/mini2440/startup.c b/bsp/mini2440/startup.c index 0fd8d2bdae..29f07a7657 100644 --- a/bsp/mini2440/startup.c +++ b/bsp/mini2440/startup.c @@ -54,7 +54,8 @@ extern struct rt_device uart0_device; rt_uint8_t _undefined_stack_start[512]; rt_uint8_t _abort_stack_start[512]; rt_uint8_t _svc_stack_start[1024] SECTION(".nobss"); - extern int __bss_end; + extern unsigned char __bss_start; + extern unsigned char __bss_end; #endif /** @@ -63,7 +64,6 @@ extern struct rt_device uart0_device; #if (defined (__GNUC__)) void *_sbrk (int incr) { - extern int __bss_end; /* Set by linker. */ static char * heap_end; char * prev_heap_end; @@ -110,9 +110,9 @@ void rtthread_startup(void) /* init heap memory system */ #ifdef __CC_ARM - rt_system_heap_init((void*)&Image$$ER_ZI$$ZI$$Limit, (void*)0x34000000); + rt_system_heap_init((void*)&Image$$ER_ZI$$ZI$$Limit, (void*)0x33F00000); #else - rt_system_heap_init((void*)0x32000000, (void*)0x34000000); + rt_system_heap_init((void*)&__bss_end, (void*)0x33F00000); #endif /* init scheduler system */