summaryrefslogtreecommitdiffstatsabout
diff options
context:
space:
mode:
authorJiaojinxing <jiaojinxing1987@gmail.com>2016-06-06 07:57:54 (GMT)
committer Jiaojinxing <jiaojinxing1987@gmail.com>2016-06-06 07:57:54 (GMT)
commitb6a12ed05d0530ac43b30a5547723a7801cd455a (patch)
treec8f2168524dae8901ac27b917a6ee1d6a24b9f03
parent82704802d9b9366cd6941aacb77624ffba9bcf4c (diff)
downloadbspam335x-b6a12ed05d0530ac43b30a5547723a7801cd455a.zip
bspam335x-b6a12ed05d0530ac43b30a5547723a7801cd455a.tar.gz
bspam335x-b6a12ed05d0530ac43b30a5547723a7801cd455a.tar.bz2
Updated linker script file.
-rw-r--r--.cproject34
-rw-r--r--.project4
-rw-r--r--.template/config.h44
-rw-r--r--.template/config.ld38
-rw-r--r--.template/config.mk41
-rw-r--r--.template/config.xml16
-rw-r--r--Makefile10
-rw-r--r--SylixOS/bsp/beaglebone/config_beaglebone.h34
-rw-r--r--SylixOS/bsp/bspInit.c13
-rw-r--r--SylixOS/bsp/config.h12
-rw-r--r--SylixOS/bsp/forlinx/config_ok335xd.h36
-rw-r--r--SylixOS/bsp/forlinx/config_ok335xs.h36
-rw-r--r--SylixOS/bsp/startup.S50
-rw-r--r--SylixOS/bsp/ti/config_evmAM335x.h34
-rw-r--r--SylixOS/bsp/ti/config_evmskAM335x.h34
-rw-r--r--SylixOS/driver/netif/am335x_cpsw.c6
-rw-r--r--SylixOS/driver/netif/netio/netio.c14
-rw-r--r--SylixOS/user/main.c20
-rw-r--r--SylixOSBSP.ld153
-rw-r--r--config.ld38
-rw-r--r--config.lds6
-rw-r--r--config.mk2
22 files changed, 470 insertions, 205 deletions
diff --git a/.cproject b/.cproject
index 2465d87..a8b863e 100644
--- a/.cproject
+++ b/.cproject
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
<storageModule moduleId="org.eclipse.cdt.core.settings">
- <cconfiguration id="com.sylixos.realcoder.toolChain.armsylixeabi.21622006">
- <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.sylixos.realcoder.toolChain.armsylixeabi.21622006" moduleId="org.eclipse.cdt.core.settings" name="Default">
+ <cconfiguration id="com.sylixos.realevo.toolChain.armsylixeabi.823775400">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.sylixos.realevo.toolChain.armsylixeabi.823775400" moduleId="org.eclipse.cdt.core.settings" name="Default">
<macros>
- <stringMacro name="SYLIXOS_TOOLCHAIN_PATH" type="VALUE_PATH_DIR" value="D:\ACOINFO\arm-sylixos-toolchain"/>
+ <stringMacro name="SYLIXOS_TOOLCHAIN_PATH" type="VALUE_PATH_DIR" value="C:\ACOINFO\arm-sylixos-toolchain"/>
<stringMacro name="SYLIXOS_TEMPLATE_ARCH" type="VALUE_TEXT" value="arm"/>
<stringMacro name="SYLIXOS_TOOLCHAIN_VER" type="VALUE_TEXT" value="4.9.3"/>
<stringMacro name="SYLIXOS_TOOLCHAIN_PREFIX" type="VALUE_TEXT" value="arm-sylixos-eabi"/>
@@ -24,25 +24,25 @@
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactName="${ProjName}" buildProperties="" description="" id="com.sylixos.realcoder.toolChain.armsylixeabi.21622006" name="Default" parent="org.eclipse.cdt.build.core.emptycfg">
- <folderInfo id="com.sylixos.realcoder.toolChain.armsylixeabi.21622006.394215299" name="/" resourcePath="">
- <toolChain id="com.sylixos.realcoder.toolChain.armsylixeabi.465308959" name="SylixOS Toolchain" superClass="com.sylixos.realcoder.toolChain.armsylixeabi">
- <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.GNU_ELF" id="com.sylixos.realcoder.targetPlatform.armsylixoseabi.1130510335" isAbstract="false" name="SylixOS TagetPlagform" osList="win32" superClass="com.sylixos.realcoder.targetPlatform.armsylixoseabi"/>
- <builder id="com.sylixos.realcoder.builder.armsylixeabi.1334573766" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="SylixOS Builder" superClass="com.sylixos.realcoder.builder.armsylixeabi"/>
- <tool id="com.sylixos.realcoder.tool.armsylixeabi.80463540" name="arm-sylixos-eabi-gcc" superClass="com.sylixos.realcoder.tool.armsylixeabi">
- <option id="com.sylixos.realcoder.option.armsylixoseabi.include.2092326724" name="Include paths (-I)" superClass="com.sylixos.realcoder.option.armsylixoseabi.include" valueType="includePath">
+ <configuration artifactName="${ProjName}" buildProperties="" description="" errorParsers="org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.VCErrorParser;org.eclipse.cdt.core.CWDLocator;org.eclipse.cdt.core.MakeErrorParser" id="com.sylixos.realevo.toolChain.armsylixeabi.823775400" name="Default" parent="org.eclipse.cdt.build.core.emptycfg">
+ <folderInfo id="com.sylixos.realevo.toolChain.armsylixeabi.823775400.637875610" name="/" resourcePath="">
+ <toolChain id="com.sylixos.realevo.toolChain.armsylixeabi.828488653" name="SylixOS Toolchain" superClass="com.sylixos.realevo.toolChain.armsylixeabi">
+ <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.GNU_ELF" id="com.sylixos.realevo.targetPlatform.armsylixoseabi.150825304" isAbstract="false" name="SylixOS TagetPlagform" osList="all" superClass="com.sylixos.realevo.targetPlatform.armsylixoseabi"/>
+ <builder id="com.sylixos.realevo.builder.armsylixeabi.71684235" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="SylixOS Builder" superClass="com.sylixos.realevo.builder.armsylixeabi"/>
+ <tool id="com.sylixos.realevo.tool.armsylixeabi.1710126666" name="arm-sylixos-eabi-gcc" superClass="com.sylixos.realevo.tool.armsylixeabi">
+ <option id="com.sylixos.realevo.option.armsylixoseabi.include.1175592689" name="Include paths (-I)" superClass="com.sylixos.realevo.option.armsylixoseabi.include" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${SYLIXOS_BASE_PATH}/libsylixos/SylixOS&quot;"/>
<listOptionValue builtIn="false" value="&quot;${SYLIXOS_BASE_PATH}/libsylixos/SylixOS/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${SYLIXOS_BASE_PATH}/libsylixos/SylixOS/include/inet&quot;"/>
<listOptionValue builtIn="false" value="&quot;${SYLIXOS_TOOLCHAIN_PATH}/${SYLIXOS_TOOLCHAIN_PREFIX}/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${SYLIXOS_TOOLCHAIN_PATH}/lib/gcc/${SYLIXOS_TOOLCHAIN_PREFIX}/${SYLIXOS_TOOLCHAIN_VER}/include&quot;"/>
</option>
- <option id="com.sylixos.realcoder.option.armsylixoseabi.DefinedSymbols.872955496" name="Defined symbols(-D)" superClass="com.sylixos.realcoder.option.armsylixoseabi.DefinedSymbols" valueType="definedSymbols">
+ <option id="com.sylixos.realevo.option.armsylixoseabi.DefinedSymbols.599195610" name="Defined symbols(-D)" superClass="com.sylixos.realevo.option.armsylixoseabi.DefinedSymbols" valueType="definedSymbols">
<listOptionValue builtIn="false" value="__GNUC__=4"/>
<listOptionValue builtIn="false" value="SYLIXOS"/>
</option>
- <inputType id="com.sylixos.realcoder.inputType.armnsylixeabic.657182802" name="SylixOS Input C" superClass="com.sylixos.realcoder.inputType.armnsylixeabic"/>
- <inputType id="com.sylixos.realcoder.inputType.armnsylixeabicpp.542599569" name="SylixOS Input CPP" superClass="com.sylixos.realcoder.inputType.armnsylixeabicpp"/>
+ <inputType id="com.sylixos.realevo.inputType.armnsylixeabic.1978288920" name="SylixOS Input C" superClass="com.sylixos.realevo.inputType.armnsylixeabic"/>
+ <inputType id="com.sylixos.realevo.inputType.armnsylixeabicpp.1142904684" name="SylixOS Input CPP" superClass="com.sylixos.realevo.inputType.armnsylixeabicpp"/>
</tool>
</toolChain>
</folderInfo>
@@ -52,11 +52,15 @@
</cconfiguration>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <project id="bspam335x.null.1745186290" name="bspam335x"/>
+ <project id="bspam335x.null.917398003" name="bspam335x"/>
</storageModule>
<storageModule moduleId="scannerConfiguration">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
- <storageModule moduleId="refreshScope"/>
+ <storageModule moduleId="refreshScope" versionNumber="2">
+ <configuration configurationName="Default">
+ <resource resourceType="PROJECT" workspacePath="/bspam335x"/>
+ </configuration>
+ </storageModule>
</cproject>
diff --git a/.project b/.project
index 5910fbd..5bcb54e 100644
--- a/.project
+++ b/.project
@@ -18,7 +18,7 @@
</arguments>
</buildCommand>
<buildCommand>
- <name>com.sylixos.realcoder.SylixOSBuilder</name>
+ <name>com.sylixos.realevo.SylixOSBuilder</name>
<arguments>
</arguments>
</buildCommand>
@@ -27,6 +27,6 @@
<nature>org.eclipse.cdt.core.cnature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
- <nature>com.sylixos.realcoder.SylixOSProject</nature>
+ <nature>com.sylixos.realevo.SylixOSProject</nature>
</natures>
</projectDescription>
diff --git a/.template/config.h b/.template/config.h
new file mode 100644
index 0000000..b58100e
--- /dev/null
+++ b/.template/config.h
@@ -0,0 +1,44 @@
+/*********************************************************************************************************
+**
+** 中国软件开源组织
+**
+** 嵌入式实时操作系统
+**
+** SylixOS(TM) LW : long wing
+**
+** Copyright All Rights Reserved
+**
+**--------------文件信息--------------------------------------------------------------------------------
+**
+** 文 件 名: config.h
+**
+** 创 建 人: RealEvo-IDE
+**
+** 文件创建日期: $(Create_Date)
+**
+** 描 述: 本文件由 RealEvo-IDE 生成,用于配置 BSP 相关地址信息
+*********************************************************************************************************/
+#ifndef __BSP_CONFIG_H
+#define __BSP_CONFIG_H
+
+/*********************************************************************************************************
+ ROM RAM 相关配置
+*********************************************************************************************************/
+
+#define BSP_CFG_ROM_BASE 0x$(SylixOS_BspRomBase)
+#define BSP_CFG_ROM_SIZE ($(SylixOS_BspRomSize))
+
+#define BSP_CFG_RAM_BASE 0x$(SylixOS_BspRamBase)
+#define BSP_CFG_RAM_SIZE ($(SylixOS_BspRamSize))
+
+#define BSP_CFG_TEXT_SIZE ($(SylixOS_BspTextSize))
+#define BSP_CFG_DATA_SIZE ($(SylixOS_BspDataSize))
+#define BSP_CFG_DMA_SIZE ($(SylixOS_BspDmaSize))
+#define BSP_CFG_APP_SIZE ($(SylixOS_BspAppSize))
+
+#define BSP_CFG_BOOT_STACK_SIZE ($(SylixOS_BspBootStkSize))
+
+#endif /* __BSP_CONFIG_H */
+/*********************************************************************************************************
+ END
+*********************************************************************************************************/
diff --git a/.template/config.ld b/.template/config.ld
new file mode 100644
index 0000000..1f60bf1
--- /dev/null
+++ b/.template/config.ld
@@ -0,0 +1,38 @@
+/*********************************************************************************************************
+**
+** 中国软件开源组织
+**
+** 嵌入式实时操作系统
+**
+** SylixOS(TM)
+**
+** Copyright All Rights Reserved
+**
+**--------------文件信息--------------------------------------------------------------------------------
+**
+** 文 件 名: config.ld
+**
+** 创 建 人: RealEvo-IDE
+**
+** 文件创建日期: $(Create_Date)
+**
+** 描 述: 本文件由 RealEvo-IDE 生成,用于配置链接脚本
+*********************************************************************************************************/
+
+#include "config.h"
+
+/*********************************************************************************************************
+ 内存布局定义
+*********************************************************************************************************/
+
+MEMORY
+{
+ TEXT (rx) : ORIGIN = BSP_CFG_RAM_BASE, LENGTH = BSP_CFG_TEXT_SIZE
+ DATA (rw) : ORIGIN = BSP_CFG_RAM_BASE + (BSP_CFG_TEXT_SIZE), LENGTH = BSP_CFG_DATA_SIZE
+}
+
+BOOT_STACK_SIZE = BSP_CFG_BOOT_STACK_SIZE;
+
+/*********************************************************************************************************
+ END
+*********************************************************************************************************/
diff --git a/.template/config.mk b/.template/config.mk
new file mode 100644
index 0000000..ebc46ca
--- /dev/null
+++ b/.template/config.mk
@@ -0,0 +1,41 @@
+#*********************************************************************************************************
+#
+# 中国软件开源组织
+#
+# 嵌入式实时操作系统
+#
+# SylixOS(TM) LW : long wing
+#
+# Copyright All Rights Reserved
+#
+#--------------文件信息--------------------------------------------------------------------------------
+#
+# 文 件 名: config.mk
+#
+# 创 建 人: RealEvo-IDE
+#
+# 文件创建日期: $(Create_Date)
+#
+# 描 述: 本文件由 RealEvo-IDE 生成,用于配置 Makefile 功能,请勿手动修改
+#*********************************************************************************************************
+#*********************************************************************************************************
+# SylixOS Base Project path
+#*********************************************************************************************************
+SYLIXOS_BASE_PATH = $(SylixOS_Base_Path)
+
+#*********************************************************************************************************
+# Toolchain prefix
+#*********************************************************************************************************
+TOOLCHAIN_PREFIX = $(SylixOS_Toolchain)-
+
+#*********************************************************************************************************
+# Debug options (debug or release)
+#*********************************************************************************************************
+DEBUG_LEVEL = $(SylixOS_Debug_Level)
+
+#*********************************************************************************************************
+# NOTICE: libsylixos, BSP and other kernel modules projects CAN NOT use vfp!
+#*********************************************************************************************************
+FPUFLAGS = $(SylixOS_Fpu_Type)
+CPUFLAGS = $(SylixOS_Cpu_Type) $(FPUFLAGS)
+
diff --git a/.template/config.xml b/.template/config.xml
new file mode 100644
index 0000000..1975cb9
--- /dev/null
+++ b/.template/config.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="GB2312" standalone="no"?>
+<node name="arm-none bsp Conguration">
+ <node name="Rom Base Address(hex)" type="hextext" macro="SylixOS_BspRomBase" default="00000000" maxlen="8" />
+ <node name="Rom Size" type="text" macro="SylixOS_BspRomSize" default="4 * 1024 * 1024" pattern = "[0-9\*\+\ ]+"/>
+
+ <node name="Ram Base Address(hex)" type="hextext" macro="SylixOS_BspRamBase" default="30000000" maxlen="8" />
+ <node name="Ram Size" type="text" macro="SylixOS_BspRamSize" default="64 * 1024 * 1024" min="1 * 1024 * 1024" pattern = "[0-9\*\+\ ]+"/>
+
+ <node name="Text Section Size" type="text" macro="SylixOS_BspTextSize" default="6 * 1024 * 1024" min="1 * 1024 * 1024" pattern = "[0-9\*\+\ ]+"/>
+ <node name="Data Section Size" type="text" macro="SylixOS_BspDataSize" default="18 * 1024 * 1024" min="1 * 1024 * 1024" pattern = "[0-9\*\+\ ]+"/>
+
+ <node name="Dma Zone Size" type="text" macro="SylixOS_BspDmaSize" default="6 * 1024 * 1024" pattern = "[0-9\*\+\ ]+"/>
+ <node name="App Zone Size" type="text" macro="SylixOS_BspAppSize" default="34 * 1024 * 1024" pattern = "[0-9\*\+\ ]+"/>
+
+ <node name="Boot Stack Size" type="text" macro="SylixOS_BspBootStkSize" default="128 * 1024" min="64 * 1024" note="One cpu core use 64KB at least" pattern = "[0-9\*\+\ ]+"/>
+</node>
diff --git a/Makefile b/Makefile
index 22536ba..fdb6aad 100644
--- a/Makefile
+++ b/Makefile
@@ -44,6 +44,7 @@ AR = $(TOOLCHAIN_PREFIX)ar
LD = $(TOOLCHAIN_PREFIX)g++
OC = $(TOOLCHAIN_PREFIX)objcopy
SZ = $(TOOLCHAIN_PREFIX)size
+CPP = $(TOOLCHAIN_PREFIX)cpp
LZOCOM = $(TOOLCHAIN_PREFIX)lzocom
#*********************************************************************************************************
@@ -328,7 +329,7 @@ ARFLAGS = -r
DEPEND = $(CC) $(DEPENDFLAG) $(CFLAGS)
DEPEND.d = $(subst -g ,,$(DEPEND))
COMPILE.S = $(AS) $(ASFLAGS)
-COMPILE_VFP.S = $(AS) $(ASFLAGS) $(FPUFLAGS)
+COMPILE_VFP.S = $(AS) $(ASFLAGS) -mfloat-abi=softfp -mfpu=vfpv3
COMPILE.c = $(CC) $(CFLAGS)
COMPILE.cxx = $(CXX) $(CXXFLAGS)
@@ -397,23 +398,24 @@ $(OBJPATH)/%.o: %.cpp
# link bspam335x.elf object files
#*********************************************************************************************************
$(O_IMG): $(OBJS) $(LD_SCRIPT)
+ $(CPP) -E -P $(DSYMBOL) config.ld -o config.lds
$(LD) $(CPUFLAGS) -nostdlib $(addprefix -T,$(LD_SCRIPT)) -o $(O_IMG) $(OBJS) \
$(DEPEND_DLL_PATH) $(DEPEND_DLL) -lm -lgcc
#*********************************************************************************************************
-# create bspmini2440.bin
+# create bspam335x.bin
#*********************************************************************************************************
$(O_BIN): $(O_IMG)
$(OC) -O binary $(O_IMG) $(O_BIN)
#*********************************************************************************************************
-# create bspmini2440.siz
+# create bspam335x.siz
#*********************************************************************************************************
$(O_SIZ): $(O_IMG)
$(SZ) --format=berkeley $(O_IMG) > $(O_SIZ)
#*********************************************************************************************************
-# create bspmini2440.lzo
+# create bspam335x.lzo
#*********************************************************************************************************
$(O_LZO): $(O_BIN)
$(LZOCOM) -c $(O_BIN) $(O_LZO)
diff --git a/SylixOS/bsp/beaglebone/config_beaglebone.h b/SylixOS/bsp/beaglebone/config_beaglebone.h
index 7aef14c..2284e0b 100644
--- a/SylixOS/bsp/beaglebone/config_beaglebone.h
+++ b/SylixOS/bsp/beaglebone/config_beaglebone.h
@@ -20,44 +20,48 @@
*********************************************************************************************************/
#ifndef CONFIG_BEAGLEBONE_H_
#define CONFIG_BEAGLEBONE_H_
+
/*********************************************************************************************************
名字配置
*********************************************************************************************************/
+
#define BSP_CFG_PLATFORM_NAME "beaglebone"
+
/*********************************************************************************************************
外部晶振时钟配置
*********************************************************************************************************/
+
#define CLK_EXT_CRYSTAL_SPEED (24 * 1000 * 1000)
+
/*********************************************************************************************************
ROM RAM 相关配置
*********************************************************************************************************/
+
#define BSP_CFG_ROM_BASE 0x40000000
#define BSP_CFG_ROM_SIZE (176 * 1024)
#define BSP_CFG_RAM_BASE 0x80000000
#define BSP_CFG_RAM_SIZE (128 * 1024 * 1024)
-#define BSP_CFG_TEXT_SIZE (6 * LW_CFG_MB_SIZE)
-#define BSP_CFG_DATA_SIZE (40 * LW_CFG_MB_SIZE)
+#define BSP_CFG_TEXT_SIZE (6 * 1024 * 1024)
+#define BSP_CFG_DATA_SIZE (40 * 1024 * 1024)
+
+#define BSP_CFG_DMA_SIZE (16 * 1024 * 1024)
+#define BSP_CFG_APP_SIZE (64 * 1024 * 1024)
+
+#define BSP_CFG_BOOT_STACK_SIZE (128 * 1024)
-#define BSP_CFG_DMA_SIZE (16 * LW_CFG_MB_SIZE)
-#define BSP_CFG_APP_SIZE (64 * LW_CFG_MB_SIZE)
-/*********************************************************************************************************
- 内核堆与系统堆相关配置
-*********************************************************************************************************/
-#define BSP_CFG_KERNSYS_HEAP_SIZE (32 * LW_CFG_MB_SIZE)
-/*********************************************************************************************************
- 堆栈相关配置
-*********************************************************************************************************/
-#define BSP_CFG_STACK_TOP_ADDR (BSP_CFG_RAM_BASE + BSP_CFG_TEXT_SIZE + BSP_CFG_DATA_SIZE)
/*********************************************************************************************************
网口相关配置
*********************************************************************************************************/
+
#define CPSW_DUAL_MAC_MODE
#undef CPSW_SWITCH_CONFIG
+
/*********************************************************************************************************
ADC 触摸屏相关配置
*********************************************************************************************************/
+
#define BSP_CFG_ADC_TOUCH_EN 1
#define BSP_CFG_ADC_TOUCH_START_SAMPLES_NUM 5
@@ -66,19 +70,25 @@
#define BSP_CFG_ADC_TOUCH_X_FILTER_MIN 5
#define BSP_CFG_ADC_TOUCH_Y_FILTER_MIN 5
+
/*********************************************************************************************************
NAND 相关配置
*********************************************************************************************************/
+
#define BSP_CFG_NAND_EN 0
#define BSP_CFG_NAND_ROOTFS_EN 0
+
/*********************************************************************************************************
SD 相关配置
*********************************************************************************************************/
+
#define BSP_CFG_SD_ROOTFS_EN 1
+
/*********************************************************************************************************
串口相关配置
*********************************************************************************************************/
+
#define BSP_CFG_STD_FILE "/dev/ttyS0"
#endif /* CONFIG_BEAGLEBONE_H_ */
diff --git a/SylixOS/bsp/bspInit.c b/SylixOS/bsp/bspInit.c
index 34beb72..b0a7cfd 100644
--- a/SylixOS/bsp/bspInit.c
+++ b/SylixOS/bsp/bspInit.c
@@ -890,7 +890,7 @@ INT bspInit (VOID)
/*
* 系统内核堆与系统堆
*/
- static __section(.noinit) CHAR cKernelHeap[BSP_CFG_KERNSYS_HEAP_SIZE];
+ extern UCHAR __heap_start, __heap_end;
enableModuleClock(am335xModuleIdGet("WDT1")); /* Enable the WDT clocks */
@@ -911,14 +911,15 @@ INT bspInit (VOID)
/*
* 这里使用 bsp 设置启动参数, 如果 bootloader 支持, 可使用 bootloader 设置.
* 为了兼容以前的项目, 这里 kfpu=yes 允许内核中(包括中断)使用 FPU.
+ *
+ * TODO: 可以修改内核启动参数
*/
- API_KernelStartParam("ncpus=1 kdlog=no kderror=yes kfpu=no heapchk=yes hz=1000 hhz=1000");
+ API_KernelStartParam("ncpus=1 kdlog=no kderror=yes kfpu=no heapchk=yes");
/* 操作系统启动参数设置 */
API_KernelStart(usrStartup,
- cKernelHeap,
- sizeof(cKernelHeap),
- LW_NULL,
- 0); /* 启动内核 */
+ (PVOID)&__heap_start,
+ (size_t)&__heap_end - (size_t)&__heap_start,
+ LW_NULL, 0); /* 启动内核 */
return (0); /* 不会执行到这里 */
}
diff --git a/SylixOS/bsp/config.h b/SylixOS/bsp/config.h
index 9c2c104..c390089 100644
--- a/SylixOS/bsp/config.h
+++ b/SylixOS/bsp/config.h
@@ -20,9 +20,11 @@
*********************************************************************************************************/
#ifndef __CONFIG_H
#define __CONFIG_H
+
/*********************************************************************************************************
中断优先级配置
*********************************************************************************************************/
+
#define BSP_CFG_INT_PREEMPT_EN 1
#define BSP_CFG_LCD_INT_PRIO 5
@@ -64,16 +66,20 @@
#define BSP_CFG_MMCSD0_INT_PRIO 5
#define BSP_CFG_MMCSD1_INT_PRIO 5
#define BSP_CFG_MMCSD2_INT_PRIO 5
+
/*********************************************************************************************************
PERF 配置
*********************************************************************************************************/
+
#define BSP_CFG_INT_PERF_EN 1
#define BSP_CFG_DMA_PERF_EN 1
#define BSP_CFG_UART_PERF_EN 0
#define BSP_CFG_NAND_PERF_EN 0
+
/*********************************************************************************************************
IP 地址配置
*********************************************************************************************************/
+
#define BSP_CFG_EN1_IPADDR "192.168.1.11"
#define BSP_CFG_EN1_NETMASK "255.255.255.0"
#define BSP_CFG_EN1_GATEWAY "192.168.1.1"
@@ -81,16 +87,20 @@
#define BSP_CFG_EN2_IPADDR "192.168.2.11"
#define BSP_CFG_EN2_NETMASK "255.255.255.0"
#define BSP_CFG_EN2_GATEWAY "192.168.2.1"
+
/*********************************************************************************************************
CPSW 驱动配置
如果您的项目使用以太网极频繁地发送小包, 建议配置 BSP_CFG_CPSW_TX_DMA_PBUF 为 1, 否则建议配置为 0
*********************************************************************************************************/
+
#define BSP_CFG_CPSW_TX_DMA_PBUF 0
#define BSP_CFG_CPSW_CPPI_RAM_SIZE (80 * 1024)
+
/*********************************************************************************************************
开发板相关配置
*********************************************************************************************************/
+
#if defined(evmAM335x)
#include "ti/config_evmAM335x.h"
#elif defined(evmskAM335x)
@@ -108,9 +118,11 @@
#else
#error "Please define your platform in Makefile PLATFORM variable!"
#endif
+
/*********************************************************************************************************
配置检查
*********************************************************************************************************/
+
#if defined(CPSW_DUAL_MAC_MODE) && defined(CPSW_SWITCH_CONFIG)
#error "Can NOT define CPSW_DUAL_MAC_MODE and CPSW_SWITCH_CONFIG in the same time!"
#endif
diff --git a/SylixOS/bsp/forlinx/config_ok335xd.h b/SylixOS/bsp/forlinx/config_ok335xd.h
index 5c02490..2dd6ab0 100644
--- a/SylixOS/bsp/forlinx/config_ok335xd.h
+++ b/SylixOS/bsp/forlinx/config_ok335xd.h
@@ -20,51 +20,57 @@
*********************************************************************************************************/
#ifndef CONFIG_OK335XD_H_
#define CONFIG_OK335XD_H_
+
/*********************************************************************************************************
名字配置
*********************************************************************************************************/
+
#define BSP_CFG_PLATFORM_NAME "OK335xD"
+
/*********************************************************************************************************
外部晶振时钟配置
*********************************************************************************************************/
+
#define CLK_EXT_CRYSTAL_SPEED (24 * 1000 * 1000)
+
/*********************************************************************************************************
ROM RAM 相关配置
*********************************************************************************************************/
+
#define BSP_CFG_ROM_BASE 0x40000000
#define BSP_CFG_ROM_SIZE (176 * 1024)
#define BSP_CFG_RAM_BASE 0x80000000
#define BSP_CFG_RAM_SIZE (512 * 1024 * 1024)
-#define BSP_CFG_TEXT_SIZE (6 * LW_CFG_MB_SIZE)
-#define BSP_CFG_DATA_SIZE (122 * LW_CFG_MB_SIZE)
+#define BSP_CFG_TEXT_SIZE (6 * 1024 * 1024)
+#define BSP_CFG_DATA_SIZE (122 * 1024 * 1024)
+
+#define BSP_CFG_DMA_SIZE (16 * 1024 * 1024)
+#define BSP_CFG_APP_SIZE (368 * 1024 * 1024)
+
+#define BSP_CFG_BOOT_STACK_SIZE (128 * 1024)
-#define BSP_CFG_DMA_SIZE (16 * LW_CFG_MB_SIZE)
-#define BSP_CFG_APP_SIZE (368 * LW_CFG_MB_SIZE)
-/*********************************************************************************************************
- 内核堆与系统堆相关配置
-*********************************************************************************************************/
-#define BSP_CFG_KERNSYS_HEAP_SIZE (96 * LW_CFG_MB_SIZE)
-/*********************************************************************************************************
- 堆栈相关配置
-*********************************************************************************************************/
-#define BSP_CFG_STACK_TOP_ADDR (BSP_CFG_RAM_BASE + BSP_CFG_TEXT_SIZE + BSP_CFG_DATA_SIZE)
/*********************************************************************************************************
网口相关配置
*********************************************************************************************************/
+
#undef CPSW_DUAL_MAC_MODE
#undef CPSW_SWITCH_CONFIG
#define CPSW0_PORT_1_PHY_ADDR 0
#define CPSW0_PORT_1_PHY_GIGABIT FALSE
+
/*********************************************************************************************************
触摸屏相关配置
*********************************************************************************************************/
+
#define BSP_CFG_FT5X06_TOUCH_EN 1
+
/*********************************************************************************************************
ADC 触摸屏相关配置
*********************************************************************************************************/
+
#define BSP_CFG_ADC_TOUCH_EN 0
#define BSP_CFG_ADC_TOUCH_START_SAMPLES_NUM 5
@@ -73,19 +79,25 @@
#define BSP_CFG_ADC_TOUCH_X_FILTER_MIN 5
#define BSP_CFG_ADC_TOUCH_Y_FILTER_MIN 5
+
/*********************************************************************************************************
NAND 相关配置
*********************************************************************************************************/
+
#define BSP_CFG_NAND_EN 1
#define BSP_CFG_NAND_ROOTFS_EN 1
+
/*********************************************************************************************************
SD 相关配置
*********************************************************************************************************/
+
#define BSP_CFG_SD_ROOTFS_EN 0
+
/*********************************************************************************************************
串口相关配置
*********************************************************************************************************/
+
#define BSP_CFG_STD_FILE "/dev/ttyS0"
#endif /* CONFIG_OK335XD_H_ */
diff --git a/SylixOS/bsp/forlinx/config_ok335xs.h b/SylixOS/bsp/forlinx/config_ok335xs.h
index 4e5b3ec..df53c28 100644
--- a/SylixOS/bsp/forlinx/config_ok335xs.h
+++ b/SylixOS/bsp/forlinx/config_ok335xs.h
@@ -20,39 +20,41 @@
*********************************************************************************************************/
#ifndef CONFIG_OK335XS_H_
#define CONFIG_OK335XS_H_
+
/*********************************************************************************************************
名字配置
*********************************************************************************************************/
+
#define BSP_CFG_PLATFORM_NAME "OK335xS"
+
/*********************************************************************************************************
外部晶振时钟配置
*********************************************************************************************************/
+
#define CLK_EXT_CRYSTAL_SPEED (24 * 1000 * 1000)
+
/*********************************************************************************************************
ROM RAM 相关配置
*********************************************************************************************************/
+
#define BSP_CFG_ROM_BASE 0x40000000
#define BSP_CFG_ROM_SIZE (176 * 1024)
#define BSP_CFG_RAM_BASE 0x80000000
#define BSP_CFG_RAM_SIZE (512 * 1024 * 1024)
-#define BSP_CFG_TEXT_SIZE (6 * LW_CFG_MB_SIZE)
-#define BSP_CFG_DATA_SIZE (122 * LW_CFG_MB_SIZE)
+#define BSP_CFG_TEXT_SIZE (6 * 1024 * 1024)
+#define BSP_CFG_DATA_SIZE (122 * 1024 * 1024)
+
+#define BSP_CFG_DMA_SIZE (16 * 1024 * 1024)
+#define BSP_CFG_APP_SIZE (368 * 1024 * 1024)
+
+#define BSP_CFG_BOOT_STACK_SIZE (128 * 1024)
-#define BSP_CFG_DMA_SIZE (16 * LW_CFG_MB_SIZE)
-#define BSP_CFG_APP_SIZE (368 * LW_CFG_MB_SIZE)
-/*********************************************************************************************************
- 内核堆与系统堆相关配置
-*********************************************************************************************************/
-#define BSP_CFG_KERNSYS_HEAP_SIZE (96 * LW_CFG_MB_SIZE)
-/*********************************************************************************************************
- 堆栈相关配置
-*********************************************************************************************************/
-#define BSP_CFG_STACK_TOP_ADDR (BSP_CFG_RAM_BASE + BSP_CFG_TEXT_SIZE + BSP_CFG_DATA_SIZE)
/*********************************************************************************************************
网口相关配置
*********************************************************************************************************/
+
#define CPSW_DUAL_MAC_MODE
#undef CPSW_SWITCH_CONFIG
@@ -60,13 +62,17 @@
#define CPSW0_PORT_2_PHY_ADDR 1
#define CPSW0_PORT_1_PHY_GIGABIT TRUE
#define CPSW0_PORT_2_PHY_GIGABIT TRUE
+
/*********************************************************************************************************
触摸屏相关配置
*********************************************************************************************************/
+
#define BSP_CFG_FT5X06_TOUCH_EN 1
+
/*********************************************************************************************************
ADC 触摸屏相关配置
*********************************************************************************************************/
+
#define BSP_CFG_ADC_TOUCH_EN 0
#define BSP_CFG_ADC_TOUCH_START_SAMPLES_NUM 5
@@ -75,19 +81,25 @@
#define BSP_CFG_ADC_TOUCH_X_FILTER_MIN 5
#define BSP_CFG_ADC_TOUCH_Y_FILTER_MIN 5
+
/*********************************************************************************************************
NAND 相关配置
*********************************************************************************************************/
+
#define BSP_CFG_NAND_EN 1
#define BSP_CFG_NAND_ROOTFS_EN 1
+
/*********************************************************************************************************
SD 相关配置
*********************************************************************************************************/
+
#define BSP_CFG_SD_ROOTFS_EN 0
+
/*********************************************************************************************************
串口相关配置
*********************************************************************************************************/
+
#define BSP_CFG_STD_FILE "/dev/ttyS0"
#endif /* CONFIG_OK335XS_H_ */
diff --git a/SylixOS/bsp/startup.S b/SylixOS/bsp/startup.S
index ac714a8..acc3058 100644
--- a/SylixOS/bsp/startup.S
+++ b/SylixOS/bsp/startup.S
@@ -31,16 +31,25 @@
;/*********************************************************************************************************
; 配置各处理器模式堆栈空间的大小
;*********************************************************************************************************/
+
+#define SVC_STACK_SIZE 0x00002000
+#define SYS_STACK_SIZE 0x00001000
+#define FIQ_STACK_SIZE 0x00001000
#define UND_STACK_SIZE 0x00001000
#define ABT_STACK_SIZE 0x00001000
-#define FIQ_STACK_SIZE 0x00001000
#define IRQ_STACK_SIZE 0x00001000
-#define SVC_STACK_SIZE 0x00001000
-#define SYS_STACK_SIZE 0x00001000
+
+#define CPU_STACKS_SIZE (SVC_STACK_SIZE + \
+ SYS_STACK_SIZE + \
+ FIQ_STACK_SIZE + \
+ IRQ_STACK_SIZE + \
+ UND_STACK_SIZE + \
+ ABT_STACK_SIZE)
;/*********************************************************************************************************
-; 引入外部符号
+; 声明外部函数和导出全局函数
;*********************************************************************************************************/
+
IMPORT_LABEL(archIntEntry)
IMPORT_LABEL(archAbtEntry)
IMPORT_LABEL(archPreEntry)
@@ -103,32 +112,31 @@ FUNC_DEF(reset)
; 初始化堆栈
;*********************************************************************************************************/
- ;/* 内核高端地址 */
- LDR R0 , =BSP_CFG_STACK_TOP_ADDR
+ LDR R0 , =__stack_end ;/* 栈区顶端地址 */
- MSR CPSR_c, #(UND32_MODE | DIS_INT)
- MOV SP , R0
- SUB R0 , R0, #UND_STACK_SIZE
-
- MSR CPSR_c, #(ABT32_MODE | DIS_INT)
+ MSR CPSR_c, #(SVC32_MODE | DIS_INT)
MOV SP , R0
- SUB R0 , R0, #ABT_STACK_SIZE
-
- MSR CPSR_c, #(IRQ32_MODE | DIS_INT)
+ SUB R0 , R0, #SVC_STACK_SIZE
+
+ MSR CPSR_c, #(SYS32_MODE | DIS_INT)
MOV SP , R0
- SUB R0 , R0, #IRQ_STACK_SIZE
-
+ SUB R0 , R0, #SYS_STACK_SIZE
+
MSR CPSR_c, #(FIQ32_MODE | DIS_INT)
MOV SP , R0
SUB R0 , R0, #FIQ_STACK_SIZE
-
- MSR CPSR_c, #(SVC32_MODE | DIS_INT)
+
+ MSR CPSR_c, #(IRQ32_MODE | DIS_INT)
MOV SP , R0
- SUB R0 , R0, #SVC_STACK_SIZE
+ SUB R0 , R0, #IRQ_STACK_SIZE
+
+ MSR CPSR_c, #(UND32_MODE | DIS_INT)
+ MOV SP , R0
+ SUB R0 , R0, #UND_STACK_SIZE
- MSR CPSR_c, #(SYS32_MODE | DIS_INT)
+ MSR CPSR_c, #(ABT32_MODE | DIS_INT)
MOV SP , R0
- SUB R0 , R0, #SYS_STACK_SIZE
+ SUB R0 , R0, #ABT_STACK_SIZE
MSR CPSR_c, #(SVC32_MODE | DIS_INT)
diff --git a/SylixOS/bsp/ti/config_evmAM335x.h b/SylixOS/bsp/ti/config_evmAM335x.h
index 9c93cd3..dbb28a1 100644
--- a/SylixOS/bsp/ti/config_evmAM335x.h
+++ b/SylixOS/bsp/ti/config_evmAM335x.h
@@ -20,44 +20,48 @@
*********************************************************************************************************/
#ifndef CONFIG_EVMAM335X_H_
#define CONFIG_EVMAM335X_H_
+
/*********************************************************************************************************
名字配置
*********************************************************************************************************/
+
#define BSP_CFG_PLATFORM_NAME "evmAM335x"
+
/*********************************************************************************************************
外部晶振时钟配置
*********************************************************************************************************/
+
#define CLK_EXT_CRYSTAL_SPEED (24 * 1000 * 1000)
+
/*********************************************************************************************************
ROM RAM 相关配置
*********************************************************************************************************/
+
#define BSP_CFG_ROM_BASE 0x40000000
#define BSP_CFG_ROM_SIZE (176 * 1024)
#define BSP_CFG_RAM_BASE 0x80000000
#define BSP_CFG_RAM_SIZE (512 * 1024 * 1024)
-#define BSP_CFG_TEXT_SIZE (6 * LW_CFG_MB_SIZE)
-#define BSP_CFG_DATA_SIZE (122 * LW_CFG_MB_SIZE)
+#define BSP_CFG_TEXT_SIZE (6 * 1024 * 1024)
+#define BSP_CFG_DATA_SIZE (122 * 1024 * 1024)
+
+#define BSP_CFG_DMA_SIZE (16 * 1024 * 1024)
+#define BSP_CFG_APP_SIZE (368 * 1024 * 1024)
+
+#define BSP_CFG_BOOT_STACK_SIZE (128 * 1024)
-#define BSP_CFG_DMA_SIZE (16 * LW_CFG_MB_SIZE)
-#define BSP_CFG_APP_SIZE (368 * LW_CFG_MB_SIZE)
-/*********************************************************************************************************
- 内核堆与系统堆相关配置
-*********************************************************************************************************/
-#define BSP_CFG_KERNSYS_HEAP_SIZE (96 * LW_CFG_MB_SIZE)
-/*********************************************************************************************************
- 堆栈相关配置
-*********************************************************************************************************/
-#define BSP_CFG_STACK_TOP_ADDR (BSP_CFG_RAM_BASE + BSP_CFG_TEXT_SIZE + BSP_CFG_DATA_SIZE)
/*********************************************************************************************************
网口相关配置
*********************************************************************************************************/
+
#undef CPSW_DUAL_MAC_MODE
#undef CPSW_SWITCH_CONFIG
+
/*********************************************************************************************************
ADC 触摸屏相关配置
*********************************************************************************************************/
+
#define BSP_CFG_ADC_TOUCH_EN 1
#define BSP_CFG_ADC_TOUCH_START_SAMPLES_NUM 5
@@ -66,19 +70,25 @@
#define BSP_CFG_ADC_TOUCH_X_FILTER_MIN 5
#define BSP_CFG_ADC_TOUCH_Y_FILTER_MIN 5
+
/*********************************************************************************************************
NAND 相关配置
*********************************************************************************************************/
+
#define BSP_CFG_NAND_EN 1
#define BSP_CFG_NAND_ROOTFS_EN 1
+
/*********************************************************************************************************
SD 相关配置
*********************************************************************************************************/
+
#define BSP_CFG_SD_ROOTFS_EN 0
+
/*********************************************************************************************************
串口相关配置
*********************************************************************************************************/
+
#define BSP_CFG_STD_FILE "/dev/ttyS0"
#endif /* CONFIG_EVMAM335X_H_ */
diff --git a/SylixOS/bsp/ti/config_evmskAM335x.h b/SylixOS/bsp/ti/config_evmskAM335x.h
index 488a1b5..c4445f5 100644
--- a/SylixOS/bsp/ti/config_evmskAM335x.h
+++ b/SylixOS/bsp/ti/config_evmskAM335x.h
@@ -20,44 +20,48 @@
*********************************************************************************************************/
#ifndef CONFIG_EVMSKAM335X_H_
#define CONFIG_EVMSKAM335X_H_
+
/*********************************************************************************************************
名字配置
*********************************************************************************************************/
+
#define BSP_CFG_PLATFORM_NAME "evmskAM335x"
+
/*********************************************************************************************************
外部晶振时钟配置
*********************************************************************************************************/
+
#define CLK_EXT_CRYSTAL_SPEED (24 * 1000 * 1000)
+
/*********************************************************************************************************
ROM RAM 相关配置
*********************************************************************************************************/
+
#define BSP_CFG_ROM_BASE 0x40000000
#define BSP_CFG_ROM_SIZE (176 * 1024)
#define BSP_CFG_RAM_BASE 0x80000000
#define BSP_CFG_RAM_SIZE (256 * 1024 * 1024)
-#define BSP_CFG_TEXT_SIZE (6 * LW_CFG_MB_SIZE)
-#define BSP_CFG_DATA_SIZE (70 * LW_CFG_MB_SIZE)
+#define BSP_CFG_TEXT_SIZE (6 * 1024 * 1024)
+#define BSP_CFG_DATA_SIZE (70 * 1024 * 1024)
+
+#define BSP_CFG_DMA_SIZE (16 * 1024 * 1024)
+#define BSP_CFG_APP_SIZE (164 * 1024 * 1024)
+
+#define BSP_CFG_BOOT_STACK_SIZE (128 * 1024)
-#define BSP_CFG_DMA_SIZE (16 * LW_CFG_MB_SIZE)
-#define BSP_CFG_APP_SIZE (164 * LW_CFG_MB_SIZE)
-/*********************************************************************************************************
- 内核堆与系统堆相关配置
-*********************************************************************************************************/
-#define BSP_CFG_KERNSYS_HEAP_SIZE (64 * LW_CFG_MB_SIZE)
-/*********************************************************************************************************
- 堆栈相关配置
-*********************************************************************************************************/
-#define BSP_CFG_STACK_TOP_ADDR (BSP_CFG_RAM_BASE + BSP_CFG_TEXT_SIZE + BSP_CFG_DATA_SIZE)
/*********************************************************************************************************
网口相关配置
*********************************************************************************************************/
+
#define CPSW_DUAL_MAC_MODE
#undef CPSW_SWITCH_CONFIG
+
/*********************************************************************************************************
ADC 触摸屏相关配置
*********************************************************************************************************/
+
#define BSP_CFG_ADC_TOUCH_EN 1
#define BSP_CFG_ADC_TOUCH_START_SAMPLES_NUM 5
@@ -66,19 +70,25 @@
#define BSP_CFG_ADC_TOUCH_X_FILTER_MIN 5
#define BSP_CFG_ADC_TOUCH_Y_FILTER_MIN 5
+
/*********************************************************************************************************
NAND 相关配置
*********************************************************************************************************/
+
#define BSP_CFG_NAND_EN 0
#define BSP_CFG_NAND_ROOTFS_EN 0
+
/*********************************************************************************************************
SD 相关配置
*********************************************************************************************************/
+
#define BSP_CFG_SD_ROOTFS_EN 1
+
/*********************************************************************************************************
串口相关配置
*********************************************************************************************************/
+
#define BSP_CFG_STD_FILE "/dev/ttyS0"
#endif /* CONFIG_EVMSKAM335X_H_ */
diff --git a/SylixOS/driver/netif/am335x_cpsw.c b/SylixOS/driver/netif/am335x_cpsw.c
index cbabb42..2d6f5a7 100644
--- a/SylixOS/driver/netif/am335x_cpsw.c
+++ b/SylixOS/driver/netif/am335x_cpsw.c
@@ -29,7 +29,11 @@
/*********************************************************************************************************
外部函数
*********************************************************************************************************/
-extern int netio_main(int argc, char **argv);
+extern int netio_main(int argc, char **argv);
+extern ULONG API_VmmMap(PVOID pvVirtualAddr,
+ PVOID pvPhysicalAddr,
+ size_t stSize,
+ ULONG ulFlag);
/*********************************************************************************************************
全局变量
*********************************************************************************************************/
diff --git a/SylixOS/driver/netif/netio/netio.c b/SylixOS/driver/netif/netio/netio.c
index b55cc9b..db67ba0 100644
--- a/SylixOS/driver/netif/netio/netio.c
+++ b/SylixOS/driver/netif/netio/netio.c
@@ -5,6 +5,7 @@
*/
#ifdef SYLIXOS
+#include <sys/compiler.h>
#define UNIX
#define StartTimer __StartTimer
#define StopTimer __StopTimer
@@ -20,7 +21,7 @@
*/
#endif
-static char *rcsid =
+static __unused char *rcsid =
"$Id: netio.c,v 1.32 2012/11/22 16:47:24 Rommel Exp Rommel $";
static char *rcsrev = "$Revision: 1.32 $";
@@ -555,6 +556,9 @@ void print_result(long long nData, long nTime)
nResult = (double) nData / nTime / 1024 / 1024;
printf(" %0.3f GByte/s", nResult);
break;
+
+ default:
+ break;
}
}
@@ -787,7 +791,7 @@ void TCP_Bench(void *arg)
int i;
struct sockaddr_in sa_server, sa_client;
int server;
- int rc;
+ int rc = 0;
int nByte;
if ((cBuffer = InitBuffer(TMAXSIZE)) == NULL)
@@ -815,7 +819,7 @@ void TCP_Bench(void *arg)
psock_errno("bind()");
soclose(server);
free(cBuffer);
- return THREADRESULT;
+ return;
}
sa_server.sin_family = AF_INET;
@@ -1221,7 +1225,7 @@ void UDP_Bench(void *arg)
psock_errno("bind(STREAM)");
soclose(server);
free(cBuffer);
- return THREADRESULT;
+ return;
}
sa_server.sin_family = AF_INET;
@@ -1381,7 +1385,7 @@ void usage(void)
int main(int argc, char **argv)
{
- char szVersion[32], *szName = 0, *szLocal = 0, *szEnd;
+ __unused char szVersion[32], *szName = 0, *szLocal = 0, *szEnd;
int option;
struct hostent *host;
long nSize;
diff --git a/SylixOS/user/main.c b/SylixOS/user/main.c
index 3785eeb..27bb7a0 100644
--- a/SylixOS/user/main.c
+++ b/SylixOS/user/main.c
@@ -14,25 +14,5 @@ int t_main (void)
Lw_TShell_Create(STDOUT_FILENO, LW_OPTION_TSHELL_PROMPT_FULL | LW_OPTION_TSHELL_VT100);
- //beepTestStart();
-
- //lcdTouchTestStart();
-
- //ecapTestStart();
-
- //dmaTestStart();
-
- //gpioTestStart();
-
- //spiTestStart();
-
- //sioTestStart();
-
- //ossTestStart();
-
- //adcTestStart();
-
- //canTestStart();
-
return (0);
}
diff --git a/SylixOSBSP.ld b/SylixOSBSP.ld
index 3d47b10..818fae2 100644
--- a/SylixOSBSP.ld
+++ b/SylixOSBSP.ld
@@ -1,45 +1,36 @@
-/****************************************Copyright (c)****************************************************
-** Beijin ACOINFO electronics Co.,LTD.
+/*********************************************************************************************************
+**
+** 中国软件开源组织
+**
+** 嵌入式实时操作系统
+**
+** SylixOS(TM)
**
-** http://www.sylixos.com
+** Copyright All Rights Reserved
**
-**--------------File Info---------------------------------------------------------------------------------
-** File name: SylixOSBSP.ld
-** Last modified Date: 2009-01-04
-** Last Version: 0.01
-** Descriptions: bspam335x Linker Script File
+**--------------文件信息--------------------------------------------------------------------------------
**
-**--------------------------------------------------------------------------------------------------------
-** Created by: Han.hui
-** Created date: 2009-01-04
-** Version: 0.01
-** Descriptions: 创建版本
+** 文 件 名: SylixOSBSP.ld
**
-**--------------------------------------------------------------------------------------------------------
-** Modified by:
-** Modified date:
-** Version:
-** Descriptions:
+** 创 建 人: Han.hui (韩辉)
**
+** 文件创建日期: 2009-01-04
+**
+** 描 述: bspam335x 链接脚本文件
*********************************************************************************************************/
/*********************************************************************************************************
- 链接配置
+ 包含配置文件
*********************************************************************************************************/
-STACK_SIZE = 0x10000; /* stack size config */
-OUTPUT_FORMAT(elf32-littlearm) /* binary file format */
-OUTPUT_ARCH(ARM) /* target select */
+INCLUDE "config.lds"
/*********************************************************************************************************
- 内存布局定义
+ 链接配置
*********************************************************************************************************/
-MEMORY
-{
- ROM (rx) : ORIGIN = 0x00020000, LENGTH = 0x0000C000
- RAM (rw) : ORIGIN = 0x80000000, LENGTH = 0x20000000
-}
+OUTPUT_FORMAT(elf32-littlearm) /* binary file format */
+OUTPUT_ARCH(ARM) /* target select */
/*********************************************************************************************************
段定义
@@ -49,36 +40,33 @@ SECTIONS
{
/*********************************************************************************************************
- 代码段 LMA == VMA == 0x80000000
+ 代码段 LMA == VMA == ORIGIN(TEXT)
*********************************************************************************************************/
.text : {
*(.vector)
*(.text)
*(.text.*) /* cpp namespace function */
- *(.romrun) /* rom中必须的函数 */
+ *(.romrun) /* ROM 中必须的函数 */
*(.rodata) /* read-only data (constants) */
*(.rodata*)
*(.glue_7)
*(.glue_7t)
- } > RAM
+ } > TEXT
/*********************************************************************************************************
.ARM.exidx is sorted, so has to go in its own output section.
*********************************************************************************************************/
- . = ALIGN(4);
- __exidx_start = .;
- PROVIDE(__exidx_start = __exidx_start);
- .ARM.exidx :
- {
- /* __exidx_start = .; */
+ .ARM.exidx : {
+ . = ALIGN(4);
+ PROVIDE(__exidx_start = .);
+
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
- /* __exidx_end = .; */
- } > RAM
- . = ALIGN(4);
- __exidx_end = .;
- PROVIDE(__exidx_end = __exidx_end);
+
+ . = ALIGN(4);
+ PROVIDE(__exidx_end = .);
+ } > TEXT
/*********************************************************************************************************
C++ 全局对象构造与析构函数表
@@ -87,49 +75,51 @@ SECTIONS
这里的 LMA 和 VMA 相同, 如果放在 .data 之后, LMA 与 VMA 不同, 则需要启动程序从装载区搬运到运行区
*********************************************************************************************************/
- . = ALIGN(4);
- .ctors :
- {
+ .ctors : {
+ . = ALIGN(4);
+
KEEP (*cppRtBegin*.o(.ctors))
KEEP (*(.preinit_array))
KEEP (*(.init_array))
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
KEEP (*cppRtEnd*.o(.ctors))
- }
+ } > TEXT
- .dtors :
- {
+ .dtors : {
+ . = ALIGN(4);
+
KEEP (*cppRtBegin*.o(.dtors))
KEEP (*(.fini_array))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
KEEP (*cppRtEnd*.o(.dtors))
- }
+ } > TEXT
/*********************************************************************************************************
.data 段数据初始化内容放在这里
*********************************************************************************************************/
- _etext = . ;
- PROVIDE (etext = .);
+ . = ALIGN(4);
+ PROVIDE (_etext = .);
/*********************************************************************************************************
数据段
- .data 段运行地址 VMA 为 0x80600000 装载地址 LMA 为 _etext.
- 连接器会将 .data 的初始化数据放在 _etext 的地方, 然后启动程序必须将 _etext 的内容搬运到
- VMA 0x80600000 中. 大小等于 SIZEOF(.data)
+ .data 段运行地址 VMA 为 ORIGIN(DATA), 装载地址 LMA 为 _etext,
+ 连接器会将 .data 的初始化数据放在 _etext 的地方, 然后启动程序必须将 _etext 的内容搬运到
+ VMA ORIGIN(DATA) 中. 大小等于 SIZEOF(.data)
*********************************************************************************************************/
- .data 0x80600000:AT (_etext) {
+ .data ORIGIN(DATA) : AT (_etext) {
. = ALIGN(4);
- _data = . ;
- *(.data)
- } > RAM
-
- _edata = ADDR(.data) + SIZEOF(.data);
- PROVIDE (edata = _edata);
+ PROVIDE (_data = .);
+
+ *(.data)
+
+ . = ALIGN(4);
+ PROVIDE (_edata = .);
+ } > DATA
/*********************************************************************************************************
清零段
@@ -141,22 +131,46 @@ SECTIONS
.bss (NOLOAD) : {
. = ALIGN(4);
*(.noinit)
+
+ . = ALIGN(4);
PROVIDE (__bss_start = .);
+
*(.bss)
- *(COMMON)
+
. = ALIGN(4);
+ *(COMMON)
+
. = ALIGN(4);
PROVIDE (__bss_end = .);
- } > RAM
+ } > DATA
/*********************************************************************************************************
- 堆栈段段 (SylixOS 运行时不使用)
+ 栈段
+
+ SylixOS 启动时使用,异常入口也使用
+*********************************************************************************************************/
+
+ .stack (NOLOAD) : {
+ . = ALIGN(8);
+ PROVIDE (__stack_start = .);
+
+ . += BOOT_STACK_SIZE;
+
+ . = ALIGN(8);
+ PROVIDE (__stack_end = .);
+ } > DATA
+
+/*********************************************************************************************************
+ 内核堆段
*********************************************************************************************************/
- .stack : {
- . += STACK_SIZE;
- PROVIDE (_stack = .);
- } > RAM
+ .heap (NOLOAD) : {
+ . = ALIGN(8);
+ PROVIDE (__heap_start = .);
+
+ __heap_end = ORIGIN(DATA) + LENGTH(DATA) - 128;
+ PROVIDE (__heap_end = .);
+ } > DATA
/*********************************************************************************************************
Stabs debugging sections
@@ -219,6 +233,5 @@ SECTIONS
}
/*********************************************************************************************************
- END
+ END
*********************************************************************************************************/
-
diff --git a/config.ld b/config.ld
new file mode 100644
index 0000000..8789526
--- /dev/null
+++ b/config.ld
@@ -0,0 +1,38 @@
+/*********************************************************************************************************
+**
+** 中国软件开源组织
+**
+** 嵌入式实时操作系统
+**
+** SylixOS(TM)
+**
+** Copyright All Rights Reserved
+**
+**--------------文件信息--------------------------------------------------------------------------------
+**
+** 文 件 名: config.ld
+**
+** 创 建 人: RealEvo-IDE
+**
+** 文件创建日期: 2016 年05 月30 日
+**
+** 描 述: 本文件由 RealEvo-IDE 生成,用于配置链接脚本
+*********************************************************************************************************/
+
+#include "SylixOS/bsp/config.h"
+
+/*********************************************************************************************************
+ 内存布局定义
+*********************************************************************************************************/
+
+MEMORY
+{
+ TEXT (rx) : ORIGIN = BSP_CFG_RAM_BASE, LENGTH = BSP_CFG_TEXT_SIZE
+ DATA (rw) : ORIGIN = BSP_CFG_RAM_BASE + (BSP_CFG_TEXT_SIZE), LENGTH = BSP_CFG_DATA_SIZE
+}
+
+BOOT_STACK_SIZE = BSP_CFG_BOOT_STACK_SIZE;
+
+/*********************************************************************************************************
+ END
+*********************************************************************************************************/
diff --git a/config.lds b/config.lds
new file mode 100644
index 0000000..77ccb49
--- /dev/null
+++ b/config.lds
@@ -0,0 +1,6 @@
+MEMORY
+{
+ TEXT (rx) : ORIGIN = 0x80000000, LENGTH = (6 * 1024 * 1024)
+ DATA (rw) : ORIGIN = 0x80000000 + ((6 * 1024 * 1024)), LENGTH = (122 * 1024 * 1024)
+}
+BOOT_STACK_SIZE = (128 * 1024);
diff --git a/config.mk b/config.mk
index ee0bb3c..4ba7098 100644
--- a/config.mk
+++ b/config.mk
@@ -14,7 +14,7 @@
#
# 创 建 人: RealEvo-IDE
#
-# 文件创建日期: 2015 年12 月06 日
+# 文件创建日期: 2016 年06 月06 日
#
# 描 述: 本文件由 RealEvo-IDE 生成,用于配置 Makefile 功能,请勿手动修改
#*********************************************************************************************************