Index: /EcnlProtoTool/trunk/ntshell/Debug/Makefile
===================================================================
--- /EcnlProtoTool/trunk/ntshell/Debug/Makefile	(revision 426)
+++ /EcnlProtoTool/trunk/ntshell/Debug/Makefile	(revision 427)
@@ -187,5 +187,5 @@
 CDEFS := $(CDEFS) -DFD_SETSIZE=32
 INCLUDES := -I. -I$(SRCDIR)/include $(INCLUDES) -I$(SRCDIR)
-LDFLAGS := $(LDFLAGS) -L. -Wl,-Map=$(OBJNAME).map,--cref
+LDFLAGS := $(LDFLAGS) -L.
 LIBS := $(LIBS) $(CXXLIBS)
 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
@@ -446,4 +446,5 @@
 $(OBJFILE): $(ALL_OBJS) $(LIBS_DEP)
 	$(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \
+			-Wl,-Map=$(OBJNAME).map,--cref -Wl,--gc-sections -Wl,-e_kernel__start,--gc-keep-exported=_kernel_istk \
 			$(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
 			$(ALL_LIBS) $(END_OBJS)
Index: /EcnlProtoTool/trunk/ntshell/ntshell/util/ntopt.c
===================================================================
--- /EcnlProtoTool/trunk/ntshell/ntshell/util/ntopt.c	(revision 426)
+++ /EcnlProtoTool/trunk/ntshell/ntshell/util/ntopt.c	(revision 427)
@@ -131,5 +131,5 @@
 	int argc;
 	char argv[NTOPT_TEXT_MAXLEN];
-	char *argvp[1 + NTOPT_TEXT_MAXARGS];
+	char *argvp[1 + NTOPT_TEXT_MAXARGS + 4];
 	int i;
 	int total;
@@ -157,4 +157,8 @@
 	}
 	argvp[0] = (char *)argc;
+	// envp
+	argvp[argc + 2] = "TZ=JST-9";
+	// envp + 1: null
+	// auxv: null
 
 	return func((long *)&argvp[0], extobj);
Index: /EcnlProtoTool/trunk/ntshell/src/main.c
===================================================================
--- /EcnlProtoTool/trunk/ntshell/src/main.c	(revision 426)
+++ /EcnlProtoTool/trunk/ntshell/src/main.c	(revision 427)
@@ -425,5 +425,5 @@
 	}
 	if (setjmp(process_exit) == 0) {
-		(*((PowerOn_Reset_t *)0x18200000))(args);
+		(*((PowerOn_Reset_t *)0x18220000))(args);
 	}
 	clean_fd();
Index: /EcnlProtoTool/trunk/prototool/.cproject
===================================================================
--- /EcnlProtoTool/trunk/prototool/.cproject	(revision 426)
+++ /EcnlProtoTool/trunk/prototool/.cproject	(revision 427)
@@ -16,4 +16,5 @@
 				<option id="toolchain.id" value="gcc-arm-embedded"/>
 				<option id="toolchain.version" value="6.3.1.20170620"/>
+				<option id="toolchain.enable" value="false"/>
 			</storageModule>
 			<storageModule moduleId="cdtBuildSystem" version="4.0.0">
Index: /EcnlProtoTool/trunk/prototool/src/linker_scriptDebug.ld
===================================================================
--- /EcnlProtoTool/trunk/prototool/src/linker_scriptDebug.ld	(revision 426)
+++ /EcnlProtoTool/trunk/prototool/src/linker_scriptDebug.ld	(revision 427)
@@ -8,6 +8,7 @@
 
 MEMORY {
-	ROM (rx)         : ORIGIN = 0x18000000, LENGTH = 0x07FFC000
-	RAM (xrw)        : ORIGIN = 0x20000000, LENGTH = 10M
+	BOOT_LOADER      : ORIGIN = 0x18000000, LENGTH = 0x00220000
+	ROM (rx)         : ORIGIN = 0x18220000, LENGTH = 0x005E0000
+	RAM (xrw)        : ORIGIN = 0x20100000, LENGTH = 8M
 }
 
@@ -19,12 +20,14 @@
 	.boot : {
 		KEEP(*(.boot)) 
-	} > ROM 
+	} > BOOT_LOADER
 
 	.text : {
 		__start_text = .;
-		*(.vector)
-		*(.text)
+		KEEP(*(.vector))
+		*(.text*)
 		*(.glue_7t)
 		*(.glue_7)
+		KEEP(*(.init))
+		KEEP(*(.fini))
 		__end_kernel = .;
 	} > ROM
@@ -34,5 +37,5 @@
 	.rodata ALIGN(4) : {
 		__start_rodata = .;
-		*(.rodata)
+		*(.rodata*)
 		__end_rodata = .;
 	} > ROM
@@ -62,5 +65,6 @@
 	.data : ALIGN(4) {
 		__start_data = .;
-		*(.data)
+		*(.data*)
+		*(.got*)
 		__end_data = .;
 	} > RAM AT > ROM
@@ -72,5 +76,5 @@
 	.bss ALIGN(4) : {
 		__start_bss = .;
-		*(.bss)
+		*(.bss*)
 		*(COMMON)
 		__end_bss = .;
Index: /EcnlProtoTool/trunk/prototool/src/main.c
===================================================================
--- /EcnlProtoTool/trunk/prototool/src/main.c	(revision 426)
+++ /EcnlProtoTool/trunk/prototool/src/main.c	(revision 427)
@@ -514,20 +514,18 @@
 
 void _start_c(long *p);
-int _data, _mdata, _edata;
-int _bss, _ebss;
+extern int __start_idata, __start_data, __end_data;
+extern int __start_bss, __end_bss;
 
 void _PowerON_Reset(long *args)
 {
-	memcpy(&_data, &_mdata, (size_t)&_edata - (size_t)&_data);
-	memset(&_bss, 0, (size_t)&_ebss - (size_t)&_bss);
+	memcpy(&__start_data, &__start_idata, (size_t)&__end_data - (size_t)&__start_data);
+	memset(&__start_bss, 0, (size_t)&__end_bss - (size_t)&__start_bss);
 
 	_start_c(args);
 }
 
-#define FVECT_SECT          __attribute__ ((section (".fvectors")))
+#define FVECT_SECT          __attribute__ ((section (".vector")))
 const void *HardwareVectors[] FVECT_SECT = {
 	_PowerON_Reset,
 	mrdb_break,
 };
-
-char stack_space[0x100000] __attribute__ ((section (".stack")));
