summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author[email protected] <[email protected]>2011-05-16 00:29:28 +0000
committer[email protected] <[email protected]>2011-05-16 00:29:28 +0000
commitc99ca774a1fc441cf4f24a48a565ccd564d55cf0 (patch)
treeb1449d661531e472297745ac1fbacdd7085f9d2a
parent7a6949f248d3f1139825451a672bc41d9efc6d52 (diff)
Modify the link mode, compile each component to static library first and then link them
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1405 bbd45198-f89e-11dd-88c7-29a3b14d5316
-rw-r--r--bsp/mini2440/SConstruct20
-rw-r--r--bsp/mini2440/calibration.c4
-rw-r--r--bsp/mini2440/rtconfig.h7
-rw-r--r--bsp/mini2440/rtconfig.py6
-rw-r--r--components/dfs/include/dfs_posix.h5
-rw-r--r--components/external/libpng/pngconf.h6
-rw-r--r--components/external/libz/zutil.c21
-rw-r--r--components/pthreads/posix_types.h18
8 files changed, 60 insertions, 27 deletions
diff --git a/bsp/mini2440/SConstruct b/bsp/mini2440/SConstruct
index 4910b1ea92..a6a9f37c61 100644
--- a/bsp/mini2440/SConstruct
+++ b/bsp/mini2440/SConstruct
@@ -15,6 +15,7 @@ TARGET = 'rtthread-mini2440.' + rtconfig.TARGET_EXT
env = Environment(tools = ['mingw'],
AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS,
+ CXX = rtconfig.CXX,
AR = rtconfig.AR, ARFLAGS = '-rc',
LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
@@ -22,20 +23,25 @@ env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
Export('RTT_ROOT')
Export('rtconfig')
-# prepare building environment
-objs = PrepareBuilding(env, RTT_ROOT)
+if rtconfig.PLATFORM == 'gcc':
+ start_obj = 'build/libcpu/' + rtconfig.ARCH + '/' + rtconfig.CPU + '/start_gcc.o',
+elif rtconfig.PLATFORM == 'armcc':
+ start_obj = 'build/libcpu/' + rtconfig.ARCH + '/' + rtconfig.CPU + '/start_rvds.o',
-if GetDepend('RT_USING_WEBSERVER'):
- objs = objs + SConscript(RTT_ROOT + '/components/net/webserver/SConscript', variant_dir='build/net/webserver', duplicate=0)
+# prepare building environment
+libs = PrepareBuilding(env, RTT_ROOT)
if GetDepend('RT_USING_RTGUI'):
- objs = objs + SConscript(RTT_ROOT + '/examples/gui/SConscript', variant_dir='build/examples/gui', duplicate=0)
+ libs = objs + SConscript(RTT_ROOT + '/examples/gui/SConscript', variant_dir='build/examples/gui', duplicate=0)
# libc testsuite
-# objs = objs + SConscript(RTT_ROOT + '/examples/libc/SConscript', variant_dir='build/examples/libc', duplicate=0)
+# libs = libs + SConscript(RTT_ROOT + '/examples/libc/SConscript', variant_dir='build/examples/libc', duplicate=0)
# build program
-env.Program(TARGET, objs)
+if GetDepend('RT_USING_NEWLIB'):
+ env.Program(target = TARGET, source = [start_obj, 'build/components/libc/newlib/syscalls.o', 'build/components/libc/newlib/libc.o'], LIBS = libs)
+else:
+ env.Program(target = TARGET, source = start_obj, LIBS = libs)
# end building
EndBuilding(TARGET)
diff --git a/bsp/mini2440/calibration.c b/bsp/mini2440/calibration.c
index d15270bffd..5e691ab23b 100644
--- a/bsp/mini2440/calibration.c
+++ b/bsp/mini2440/calibration.c
@@ -224,10 +224,12 @@ void calibration_init()
2048, 20, 5);
if (calibration_ptr->tid != RT_NULL) rt_thread_startup(calibration_ptr->tid);
}
+
+#ifdef RT_USING_FINSH
#include <finsh.h>
void calibration()
{
calibration_init();
}
FINSH_FUNCTION_EXPORT(calibration, perform touch calibration);
-
+#endif
diff --git a/bsp/mini2440/rtconfig.h b/bsp/mini2440/rtconfig.h
index 7884d8596c..7ae26d9c15 100644
--- a/bsp/mini2440/rtconfig.h
+++ b/bsp/mini2440/rtconfig.h
@@ -96,12 +96,12 @@
/* use long file name feature */
#define RT_DFS_ELM_USE_LFN 1
/* the max number of file length */
-#define RT_DFS_ELM_MAX_LFN 32
+#define RT_DFS_ELM_MAX_LFN 128
/* #define RT_USING_DFS_YAFFS2 */
/* #define RT_USING_DFS_UFFS */
/* #define RT_USING_DFS_DEVFS */
-#define RT_USING_DFS_NFS
+/* #define RT_USING_DFS_NFS */
#define RT_NFS_HOST_EXPORT "192.168.1.5:/"
/* #define DFS_USING_WORKDIR */
@@ -220,11 +220,12 @@
/* RTGUI image options */
#define RTGUI_IMAGE_XPM
#define RTGUI_IMAGE_JPEG
+#define RTGUI_IMAGE_PNG
#define RTGUI_IMAGE_BMP
/* SECTION: FTK support */
/* using FTK support */
-/* #define RT_USING_FTK */
+/* #define RT_USING_FTK */
/*
* Note on FTK:
diff --git a/bsp/mini2440/rtconfig.py b/bsp/mini2440/rtconfig.py
index dce03130e1..cf6637b481 100644
--- a/bsp/mini2440/rtconfig.py
+++ b/bsp/mini2440/rtconfig.py
@@ -11,16 +11,17 @@ CROSS_TOOL = 'gcc'
if CROSS_TOOL == 'gcc':
PLATFORM = 'gcc'
- EXEC_PATH = 'E:/Program Files/CodeSourcery/Sourcery G++ Lite/bin'
+ EXEC_PATH = 'C:/Program Files/CodeSourcery/Sourcery G++ Lite/bin'
elif CROSS_TOOL == 'keil':
PLATFORM = 'armcc'
- EXEC_PATH = 'E:/Keil'
+ EXEC_PATH = 'C:/Keil'
BUILD = 'debug'
if PLATFORM == 'gcc':
# toolchains
PREFIX = 'arm-none-eabi-'
CC = PREFIX + 'gcc'
+ CXX = PREFIX + 'g++'
AS = PREFIX + 'gcc'
AR = PREFIX + 'ar'
LINK = PREFIX + 'gcc'
@@ -48,6 +49,7 @@ if PLATFORM == 'gcc':
elif PLATFORM == 'armcc':
# toolchains
CC = 'armcc'
+ CXX = 'armcc'
AS = 'armasm'
AR = 'armar'
LINK = 'armlink'
diff --git a/components/dfs/include/dfs_posix.h b/components/dfs/include/dfs_posix.h
index 1a8e179cbe..ad4d3fc167 100644
--- a/components/dfs/include/dfs_posix.h
+++ b/components/dfs/include/dfs_posix.h
@@ -10,7 +10,8 @@
* Change Logs:
* Date Author Notes
* 2009-05-27 Yi.qiu The first version.
- * 2010-07-18 Bernard add stat and statfs structure definitions.
+ * 2010-07-18 Bernard add stat and statfs structure definitions.
+ * 2011-05-16 Yi.qiu Change parameter name of rename, "new" is C++ key word.
*/
#ifndef __DFS_POSIX_H__
#define __DFS_POSIX_H__
@@ -100,7 +101,7 @@ int close(int d);
int read(int fd, void *buf, size_t len);
int write(int fd, const void *buf, size_t len);
off_t lseek(int fd, off_t offset, int whence);
-int rename(const char* old, const char* new );
+int rename(const char *from, const char *to);
int unlink(const char *pathname);
int stat(const char *file, struct stat *buf);
int fstat(int fildes, struct stat *buf);
diff --git a/components/external/libpng/pngconf.h b/components/external/libpng/pngconf.h
index 0cc2fc3551..047376302d 100644
--- a/components/external/libpng/pngconf.h
+++ b/components/external/libpng/pngconf.h
@@ -22,13 +22,13 @@
#ifdef __RT_THREAD__
#include <rtthread.h>
#define PNG_MAX_MALLOC_64K
+#define PNG_NO_STDIO
#ifndef RT_USING_NEWLIB
#define PNG_NO_WRITE_SUPPORTED
-#define PNG_NO_STDIO
#define PNG_NO_SETJMP_SUPPORTED
-#define malloc rtgui_malloc
-#define free rtgui_free
+#define malloc rtgui_malloc
+#define free rtgui_free
#endif
#endif
diff --git a/components/external/libz/zutil.c b/components/external/libz/zutil.c
index 19d2760e6c..16e9ac962e 100644
--- a/components/external/libz/zutil.c
+++ b/components/external/libz/zutil.c
@@ -291,6 +291,7 @@ void zcfree (voidpf opaque, voidpf ptr)
#ifndef MY_ZCALLOC /* Any system without a special alloc function */
+#ifdef RT_USING_RTGUI
extern voidp rtgui_malloc OF((uInt size));
extern voidp rtgui_calloc OF((uInt items, uInt size));
extern void rtgui_free OF((voidpf ptr));
@@ -312,5 +313,25 @@ void zcfree (opaque, ptr)
rtgui_free(ptr);
if (opaque) return; /* make compiler happy */
}
+#else
+voidpf zcalloc (opaque, items, size)
+ voidpf opaque;
+ unsigned items;
+ unsigned size;
+{
+ if (opaque) items += size - size; /* make compiler happy */
+ return sizeof(uInt) > 2 ? (voidpf)rt_malloc(items * size) :
+ (voidpf)rt_calloc(items, size);
+}
+
+void zcfree (opaque, ptr)
+ voidpf opaque;
+ voidpf ptr;
+{
+ rt_free(ptr);
+ if (opaque) return; /* make compiler happy */
+}
+
+#endif
#endif /* MY_ZCALLOC */
diff --git a/components/pthreads/posix_types.h b/components/pthreads/posix_types.h
index fd913aee2e..a2bb1aeac9 100644
--- a/components/pthreads/posix_types.h
+++ b/components/pthreads/posix_types.h
@@ -176,15 +176,15 @@ struct timeval {
#include <dfs_posix.h>
#else
typedef rt_uint16_t mode_t;
-#define O_RDONLY 0000000
-#define O_WRONLY 0000001
-#define O_RDWR 0000002
-#define O_ACCMODE 0000003
-#define O_CREAT 0000100
-#define O_EXCL 0000200
-#define O_TRUNC 0001000
-#define O_APPEND 0002000
-#define O_DIRECTORY 0200000
+#define O_RDONLY 0x0000000
+#define O_WRONLY 0x0000001
+#define O_RDWR 0x0000002
+#define O_ACCMODE 0x0000003
+#define O_CREAT 0x0000100
+#define O_EXCL 0x0000200
+#define O_TRUNC 0x0001000
+#define O_APPEND 0x0002000
+#define O_DIRECTORY 0x0200000
#endif
#elif defined (__GNUC__) /* GNU GCC Compiler, with minilibc */