summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorqiuyiuestc <[email protected]>2010-10-10 11:50:28 +0000
committerqiuyiuestc <[email protected]>2010-10-10 11:50:28 +0000
commitacfbfad25e9304019b83e6825818da9fc02f7fcf (patch)
tree1c16a6acf62baca36ba9813add57caa8e7a6b3b7
parentda7bbdb0dfceec4d45d9fd666f73ec4656723fcc (diff)
fix MMU table overwrite issue
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1006 bbd45198-f89e-11dd-88c7-29a3b14d5316
-rw-r--r--bsp/mini2440/mini2440_ram.ld3
-rw-r--r--bsp/mini2440/rtthread-mini2440.sct8
-rw-r--r--bsp/mini2440/startup.c8
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 */