diff options
| author | bernard.xiong <[email protected]> | 2009-10-14 09:47:48 +0000 |
|---|---|---|
| committer | bernard.xiong <[email protected]> | 2009-10-14 09:47:48 +0000 |
| commit | 3c246ff153f36531bb1a020cb455b9a7cdf51db5 (patch) | |
| tree | b1b4e82ac67c2dff9b57998afba3a863e415fb21 | |
| parent | 4e399f6e90c248b04ca1ca1d30e0c6e1da42d6a9 (diff) | |
add STM32 gcc version. apply scons build system.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@98 bbd45198-f89e-11dd-88c7-29a3b14d5316
| -rw-r--r-- | bsp/stm3210/rtc.c | 4 | ||||
| -rw-r--r-- | bsp/stm3210/rtconfig.py | 12 | ||||
| -rw-r--r-- | bsp/stm3210/startup.c | 3 | ||||
| -rw-r--r-- | bsp/stm3210/stm32_rom.ld | 121 | ||||
| -rw-r--r-- | bsp/stm3210/stm32_rom.sct | 15 | ||||
| -rw-r--r-- | finsh/SConscript | 7 | ||||
| -rw-r--r-- | finsh/shell.c | 7 | ||||
| -rw-r--r-- | libc/minilibc/SConscript | 7 | ||||
| -rw-r--r-- | libc/minilibc/stdint.h | 33 | ||||
| -rw-r--r-- | libc/minilibc/sys/time.h | 43 | ||||
| -rw-r--r-- | libc/minilibc/sys/types.h | 2 | ||||
| -rw-r--r-- | libc/minilibc/time.h | 6 | ||||
| -rw-r--r-- | net/lwip/SConscript | 70 | ||||
| -rw-r--r-- | src/SConscript | 7 |
14 files changed, 335 insertions, 2 deletions
diff --git a/bsp/stm3210/rtc.c b/bsp/stm3210/rtc.c index 453f8dd139..05e7a9c132 100644 --- a/bsp/stm3210/rtc.c +++ b/bsp/stm3210/rtc.c @@ -133,8 +133,6 @@ void rt_hw_rtc_init(void) return; } -#ifdef RT_USING_FINSH -#include <finsh.h> #include <time.h> time_t time(time_t* t) { @@ -151,6 +149,8 @@ time_t time(time_t* t) return time; } +#ifdef RT_USING_FINSH +#include <finsh.h> void set_date(rt_uint32_t year, rt_uint32_t month, rt_uint32_t day) { time_t now; diff --git a/bsp/stm3210/rtconfig.py b/bsp/stm3210/rtconfig.py new file mode 100644 index 0000000000..8b7413c820 --- /dev/null +++ b/bsp/stm3210/rtconfig.py @@ -0,0 +1,12 @@ +ARCH='arm'
+CPU='stm32'
+CC='armcc'
+TextBase='0x08000000'
+
+# component configuration
+RT_USING_FINSH = True
+RT_USING_DFS = False
+RT_USING_DFS_YAFFS2 = False
+RT_USING_DFS_EFSL = False
+RT_USING_LWIP = False
+RT_USING_MINILIBC = False
diff --git a/bsp/stm3210/startup.c b/bsp/stm3210/startup.c index e880f85804..9a4f9a0fdd 100644 --- a/bsp/stm3210/startup.c +++ b/bsp/stm3210/startup.c @@ -104,12 +104,15 @@ void rtthread_startup(void) /* init hardware serial device */
rt_hw_usart_init();
+
+#ifdef RT_USINS_DFS
/* init sdcard driver */
#if STM32_USE_SDIO
rt_hw_sdcard_init();
#else
rt_hw_msd_init();
#endif
+#endif
#ifdef RT_USING_LWIP
eth_system_device_init();
diff --git a/bsp/stm3210/stm32_rom.ld b/bsp/stm3210/stm32_rom.ld new file mode 100644 index 0000000000..ea4e23e427 --- /dev/null +++ b/bsp/stm3210/stm32_rom.ld @@ -0,0 +1,121 @@ +/*
+ * linker script for STM32F10x with GNU ld
+ * bernard.xiong 2009-10-14
+ */
+
+/* Program Entry, set to mark it as "used" and avoid gc */
+MEMORY
+{
+ CODE (rx) : ORIGIN = 0x08000000, LENGTH = 0x00080000
+ DATA (rw) : ORIGIN = 0x20000000, LENGTH = 0x00010000
+}
+ENTRY(Reset_Handler)
+
+SECTIONS
+{
+ .text :
+ {
+ . = ALIGN(4);
+ KEEP(*(.isr_vector)) /* Startup code */
+ . = ALIGN(4);
+ *(.text) /* remaining code */
+ *(.text.*) /* remaining code */
+ *(.rodata) /* read-only data (constants) */
+ *(.rodata*)
+ *(.glue_7)
+ *(.glue_7t)
+
+ . = ALIGN(4);
+ _etext = .;
+
+ /* This is used by the startup in order to initialize the .data secion */
+ _sidata = _etext;
+ } > CODE = 0
+
+ .FSymTab :
+ {
+ . = ALIGN(4);
+ __fsymtab_start = .;
+ *(.FSymTab)
+ __fsymtab_end = .;
+ . = ALIGN(4);
+ } > CODE
+
+ .VSymTab :
+ {
+ . = ALIGN(4);
+ __vsymtab_start = .;
+ *(.VSymTab)
+ __vsymtab_end = .;
+ . = ALIGN(4);
+ } > CODE
+
+ /* .data section which is used for initialized data */
+
+ .data : AT (_sidata)
+ {
+ . = ALIGN(4);
+ /* This is used by the startup in order to initialize the .data secion */
+ _sdata = . ;
+
+ *(.data)
+ *(.data.*)
+
+ . = ALIGN(4);
+ /* This is used by the startup in order to initialize the .data secion */
+ _edata = . ;
+ } >DATA
+
+ __bss_start = .;
+ .bss :
+ {
+ . = ALIGN(4);
+ /* This is used by the startup in order to initialize the .bss secion */
+ _sbss = .;
+
+ *(.bss)
+ *(COMMON)
+
+ . = ALIGN(4);
+ /* This is used by the startup in order to initialize the .bss secion */
+ _ebss = . ;
+ _estack = .;
+ } > DATA
+ __bss_end = .;
+
+ _end = .;
+
+ /* Stabs debugging sections. */
+ .stab 0 : { *(.stab) }
+ .stabstr 0 : { *(.stabstr) }
+ .stab.excl 0 : { *(.stab.excl) }
+ .stab.exclstr 0 : { *(.stab.exclstr) }
+ .stab.index 0 : { *(.stab.index) }
+ .stab.indexstr 0 : { *(.stab.indexstr) }
+ .comment 0 : { *(.comment) }
+ /* DWARF debug sections.
+ * Symbols in the DWARF debugging sections are relative to the beginning
+ * of the section so we begin them at 0. */
+ /* DWARF 1 */
+ .debug 0 : { *(.debug) }
+ .line 0 : { *(.line) }
+ /* GNU DWARF 1 extensions */
+ .debug_srcinfo 0 : { *(.debug_srcinfo) }
+ .debug_sfnames 0 : { *(.debug_sfnames) }
+ /* DWARF 1.1 and DWARF 2 */
+ .debug_aranges 0 : { *(.debug_aranges) }
+ .debug_pubnames 0 : { *(.debug_pubnames) }
+ /* DWARF 2 */
+ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
+ .debug_abbrev 0 : { *(.debug_abbrev) }
+ .debug_line 0 : { *(.debug_line) }
+ .debug_frame 0 : { *(.debug_frame) }
+ .debug_str 0 : { *(.debug_str) }
+ .debug_loc 0 : { *(.debug_loc) }
+ .debug_macinfo 0 : { *(.debug_macinfo) }
+ /* SGI/MIPS DWARF 2 extensions */
+ .debug_weaknames 0 : { *(.debug_weaknames) }
+ .debug_funcnames 0 : { *(.debug_funcnames) }
+ .debug_typenames 0 : { *(.debug_typenames) }
+ .debug_varnames 0 : { *(.debug_varnames) }
+}
diff --git a/bsp/stm3210/stm32_rom.sct b/bsp/stm3210/stm32_rom.sct new file mode 100644 index 0000000000..0835abf43e --- /dev/null +++ b/bsp/stm3210/stm32_rom.sct @@ -0,0 +1,15 @@ +; *************************************************************
+; *** Scatter-Loading Description File generated by uVision ***
+; *************************************************************
+
+LR_IROM1 0x08000000 0x00080000 { ; load region size_region
+ ER_IROM1 0x08000000 0x00080000 { ; load address = execution address
+ *.o (RESET, +First)
+ *(InRoot$$Sections)
+ .ANY (+RO)
+ }
+ RW_IRAM1 0x20000000 0x00010000 { ; RW data
+ .ANY (+RW +ZI)
+ }
+}
+
diff --git a/finsh/SConscript b/finsh/SConscript new file mode 100644 index 0000000000..6e71c13fc3 --- /dev/null +++ b/finsh/SConscript @@ -0,0 +1,7 @@ +Import('env')
+
+# The set of source files associated with this SConscript file.
+src_local = Glob('*.c')
+
+obj = env.Object(src_local)
+Return('obj')
diff --git a/finsh/shell.c b/finsh/shell.c index f4009b45e8..dbeef89cfa 100644 --- a/finsh/shell.c +++ b/finsh/shell.c @@ -47,6 +47,13 @@ extern char rt_serial_getc(void); #pragma section="FSymTab" #pragma section="VSymTab" #endif +#elif defined(__GCC__) + #ifdef FINSH_USING_SYMTAB + extern int __fsymtab_start; + extern int __fsymtab_end; + extern int __vsymtab_start; + extern int __vsymtab_end; + #endif #endif /* finsh thread */ diff --git a/libc/minilibc/SConscript b/libc/minilibc/SConscript new file mode 100644 index 0000000000..6e71c13fc3 --- /dev/null +++ b/libc/minilibc/SConscript @@ -0,0 +1,7 @@ +Import('env')
+
+# The set of source files associated with this SConscript file.
+src_local = Glob('*.c')
+
+obj = env.Object(src_local)
+Return('obj')
diff --git a/libc/minilibc/stdint.h b/libc/minilibc/stdint.h new file mode 100644 index 0000000000..ce9c500867 --- /dev/null +++ b/libc/minilibc/stdint.h @@ -0,0 +1,33 @@ +#ifndef __STDINT_H__
+#define __STDINT_H__
+
+#include <rtthread.h>
+
+typedef rt_int8_t int8_t;
+typedef rt_uint8_t uint8_t;
+typedef rt_int16_t int16_t;
+typedef rt_uint16_t uint16_t;
+typedef rt_int32_t int32_t;
+typedef rt_uint32_t uint32_t;
+
+/*
+ * 7.18.2 Limits of specified-width integer types.
+ *
+ * The following object-like macros specify the minimum and maximum limits
+ * of integer types corresponding to the typedef names defined above.
+ */
+
+/* 7.18.2.1 Limits of exact-width integer types */
+#define INT8_MIN (-0x7f - 1)
+#define INT16_MIN (-0x7fff - 1)
+#define INT32_MIN (-0x7fffffff - 1)
+
+#define INT8_MAX 0x7f
+#define INT16_MAX 0x7fff
+#define INT32_MAX 0x7fffffff
+
+#define UINT8_MAX 0xff
+#define UINT16_MAX 0xffff
+#define UINT32_MAX 0xffffffffU
+
+#endif
diff --git a/libc/minilibc/sys/time.h b/libc/minilibc/sys/time.h new file mode 100644 index 0000000000..4cd5cb8ba8 --- /dev/null +++ b/libc/minilibc/sys/time.h @@ -0,0 +1,43 @@ +#ifndef _SYS_TIME_H_
+#define _SYS_TIME_H_
+
+#include <sys/types.h>
+
+/*
+ * Structure returned by gettimeofday(2) system call,
+ * and used in other calls.
+ */
+struct timeval {
+ long tv_sec; /* seconds */
+ long tv_usec; /* and microseconds */
+};
+
+/*
+ * Structure defined by POSIX.1b to be like a timeval.
+ */
+struct timespec {
+ time_t tv_sec; /* seconds */
+ long tv_nsec; /* and nanoseconds */
+};
+
+struct timezone {
+ int tz_minuteswest; /* minutes west of Greenwich */
+ int tz_dsttime; /* type of dst correction */
+};
+
+struct tm {
+ int tm_sec; /* Seconds. [0-60] (1 leap second) */
+ int tm_min; /* Minutes. [0-59] */
+ int tm_hour; /* Hours. [0-23] */
+ int tm_mday; /* Day. [1-31] */
+ int tm_mon; /* Month. [0-11] */
+ int tm_year; /* Year - 1900. */
+ int tm_wday; /* Day of week. [0-6] */
+ int tm_yday; /* Days in year.[0-365] */
+ int tm_isdst; /* DST. [-1/0/1]*/
+
+ long int tm_gmtoff; /* Seconds east of UTC. */
+ const char *tm_zone; /* Timezone abbreviation. */
+};
+
+#endif
diff --git a/libc/minilibc/sys/types.h b/libc/minilibc/sys/types.h index 035250c076..a9a1dafa2e 100644 --- a/libc/minilibc/sys/types.h +++ b/libc/minilibc/sys/types.h @@ -15,6 +15,8 @@ typedef rt_uint8_t u_int8_t; typedef rt_uint16_t u_int16_t; typedef rt_uint32_t u_int32_t; +typedef rt_time_t time_t; + #ifndef NULL #define NULL RT_NULL #endif diff --git a/libc/minilibc/time.h b/libc/minilibc/time.h new file mode 100644 index 0000000000..0b2aabbed1 --- /dev/null +++ b/libc/minilibc/time.h @@ -0,0 +1,6 @@ +#ifndef __TIME_H__
+#define __TIME_H__
+
+#include <sys/time.h>
+
+#endif
diff --git a/net/lwip/SConscript b/net/lwip/SConscript new file mode 100644 index 0000000000..92dff9559e --- /dev/null +++ b/net/lwip/SConscript @@ -0,0 +1,70 @@ +Import('env')
+Import('rtconfig')
+Import('RTT_ROOT')
+
+src_local = Split("""
+src/api/api_lib.c
+src/api/api_msg.c
+src/api/err.c
+src/api/netbuf.c
+src/api/netdb.c
+src/api/netifapi.c
+src/api/sockets.c
+src/api/tcpip.c
+src/arch/sys_arch.c
+src/arch/sys_arch_init.c
+src/core/dhcp.c
+src/core/dns.c
+src/core/init.c
+src/core/memp_tiny.c
+src/core/netif.c
+src/core/pbuf.c
+src/core/raw.c
+src/core/stats.c
+src/core/sys.c
+src/core/tcp.c
+src/core/tcp_in.c
+src/core/tcp_out.c
+src/core/udp.c
+src/core/ipv4/autoip.c
+src/core/ipv4/icmp.c
+src/core/ipv4/igmp.c
+src/core/ipv4/inet.c
+src/core/ipv4/inet_chksum.c
+src/core/ipv4/ip.c
+src/core/ipv4/ip_addr.c
+src/core/ipv4/ip_frag.c
+src/core/snmp/asn1_dec.c
+src/core/snmp/asn1_enc.c
+src/core/snmp/mib2.c
+src/core/snmp/mib_structs.c
+src/core/snmp/msg_in.c
+src/core/snmp/msg_out.c
+src/netif/etharp.c
+src/netif/ethernetif.c
+src/netif/loopif.c
+src/netif/slipif.c
+src/netif/ppp/auth.c
+src/netif/ppp/chap.c
+src/netif/ppp/chpms.c
+src/netif/ppp/fsm.c
+src/netif/ppp/ipcp.c
+src/netif/ppp/lcp.c
+src/netif/ppp/magic.c
+src/netif/ppp/md5.c
+src/netif/ppp/pap.c
+src/netif/ppp/ppp.c
+src/netif/ppp/ppp_oe.c
+src/netif/ppp/randm.c
+src/netif/ppp/vj.c
+""")
+
+# The set of source files associated with this SConscript file.
+path = [RTT_ROOT + '/net/lwip/src/include', RTT_ROOT + '/net/lwip/src/include/ipv4', RTT_ROOT + '/net/lwip/src/arch/include/arch', RTT_ROOT + '/net/lwip/src/include/netif', RTT_ROOT + '/net/lwip/src/netif/ppp']
+
+lwip_env = env.Clone()
+lwip_env.Append(CPPPATH = path)
+
+obj = lwip_env.Object(src_local)
+
+Return('obj')
diff --git a/src/SConscript b/src/SConscript new file mode 100644 index 0000000000..6e71c13fc3 --- /dev/null +++ b/src/SConscript @@ -0,0 +1,7 @@ +Import('env')
+
+# The set of source files associated with this SConscript file.
+src_local = Glob('*.c')
+
+obj = env.Object(src_local)
+Return('obj')
|
