mirror of https://github.com/FOME-Tech/openblt.git
- added uIP to LM3S demo programs to test bootloader reactivation. still needs some improvements.
git-svn-id: https://svn.code.sf.net/p/openblt/code/trunk@92 5dc33758-31d5-4daf-9ae8-b24bf3d40d73
This commit is contained in:
parent
677ebf8a15
commit
da0194b0ac
Binary file not shown.
Binary file not shown.
|
@ -283,9 +283,43 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
// we now have a socket connected to the target. next attempt to connect to the target
|
||||||
|
// via XCP.
|
||||||
|
MbiCallbackOnLog('Starting the programming session. t='+TimeToStr(Time));
|
||||||
|
if not loader.StartProgrammingSession then
|
||||||
|
begin
|
||||||
|
// note that a running user program might have received the connect command and
|
||||||
|
// performed a software reset to activate the bootloader. this causes a reconfigu-
|
||||||
|
// ration of the ethernet controller so we need to disconnect the socket here and
|
||||||
|
// wait for it to reconnect.
|
||||||
|
MbiCallbackOnInfo('No response from target. Disconnecting TCP/IP socket.');
|
||||||
|
MbiCallbackOnLog('No response from target. Disconnecting TCP/IP socket. t='+TimeToStr(Time));
|
||||||
|
loader.Disconnect;
|
||||||
|
// connect the transport layer
|
||||||
|
MbiCallbackOnInfo('Connecting to target via TCP/IP.');
|
||||||
|
MbiCallbackOnLog('Connecting to target via TCP/IP. t='+TimeToStr(Time));
|
||||||
|
Application.ProcessMessages;
|
||||||
|
if not loader.Connect then
|
||||||
|
begin
|
||||||
|
// update the user info
|
||||||
|
MbiCallbackOnInfo('Could not connect via TCP/IP. Retrying. Reset your target if this takes a long time.');
|
||||||
|
MbiCallbackOnLog('Transport layer connection failed. Check the configured IP address and port. t='+TimeToStr(Time));
|
||||||
|
MbiCallbackOnLog('Retrying transport layer connection. Reset your target if this takes a long time. t='+TimeToStr(Time));
|
||||||
|
Application.ProcessMessages;
|
||||||
|
// continuously try to connect the transport layer
|
||||||
|
while not loader.Connect do
|
||||||
|
begin
|
||||||
|
Application.ProcessMessages;
|
||||||
|
Sleep(5);
|
||||||
|
if stopRequest then
|
||||||
|
begin
|
||||||
|
MbiCallbackOnError('Transport layer connection cancelled by user.');
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
//---------------- start the programming session --------------------------------------
|
//---------------- start the programming session --------------------------------------
|
||||||
MbiCallbackOnLog('Starting the programming session. t='+TimeToStr(Time));
|
MbiCallbackOnLog('Starting the programming session. t='+TimeToStr(Time));
|
||||||
|
|
||||||
// try initial connect via XCP
|
// try initial connect via XCP
|
||||||
if not loader.StartProgrammingSession then
|
if not loader.StartProgrammingSession then
|
||||||
begin
|
begin
|
||||||
|
@ -305,6 +339,7 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
// still here so programming session was started
|
// still here so programming session was started
|
||||||
MbiCallbackOnLog('Programming session started. t='+TimeToStr(Time));
|
MbiCallbackOnLog('Programming session started. t='+TimeToStr(Time));
|
||||||
|
|
|
@ -260,16 +260,17 @@ begin
|
||||||
timer.Enabled := False;
|
timer.Enabled := False;
|
||||||
|
|
||||||
// connect the transport layer
|
// connect the transport layer
|
||||||
MbiCallbackOnInfo('Connecting the transport layer.');
|
MbiCallbackOnInfo('Connecting to target via TCP/IP.');
|
||||||
MbiCallbackOnLog('Connecting the transport layer. t='+TimeToStr(Time));
|
MbiCallbackOnLog('Connecting to target via TCP/IP. t='+TimeToStr(Time));
|
||||||
Application.ProcessMessages;
|
Application.ProcessMessages;
|
||||||
if not loader.Connect then
|
if not loader.Connect then
|
||||||
begin
|
begin
|
||||||
// update the user info
|
// update the user info
|
||||||
MbiCallbackOnInfo('Could not connect to transport layer. Automatically retrying...');
|
MbiCallbackOnInfo('Could not connect via TCP/IP. Retrying. Reset your target if this takes a long time.');
|
||||||
MbiCallbackOnLog('Transport layer connection failed. Automatically retrying. t='+TimeToStr(Time));
|
MbiCallbackOnLog('Transport layer connection failed. Check the configured IP address and port. t='+TimeToStr(Time));
|
||||||
|
MbiCallbackOnLog('Retrying transport layer connection. Reset your target if this takes a long time. t='+TimeToStr(Time));
|
||||||
Application.ProcessMessages;
|
Application.ProcessMessages;
|
||||||
// continuously try to coonect the transport layer
|
// continuously try to connect the transport layer
|
||||||
while not loader.Connect do
|
while not loader.Connect do
|
||||||
begin
|
begin
|
||||||
Application.ProcessMessages;
|
Application.ProcessMessages;
|
||||||
|
|
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -42,7 +42,7 @@
|
||||||
** \return none.
|
** \return none.
|
||||||
**
|
**
|
||||||
****************************************************************************************/
|
****************************************************************************************/
|
||||||
static void BootActivate(void)
|
void BootActivate(void)
|
||||||
{
|
{
|
||||||
/* perform software reset to activate the bootoader again */
|
/* perform software reset to activate the bootoader again */
|
||||||
SysCtlReset();
|
SysCtlReset();
|
||||||
|
|
|
@ -38,6 +38,7 @@
|
||||||
****************************************************************************************/
|
****************************************************************************************/
|
||||||
void BootComInit(void);
|
void BootComInit(void);
|
||||||
void BootComCheckActivationRequest(void);
|
void BootComCheckActivationRequest(void);
|
||||||
|
void BootActivate(void);
|
||||||
|
|
||||||
|
|
||||||
#endif /* BOOT_H */
|
#endif /* BOOT_H */
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
#include "irq.h" /* IRQ driver */
|
#include "irq.h" /* IRQ driver */
|
||||||
#include "led.h" /* LED driver */
|
#include "led.h" /* LED driver */
|
||||||
#include "time.h" /* Timer driver */
|
#include "time.h" /* Timer driver */
|
||||||
|
#include "net.h" /* TCP/IP server application */
|
||||||
#include "inc/hw_ints.h"
|
#include "inc/hw_ints.h"
|
||||||
#include "inc/hw_memmap.h"
|
#include "inc/hw_memmap.h"
|
||||||
#include "inc/hw_nvic.h"
|
#include "inc/hw_nvic.h"
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
<!DOCTYPE CrossStudio_Project_File>
|
<!DOCTYPE CrossStudio_Project_File>
|
||||||
<solution Name="lm3s6965_crossworks" target="8" version="2">
|
<solution Name="lm3s6965_crossworks" target="8" version="2">
|
||||||
<project Name="demoprog_ek_lm3s6965">
|
<project Name="demoprog_ek_lm3s6965">
|
||||||
<configuration Name="Common" Placement="Flash" Target="LM3S6965" arm_architecture="v7M" arm_core_type="Cortex-M3" arm_gcc_target="arm-unknown-eabi" arm_linker_heap_size="128" arm_linker_process_stack_size="0" arm_linker_stack_size="128" arm_long_calls="Yes" arm_simulator_memory_simulation_filename="$(TargetsDir)/LM3S/LM3SSimulatorMemory.dll" arm_simulator_memory_simulation_parameter="0x40000;0x10000" arm_target_debug_interface_type="ADIv5" arm_target_loader_applicable_loaders="Flash" arm_target_loader_default_loader="Flash" arm_use_gcc_libraries="Yes" build_intermediate_directory="$(Configuration)/../../obj" build_output_directory="$(ProjectDir)/../bin" c_preprocessor_definitions="gcc" c_user_include_directories="$(ProjectDir)/..;$(ProjectDir)/../lib;$(ProjectDir)/../lib/inc;$(ProjectDir)/../lib/driverlib" gcc_entry_point="reset_handler" gcc_optimization_level="None" linker_additional_files="" linker_memory_map_file="$(TargetsDir)/LM3S/LM3S6965_MemoryMap.xml" linker_output_format="srec" linker_printf_width_precision_supported="No" linker_scanf_fmt_level="int" linker_section_placement_file="$(StudioDir)/targets/Cortex_M/flash_placement.xml" project_directory="" project_type="Executable" property_groups_file_path="$(TargetsDir)/LM3S/propertyGroups.xml" target_get_partname_script="GetPartName()" target_reset_script="Reset()"/>
|
<configuration Name="Common" Placement="Flash" Target="LM3S6965" arm_architecture="v7M" arm_core_type="Cortex-M3" arm_gcc_target="arm-unknown-eabi" arm_linker_heap_size="128" arm_linker_process_stack_size="0" arm_linker_stack_size="128" arm_long_calls="Yes" arm_simulator_memory_simulation_filename="$(TargetsDir)/LM3S/LM3SSimulatorMemory.dll" arm_simulator_memory_simulation_parameter="0x40000;0x10000" arm_target_debug_interface_type="ADIv5" arm_target_loader_applicable_loaders="Flash" arm_target_loader_default_loader="Flash" arm_use_gcc_libraries="Yes" build_intermediate_directory="$(Configuration)/../../obj" build_output_directory="$(ProjectDir)/../bin" c_preprocessor_definitions="gcc" c_user_include_directories="$(ProjectDir)/..;$(ProjectDir)/../lib;$(ProjectDir)/../lib/inc;$(ProjectDir)/../lib/uip;$(ProjectDir)/../lib/driverlib;$(ProjectDir)/../../../../Source/third_party/uip/uip" gcc_entry_point="reset_handler" gcc_optimization_level="None" linker_additional_files="" linker_memory_map_file="$(TargetsDir)/LM3S/LM3S6965_MemoryMap.xml" linker_output_format="srec" linker_printf_width_precision_supported="No" linker_scanf_fmt_level="int" linker_section_placement_file="$(StudioDir)/targets/Cortex_M/flash_placement.xml" project_directory="" project_type="Executable" property_groups_file_path="$(TargetsDir)/LM3S/propertyGroups.xml" target_get_partname_script="GetPartName()" target_reset_script="Reset()"/>
|
||||||
<configuration Name="Flash" arm_target_flash_loader_file_path="$(TargetsDir)/LM3S/Release/Loader.elf" arm_target_flash_loader_type="LIBMEM RPC Loader" target_reset_script="FLASHReset()"/>
|
<configuration Name="Flash" arm_target_flash_loader_file_path="$(TargetsDir)/LM3S/Release/Loader.elf" arm_target_flash_loader_type="LIBMEM RPC Loader" target_reset_script="FLASHReset()"/>
|
||||||
<folder Name="Source Files">
|
<folder Name="Source Files">
|
||||||
<configuration Name="Common" filter="c;cpp;cxx;cc;h;s;asm;inc"/>
|
<configuration Name="Common" filter="c;cpp;cxx;cc;h;s;asm;inc"/>
|
||||||
<folder Name="Demo">
|
<folder Name="Demo">
|
||||||
<folder Name="Prog">
|
<folder Name="Prog" file_name="">
|
||||||
<file file_name="../boot.c"/>
|
<file file_name="../boot.c"/>
|
||||||
<file file_name="../boot.h"/>
|
<file file_name="../boot.h"/>
|
||||||
<file file_name="../cstart.s"/>
|
<file file_name="../cstart.s"/>
|
||||||
|
@ -19,6 +19,29 @@
|
||||||
<file file_name="../vectors.c"/>
|
<file file_name="../vectors.c"/>
|
||||||
<file file_name="../time.c"/>
|
<file file_name="../time.c"/>
|
||||||
<file file_name="../time.h"/>
|
<file file_name="../time.h"/>
|
||||||
|
<file file_name="../net.c"/>
|
||||||
|
<file file_name="../net.h"/>
|
||||||
|
</folder>
|
||||||
|
<folder Name="third_party" file_name="">
|
||||||
|
<file file_name="../../../../Source/third_party/uip/uip/clock.h"/>
|
||||||
|
<file file_name="../../../../Source/third_party/uip/uip/lc.h"/>
|
||||||
|
<file file_name="../../../../Source/third_party/uip/uip/lc-addrlabels.h"/>
|
||||||
|
<file file_name="../../../../Source/third_party/uip/uip/lc-switch.h"/>
|
||||||
|
<file file_name="../../../../Source/third_party/uip/uip/pt.h"/>
|
||||||
|
<file file_name="../../../../Source/third_party/uip/uip/uip.c"/>
|
||||||
|
<file file_name="../../../../Source/third_party/uip/uip/uip.h"/>
|
||||||
|
<file file_name="../../../../Source/third_party/uip/uip/uip_arch.h"/>
|
||||||
|
<file file_name="../../../../Source/third_party/uip/uip/uip_arp.c"/>
|
||||||
|
<file file_name="../../../../Source/third_party/uip/uip/uip_arp.h"/>
|
||||||
|
<file file_name="../../../../Source/third_party/uip/uip/uip_timer.c"/>
|
||||||
|
<file file_name="../../../../Source/third_party/uip/uip/uip_timer.h"/>
|
||||||
|
<file file_name="../../../../Source/third_party/uip/uip/uip-fw.c"/>
|
||||||
|
<file file_name="../../../../Source/third_party/uip/uip/uip-fw.h"/>
|
||||||
|
<file file_name="../../../../Source/third_party/uip/uip/uiplib.c"/>
|
||||||
|
<file file_name="../../../../Source/third_party/uip/uip/uiplib.h"/>
|
||||||
|
<file file_name="../../../../Source/third_party/uip/uip/uip-neighbor.h"/>
|
||||||
|
<file file_name="../../../../Source/third_party/uip/uip/uipopt.h"/>
|
||||||
|
<file file_name="../../../../Source/third_party/uip/uip/uip-split.h"/>
|
||||||
</folder>
|
</folder>
|
||||||
</folder>
|
</folder>
|
||||||
</folder>
|
</folder>
|
||||||
|
@ -107,6 +130,13 @@
|
||||||
<file file_name="../lib/driverlib/watchdog.c"/>
|
<file file_name="../lib/driverlib/watchdog.c"/>
|
||||||
<file file_name="../lib/driverlib/watchdog.h"/>
|
<file file_name="../lib/driverlib/watchdog.h"/>
|
||||||
</folder>
|
</folder>
|
||||||
|
<folder Name="uip" file_name="">
|
||||||
|
<file file_name="../lib/uip/clock-arch.c"/>
|
||||||
|
<file file_name="../lib/uip/clock-arch.h"/>
|
||||||
|
<file file_name="../lib/uip/netdev.c"/>
|
||||||
|
<file file_name="../lib/uip/netdev.h"/>
|
||||||
|
<file file_name="../lib/uip/uip-conf.h"/>
|
||||||
|
</folder>
|
||||||
</folder>
|
</folder>
|
||||||
</project>
|
</project>
|
||||||
<configuration Name="THUMB Debug" inherited_configurations="THUMB;Debug"/>
|
<configuration Name="THUMB Debug" inherited_configurations="THUMB;Debug"/>
|
||||||
|
|
|
@ -51,8 +51,10 @@
|
||||||
<Watches active="0" update="Never" />
|
<Watches active="0" update="Never" />
|
||||||
</Watch4>
|
</Watch4>
|
||||||
<Files>
|
<Files>
|
||||||
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="0" debugPath="C:\Work\software\OpenBLT\Target\Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Prog\main.c" y="0" path="C:\Work\software\OpenBLT\Target\Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Prog\main.c" left="18" selected="0" name="unnamed" top="0" />
|
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="0" debugPath="C:\Work\software\OpenBLT\Target\Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Prog\main.c" y="0" path="C:\Work\software\OpenBLT\Target\Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Prog\main.c" left="0" selected="0" name="unnamed" top="0" />
|
||||||
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="0" debugPath="C:\Work\software\OpenBLT\Target\Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Prog\led.c" y="44" path="C:\Work\software\OpenBLT\Target\Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Prog\led.c" left="0" selected="1" name="unnamed" top="37" />
|
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="55" debugPath="C:\Work\software\OpenBLT\Target\Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Prog\led.c" y="1" path="C:\Work\software\OpenBLT\Target\Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Prog\led.c" left="0" selected="0" name="unnamed" top="0" />
|
||||||
|
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="17" debugPath="C:\Work\software\OpenBLT\Target\Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Prog\net.c" y="8" path="C:\Work\software\OpenBLT\Target\Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Prog\net.c" left="0" selected="1" name="unnamed" top="55" />
|
||||||
|
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="24" debugPath="C:\Work\software\OpenBLT\Target\Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Prog\net.h" y="8" path="C:\Work\software\OpenBLT\Target\Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Prog\net.h" left="0" selected="0" name="unnamed" top="0" />
|
||||||
</Files>
|
</Files>
|
||||||
<ARMCrossStudioWindow activeProject="demoprog_ek_lm3s6965" autoConnectTarget="Texas Instruments ICDI" debugSearchFileMap="" fileDialogInitialDirectory="D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Prog" fileDialogDefaultFilter="*.c" autoConnectCapabilities="388991" debugSearchPath="" buildConfiguration="THUMB Debug" />
|
<ARMCrossStudioWindow activeProject="demoprog_ek_lm3s6965" autoConnectTarget="Texas Instruments ICDI" debugSearchFileMap="" fileDialogInitialDirectory="C:\Work\software\OpenBLT\Target\Source\third_party\uip\uip" fileDialogDefaultFilter="" autoConnectCapabilities="388991" debugSearchPath="" buildConfiguration="THUMB Debug" />
|
||||||
</session>
|
</session>
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2006, Swedish Institute of Computer Science.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* 3. Neither the name of the Institute nor the names of its contributors
|
||||||
|
* may be used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
* SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This file is part of the uIP TCP/IP stack
|
||||||
|
*
|
||||||
|
* $Id: clock-arch.c,v 1.2 2006/06/12 08:00:31 adam Exp $
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file
|
||||||
|
* Implementation of architecture-specific clock functionality
|
||||||
|
* \author
|
||||||
|
* Adam Dunkels <adam@sics.se>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "header.h" /* generic header */
|
||||||
|
#include "clock-arch.h"
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
clock_time_t
|
||||||
|
clock_time(void)
|
||||||
|
{
|
||||||
|
return (clock_time_t)TimeGet();
|
||||||
|
}
|
||||||
|
/*---------------------------------------------------------------------------*/
|
|
@ -0,0 +1,40 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2006, Swedish Institute of Computer Science.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* 3. Neither the name of the Institute nor the names of its contributors
|
||||||
|
* may be used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
* SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This file is part of the uIP TCP/IP stack
|
||||||
|
*
|
||||||
|
* $Id: clock-arch.h,v 1.2 2006/06/12 08:00:31 adam Exp $
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __CLOCK_ARCH_H__
|
||||||
|
#define __CLOCK_ARCH_H__
|
||||||
|
|
||||||
|
typedef int clock_time_t;
|
||||||
|
#define CLOCK_CONF_SECOND 1000
|
||||||
|
|
||||||
|
#endif /* __CLOCK_ARCH_H__ */
|
|
@ -0,0 +1,169 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2001, Swedish Institute of Computer Science.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* 3. Neither the name of the Institute nor the names of its contributors
|
||||||
|
* may be used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
* SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* Author: Adam Dunkels <adam@sics.se>
|
||||||
|
*
|
||||||
|
* $Id: netdev.c,v 1.8 2006/06/07 08:39:58 adam Exp $
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
#include "header.h" /* generic header */
|
||||||
|
#include "uip.h"
|
||||||
|
#include "uip_arp.h"
|
||||||
|
#include "inc/hw_memmap.h"
|
||||||
|
#include "inc/hw_types.h"
|
||||||
|
#include "inc/hw_ethernet.h"
|
||||||
|
#include "driverlib/sysctl.h"
|
||||||
|
#include "driverlib/gpio.h"
|
||||||
|
#include "driverlib/ethernet.h"
|
||||||
|
#include "driverlib/flash.h"
|
||||||
|
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
#define NETDEV_LINKUP_TIMEOUT_MS (5000)
|
||||||
|
|
||||||
|
#define NETDEV_DEFAULT_MACADDR0 (0x08)
|
||||||
|
#define NETDEV_DEFAULT_MACADDR1 (0x00)
|
||||||
|
#define NETDEV_DEFAULT_MACADDR2 (0x27)
|
||||||
|
#define NETDEV_DEFAULT_MACADDR3 (0x69)
|
||||||
|
#define NETDEV_DEFAULT_MACADDR4 (0x5B)
|
||||||
|
#define NETDEV_DEFAULT_MACADDR5 (0x45)
|
||||||
|
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
void netdev_init(void)
|
||||||
|
{
|
||||||
|
unsigned long ulTemp;
|
||||||
|
unsigned long ulLinkTimeOut;
|
||||||
|
|
||||||
|
/* enable and reset the ethernet controller. */
|
||||||
|
SysCtlPeripheralEnable(SYSCTL_PERIPH_ETH);
|
||||||
|
SysCtlPeripheralReset(SYSCTL_PERIPH_ETH);
|
||||||
|
/* enable port F for ethernet LEDs.
|
||||||
|
* LED0 Bit 3 Output
|
||||||
|
* LED1 Bit 2 Output
|
||||||
|
*/
|
||||||
|
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
|
||||||
|
GPIOPinTypeEthernetLED(GPIO_PORTF_BASE, GPIO_PIN_2 | GPIO_PIN_3);
|
||||||
|
/* intialize the ethernet controller and disable all ethernet controller
|
||||||
|
* interrupt sources.
|
||||||
|
*/
|
||||||
|
EthernetIntDisable(ETH_BASE, (ETH_INT_PHY | ETH_INT_MDIO | ETH_INT_RXER |
|
||||||
|
ETH_INT_RXOF | ETH_INT_TX | ETH_INT_TXER | ETH_INT_RX));
|
||||||
|
ulTemp = EthernetIntStatus(ETH_BASE, false);
|
||||||
|
EthernetIntClear(ETH_BASE, ulTemp);
|
||||||
|
|
||||||
|
/* initialize the ethernet controller for operation. */
|
||||||
|
EthernetInitExpClk(ETH_BASE, SysCtlClockGet());
|
||||||
|
/* configure the ethernet controller for normal operation.
|
||||||
|
* - Full Duplex
|
||||||
|
* - TX CRC Auto Generation
|
||||||
|
* - TX Padding Enabled
|
||||||
|
*/
|
||||||
|
EthernetConfigSet(ETH_BASE, (ETH_CFG_TX_DPLXEN | ETH_CFG_TX_CRCEN |
|
||||||
|
ETH_CFG_TX_PADEN));
|
||||||
|
/* wait for the link to become active. */
|
||||||
|
ulTemp = EthernetPHYRead(ETH_BASE, PHY_MR1);
|
||||||
|
ulLinkTimeOut = TimeGet() + NETDEV_LINKUP_TIMEOUT_MS;
|
||||||
|
|
||||||
|
while ((ulTemp & 0x0004) == 0)
|
||||||
|
{
|
||||||
|
ulTemp = EthernetPHYRead(ETH_BASE, PHY_MR1);
|
||||||
|
/* check for timeout so that the software program can still start if the
|
||||||
|
* ethernet cable is not connected.
|
||||||
|
*/
|
||||||
|
if (TimeGet() >= ulLinkTimeOut)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* enable the ethernet controller. */
|
||||||
|
EthernetEnable(ETH_BASE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
void netdev_setmacaddr(void)
|
||||||
|
{
|
||||||
|
struct uip_eth_addr macAddress;
|
||||||
|
unsigned long ulUser0, ulUser1;
|
||||||
|
|
||||||
|
/* set the default MAC address */
|
||||||
|
macAddress.addr[0] = NETDEV_DEFAULT_MACADDR0;
|
||||||
|
macAddress.addr[1] = NETDEV_DEFAULT_MACADDR1;
|
||||||
|
macAddress.addr[2] = NETDEV_DEFAULT_MACADDR2;
|
||||||
|
macAddress.addr[3] = NETDEV_DEFAULT_MACADDR3;
|
||||||
|
macAddress.addr[4] = NETDEV_DEFAULT_MACADDR4;
|
||||||
|
macAddress.addr[5] = NETDEV_DEFAULT_MACADDR5;
|
||||||
|
/* the LM3S eval kit should have a MAC address pre-propgrammed in flash by the
|
||||||
|
* manufacturer. try to use this one, otherwise use the default values.
|
||||||
|
*/
|
||||||
|
FlashUserGet(&ulUser0, &ulUser1);
|
||||||
|
if ( (ulUser0 != 0xffffffff) && (ulUser1 != 0xffffffff) )
|
||||||
|
{
|
||||||
|
macAddress.addr[0] = ((ulUser0 >> 0) & 0xff);
|
||||||
|
macAddress.addr[1] = ((ulUser0 >> 8) & 0xff);
|
||||||
|
macAddress.addr[2] = ((ulUser0 >> 16) & 0xff);
|
||||||
|
macAddress.addr[3] = ((ulUser1 >> 0) & 0xff);
|
||||||
|
macAddress.addr[4] = ((ulUser1 >> 8) & 0xff);
|
||||||
|
macAddress.addr[5] = ((ulUser1 >> 16) & 0xff);
|
||||||
|
}
|
||||||
|
EthernetMACAddrSet(ETH_BASE, &macAddress.addr[0]);
|
||||||
|
uip_setethaddr(macAddress);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
unsigned int netdev_read(void)
|
||||||
|
{
|
||||||
|
unsigned long ulTemp;
|
||||||
|
|
||||||
|
/* read and Clear the interrupt flag. */
|
||||||
|
ulTemp = EthernetIntStatus(ETH_BASE, false);
|
||||||
|
EthernetIntClear(ETH_BASE, ulTemp);
|
||||||
|
|
||||||
|
/* check to see if an RX Interrupt has occured. */
|
||||||
|
if(ulTemp & ETH_INT_RX)
|
||||||
|
{
|
||||||
|
return EthernetPacketGetNonBlocking(ETH_BASE, uip_buf, sizeof(uip_buf));
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
void netdev_send(void)
|
||||||
|
{
|
||||||
|
EthernetPacketPut(ETH_BASE, uip_buf, uip_len);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2001, Adam Dunkels.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* 3. All advertising materials mentioning features or use of this software
|
||||||
|
* must display the following acknowledgement:
|
||||||
|
* This product includes software developed by Adam Dunkels.
|
||||||
|
* 4. The name of the author may not be used to endorse or promote
|
||||||
|
* products derived from this software without specific prior
|
||||||
|
* written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
|
||||||
|
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||||
|
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||||
|
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This file is part of the uIP TCP/IP stack.
|
||||||
|
*
|
||||||
|
* $Id: netdev.h,v 1.1 2002/01/10 06:22:56 adam Exp $
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __NETDEV_H__
|
||||||
|
#define __NETDEV_H__
|
||||||
|
|
||||||
|
void netdev_init(void);
|
||||||
|
unsigned int netdev_read(void);
|
||||||
|
void netdev_send(void);
|
||||||
|
void netdev_setmacaddr(void);
|
||||||
|
|
||||||
|
#endif /* __NETDEV_H__ */
|
|
@ -0,0 +1,151 @@
|
||||||
|
/**
|
||||||
|
* \addtogroup uipopt
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \name Project-specific configuration options
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* uIP has a number of configuration options that can be overridden
|
||||||
|
* for each project. These are kept in a project-specific uip-conf.h
|
||||||
|
* file and all configuration names have the prefix UIP_CONF.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2006, Swedish Institute of Computer Science.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* 3. Neither the name of the Institute nor the names of its contributors
|
||||||
|
* may be used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
* SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This file is part of the uIP TCP/IP stack
|
||||||
|
*
|
||||||
|
* $Id: uip-conf.h,v 1.6 2006/06/12 08:00:31 adam Exp $
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file
|
||||||
|
* An example uIP configuration file
|
||||||
|
* \author
|
||||||
|
* Adam Dunkels <adam@sics.se>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __UIP_CONF_H__
|
||||||
|
#define __UIP_CONF_H__
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 8 bit datatype
|
||||||
|
*
|
||||||
|
* This typedef defines the 8-bit type used throughout uIP.
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
typedef unsigned char u8_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 16 bit datatype
|
||||||
|
*
|
||||||
|
* This typedef defines the 16-bit type used throughout uIP.
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
typedef unsigned short u16_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Statistics datatype
|
||||||
|
*
|
||||||
|
* This typedef defines the dataype used for keeping statistics in
|
||||||
|
* uIP.
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
typedef unsigned short uip_stats_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Maximum number of TCP connections.
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
#define UIP_CONF_MAX_CONNECTIONS 1
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Maximum number of listening TCP ports.
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
#define UIP_CONF_MAX_LISTENPORTS 1
|
||||||
|
|
||||||
|
/**
|
||||||
|
* uIP buffer size.
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
#define UIP_CONF_BUFFER_SIZE 1600
|
||||||
|
|
||||||
|
/**
|
||||||
|
* CPU byte order.
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
#define UIP_CONF_BYTE_ORDER LITTLE_ENDIAN
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Logging on or off
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
#define UIP_CONF_LOGGING 0
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UDP support on or off
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
#define UIP_CONF_UDP 0
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UDP checksums on or off
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
#define UIP_CONF_UDP_CHECKSUMS 1
|
||||||
|
|
||||||
|
/**
|
||||||
|
* uIP statistics on or off
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
#define UIP_CONF_STATISTICS 0
|
||||||
|
|
||||||
|
/* Here we include the header file for the application(s) we use in
|
||||||
|
our project. */
|
||||||
|
#include "boot.h"
|
||||||
|
#include "net.h"
|
||||||
|
|
||||||
|
#endif /* __UIP_CONF_H__ */
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
/** @} */
|
|
@ -53,6 +53,8 @@ int main(void)
|
||||||
{
|
{
|
||||||
/* initialize the microcontroller */
|
/* initialize the microcontroller */
|
||||||
Init();
|
Init();
|
||||||
|
/* initialize the network application */
|
||||||
|
NetInit();
|
||||||
/* initialize the bootloader interface */
|
/* initialize the bootloader interface */
|
||||||
BootComInit();
|
BootComInit();
|
||||||
|
|
||||||
|
@ -61,6 +63,8 @@ int main(void)
|
||||||
{
|
{
|
||||||
/* toggle LED with a fixed frequency */
|
/* toggle LED with a fixed frequency */
|
||||||
LedToggle();
|
LedToggle();
|
||||||
|
/* run the network task */
|
||||||
|
NetTask();
|
||||||
/* check for bootloader activation request */
|
/* check for bootloader activation request */
|
||||||
BootComCheckActivationRequest();
|
BootComCheckActivationRequest();
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,207 @@
|
||||||
|
/************************************************************************************//**
|
||||||
|
* \file Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Prog\net.c
|
||||||
|
* \brief Network application for the uIP TCP/IP stack.
|
||||||
|
* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_Crossworks
|
||||||
|
* \internal
|
||||||
|
*----------------------------------------------------------------------------------------
|
||||||
|
* C O P Y R I G H T
|
||||||
|
*----------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) 2014 by Feaser http://www.feaser.com All rights reserved
|
||||||
|
*
|
||||||
|
*----------------------------------------------------------------------------------------
|
||||||
|
* L I C E N S E
|
||||||
|
*----------------------------------------------------------------------------------------
|
||||||
|
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as published by the Free
|
||||||
|
* Software Foundation, either version 3 of the License, or (at your option) any later
|
||||||
|
* version.
|
||||||
|
*
|
||||||
|
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||||
|
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||||
|
* PURPOSE. See the GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along with OpenBLT.
|
||||||
|
* If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* A special exception to the GPL is included to allow you to distribute a combined work
|
||||||
|
* that includes OpenBLT without being obliged to provide the source code for any
|
||||||
|
* proprietary components. The exception text is included at the bottom of the license
|
||||||
|
* file <license.html>.
|
||||||
|
*
|
||||||
|
* \endinternal
|
||||||
|
****************************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************************
|
||||||
|
* Include files
|
||||||
|
****************************************************************************************/
|
||||||
|
#include "header.h" /* generic header */
|
||||||
|
#include "netdev.h"
|
||||||
|
#include "uip.h"
|
||||||
|
#include "uip_arp.h"
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************************************************
|
||||||
|
* Macro definitions
|
||||||
|
****************************************************************************************/
|
||||||
|
/** \brief Delta time for the uIP periodic timer. */
|
||||||
|
#define NET_UIP_PERIODIC_TIMER_MS (500)
|
||||||
|
/** \brief Delta time for the uIP ARP timer. */
|
||||||
|
#define NET_UIP_ARP_TIMER_MS (10000)
|
||||||
|
/** \brief Macro for accessing the Ethernet header information in the buffer */
|
||||||
|
#define NET_UIP_HEADER_BUF ((struct uip_eth_hdr *)&uip_buf[0])
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************************************************
|
||||||
|
* Local data declarations
|
||||||
|
****************************************************************************************/
|
||||||
|
/** \brief Holds the time out value of the uIP periodic timer. */
|
||||||
|
static unsigned long periodicTimerTimeOut;
|
||||||
|
/** \brief Holds the time out value of the uIP ARP timer. */
|
||||||
|
static unsigned long ARPTimerTimeOut;
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************************//**
|
||||||
|
** \brief Initializes the TCP/IP network communication interface.
|
||||||
|
** \return none.
|
||||||
|
**
|
||||||
|
****************************************************************************************/
|
||||||
|
void NetInit(void)
|
||||||
|
{
|
||||||
|
uip_ipaddr_t ipaddr;
|
||||||
|
|
||||||
|
/* initialize the network device */
|
||||||
|
netdev_init();
|
||||||
|
/* initialize the uIP TCP/IP stack. */
|
||||||
|
uip_init();
|
||||||
|
/* set the IP address */
|
||||||
|
uip_ipaddr(ipaddr, BOOT_COM_NET_IPADDR0, BOOT_COM_NET_IPADDR1, BOOT_COM_NET_IPADDR2,
|
||||||
|
BOOT_COM_NET_IPADDR3);
|
||||||
|
uip_sethostaddr(ipaddr);
|
||||||
|
/* set the network mask */
|
||||||
|
uip_ipaddr(ipaddr, BOOT_COM_NET_NETMASK0, BOOT_COM_NET_NETMASK1, BOOT_COM_NET_NETMASK2,
|
||||||
|
BOOT_COM_NET_NETMASK3);
|
||||||
|
uip_setnetmask(ipaddr);
|
||||||
|
/* set the MAC address */
|
||||||
|
netdev_setmacaddr();
|
||||||
|
/* initialize the timer variables */
|
||||||
|
periodicTimerTimeOut = TimeGet() + NET_UIP_PERIODIC_TIMER_MS;
|
||||||
|
ARPTimerTimeOut = TimeGet() + NET_UIP_ARP_TIMER_MS;
|
||||||
|
/* start listening on the configured port for XCP transfers on TCP/IP */
|
||||||
|
uip_listen(HTONS(BOOT_COM_NET_PORT));
|
||||||
|
} /*** end of NetInit ***/
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************************//**
|
||||||
|
** \brief The uIP network application that detects the XCP connect command on the
|
||||||
|
** port used by the bootloader. This indicates that the bootloader should
|
||||||
|
** be activated.
|
||||||
|
** \return none.
|
||||||
|
**
|
||||||
|
****************************************************************************************/
|
||||||
|
void NetApp(void)
|
||||||
|
{
|
||||||
|
unsigned char *newDataPtr;
|
||||||
|
|
||||||
|
if (uip_connected())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (uip_newdata())
|
||||||
|
{
|
||||||
|
/* a new XCP command was received. check if this is the connect command and in this
|
||||||
|
* case activate the bootloader. with XCP on TCP/IP the first 4 bytes contain a
|
||||||
|
* counter value in which we are not really interested.
|
||||||
|
*/
|
||||||
|
newDataPtr = uip_appdata;
|
||||||
|
newDataPtr += 4;
|
||||||
|
/* check if this was an XCP CONNECT command */
|
||||||
|
if ((newDataPtr[0] == 0xff) && (newDataPtr[1] == 0x00))
|
||||||
|
{
|
||||||
|
/* connection request received so start the bootloader */
|
||||||
|
BootActivate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} /*** end of NetApp ***/
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************************//**
|
||||||
|
** \brief Runs the TCP/IP server task.
|
||||||
|
** \return none.
|
||||||
|
**
|
||||||
|
****************************************************************************************/
|
||||||
|
void NetTask(void)
|
||||||
|
{
|
||||||
|
unsigned long connection;
|
||||||
|
unsigned long packetLen;
|
||||||
|
|
||||||
|
/* check for an RX packet and read it. */
|
||||||
|
packetLen = netdev_read();
|
||||||
|
if(packetLen > 0)
|
||||||
|
{
|
||||||
|
/* set uip_len for uIP stack usage */
|
||||||
|
uip_len = (unsigned short)packetLen;
|
||||||
|
|
||||||
|
/* process incoming IP packets here. */
|
||||||
|
if(NET_UIP_HEADER_BUF->type == htons(UIP_ETHTYPE_IP))
|
||||||
|
{
|
||||||
|
uip_arp_ipin();
|
||||||
|
uip_input();
|
||||||
|
/* if the above function invocation resulted in data that
|
||||||
|
* should be sent out on the network, the global variable
|
||||||
|
* uip_len is set to a value > 0.
|
||||||
|
*/
|
||||||
|
if(uip_len > 0)
|
||||||
|
{
|
||||||
|
uip_arp_out();
|
||||||
|
netdev_send();
|
||||||
|
uip_len = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* process incoming ARP packets here. */
|
||||||
|
else if(NET_UIP_HEADER_BUF->type == htons(UIP_ETHTYPE_ARP))
|
||||||
|
{
|
||||||
|
uip_arp_arpin();
|
||||||
|
|
||||||
|
/* if the above function invocation resulted in data that
|
||||||
|
* should be sent out on the network, the global variable
|
||||||
|
* uip_len is set to a value > 0.
|
||||||
|
*/
|
||||||
|
if(uip_len > 0)
|
||||||
|
{
|
||||||
|
netdev_send();
|
||||||
|
uip_len = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* process TCP/IP Periodic Timer here. */
|
||||||
|
if (TimeGet() >= periodicTimerTimeOut)
|
||||||
|
{
|
||||||
|
periodicTimerTimeOut += NET_UIP_PERIODIC_TIMER_MS;
|
||||||
|
for (connection = 0; connection < UIP_CONNS; connection++)
|
||||||
|
{
|
||||||
|
uip_periodic(connection);
|
||||||
|
/* If the above function invocation resulted in data that
|
||||||
|
* should be sent out on the network, the global variable
|
||||||
|
* uip_len is set to a value > 0.
|
||||||
|
*/
|
||||||
|
if(uip_len > 0)
|
||||||
|
{
|
||||||
|
uip_arp_out();
|
||||||
|
netdev_send();
|
||||||
|
uip_len = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* process ARP Timer here. */
|
||||||
|
if (TimeGet() >= ARPTimerTimeOut)
|
||||||
|
{
|
||||||
|
ARPTimerTimeOut += NET_UIP_ARP_TIMER_MS;
|
||||||
|
uip_arp_timer();
|
||||||
|
}
|
||||||
|
} /*** end of NetServerTask ***/
|
||||||
|
|
||||||
|
|
||||||
|
/*********************************** end of net.c **************************************/
|
|
@ -0,0 +1,66 @@
|
||||||
|
/************************************************************************************//**
|
||||||
|
* \file Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Prog\net.h
|
||||||
|
* \brief Network application for the uIP TCP/IP stack.
|
||||||
|
* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_Crossworks
|
||||||
|
* \internal
|
||||||
|
*----------------------------------------------------------------------------------------
|
||||||
|
* C O P Y R I G H T
|
||||||
|
*----------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) 2014 by Feaser http://www.feaser.com All rights reserved
|
||||||
|
*
|
||||||
|
*----------------------------------------------------------------------------------------
|
||||||
|
* L I C E N S E
|
||||||
|
*----------------------------------------------------------------------------------------
|
||||||
|
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as published by the Free
|
||||||
|
* Software Foundation, either version 3 of the License, or (at your option) any later
|
||||||
|
* version.
|
||||||
|
*
|
||||||
|
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||||
|
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||||
|
* PURPOSE. See the GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along with OpenBLT.
|
||||||
|
* If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* A special exception to the GPL is included to allow you to distribute a combined work
|
||||||
|
* that includes OpenBLT without being obliged to provide the source code for any
|
||||||
|
* proprietary components. The exception text is included at the bottom of the license
|
||||||
|
* file <license.html>.
|
||||||
|
*
|
||||||
|
* \endinternal
|
||||||
|
****************************************************************************************/
|
||||||
|
#ifndef NET_H
|
||||||
|
#define NET_H
|
||||||
|
|
||||||
|
/****************************************************************************************
|
||||||
|
* Macro definitions
|
||||||
|
****************************************************************************************/
|
||||||
|
#ifndef UIP_APPCALL
|
||||||
|
#define UIP_APPCALL NetApp
|
||||||
|
#endif /* UIP_APPCALL */
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************************************************
|
||||||
|
* Type definitions
|
||||||
|
****************************************************************************************/
|
||||||
|
/** \brief Define the uip_tcp_appstate_t datatype. This is the state of our tcp/ip
|
||||||
|
* application, and the memory required for this state is allocated together
|
||||||
|
* with each TCP connection. One application state for each TCP connection.
|
||||||
|
*/
|
||||||
|
typedef struct net_state
|
||||||
|
{
|
||||||
|
unsigned char unused;
|
||||||
|
} uip_tcp_appstate_t;
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************************************************
|
||||||
|
* Function prototypes
|
||||||
|
****************************************************************************************/
|
||||||
|
void NetInit(void);
|
||||||
|
void NetApp(void);
|
||||||
|
void NetTask(void);
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* NET_H */
|
||||||
|
/*********************************** end of net.h **************************************/
|
|
@ -1,61 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<CodeLite_Project Name="DemoBoot" InternalType="">
|
<CodeLite_Project Name="DemoBoot" InternalType="">
|
||||||
<Plugins>
|
|
||||||
<Plugin Name="qmake">
|
|
||||||
<![CDATA[00010001N0005Debug000000000000]]>
|
|
||||||
</Plugin>
|
|
||||||
</Plugins>
|
|
||||||
<VirtualDirectory Name="Source">
|
|
||||||
<VirtualDirectory Name="third_party">
|
|
||||||
<VirtualDirectory Name="fatfs">
|
|
||||||
<VirtualDirectory Name="src">
|
|
||||||
<File Name="../../../../Source/third_party/fatfs/src/diskio.h"/>
|
|
||||||
<File Name="../../../../Source/third_party/fatfs/src/ff.c"/>
|
|
||||||
<File Name="../../../../Source/third_party/fatfs/src/ff.h"/>
|
|
||||||
<File Name="../../../../Source/third_party/fatfs/src/integer.h"/>
|
|
||||||
<VirtualDirectory Name="option">
|
|
||||||
<File Name="../../../../Source/third_party/fatfs/src/option/cc932.c"/>
|
|
||||||
<File Name="../../../../Source/third_party/fatfs/src/option/cc936.c"/>
|
|
||||||
<File Name="../../../../Source/third_party/fatfs/src/option/cc949.c"/>
|
|
||||||
<File Name="../../../../Source/third_party/fatfs/src/option/cc950.c"/>
|
|
||||||
<File Name="../../../../Source/third_party/fatfs/src/option/ccsbcs.c"/>
|
|
||||||
<File Name="../../../../Source/third_party/fatfs/src/option/syscall.c"/>
|
|
||||||
<File Name="../../../../Source/third_party/fatfs/src/option/unicode.c"/>
|
|
||||||
</VirtualDirectory>
|
|
||||||
</VirtualDirectory>
|
|
||||||
</VirtualDirectory>
|
|
||||||
</VirtualDirectory>
|
|
||||||
<VirtualDirectory Name="ARMCM3_LM3S">
|
|
||||||
<VirtualDirectory Name="GCC">
|
|
||||||
<File Name="../../../../Source/ARMCM3_LM3S/GCC/cstart.c"/>
|
|
||||||
<File Name="../../../../Source/ARMCM3_LM3S/GCC/vectors.c"/>
|
|
||||||
</VirtualDirectory>
|
|
||||||
<File Name="../../../../Source/ARMCM3_LM3S/cpu.c"/>
|
|
||||||
<File Name="../../../../Source/ARMCM3_LM3S/cpu.h"/>
|
|
||||||
<File Name="../../../../Source/ARMCM3_LM3S/flash.c"/>
|
|
||||||
<File Name="../../../../Source/ARMCM3_LM3S/flash.h"/>
|
|
||||||
<File Name="../../../../Source/ARMCM3_LM3S/nvm.c"/>
|
|
||||||
<File Name="../../../../Source/ARMCM3_LM3S/nvm.h"/>
|
|
||||||
<File Name="../../../../Source/ARMCM3_LM3S/timer.c"/>
|
|
||||||
<File Name="../../../../Source/ARMCM3_LM3S/timer.h"/>
|
|
||||||
<File Name="../../../../Source/ARMCM3_LM3S/types.h"/>
|
|
||||||
<File Name="../../../../Source/ARMCM3_LM3S/uart.c"/>
|
|
||||||
<File Name="../../../../Source/ARMCM3_LM3S/uart.h"/>
|
|
||||||
</VirtualDirectory>
|
|
||||||
<File Name="../../../../Source/assert.c"/>
|
|
||||||
<File Name="../../../../Source/assert.h"/>
|
|
||||||
<File Name="../../../../Source/backdoor.c"/>
|
|
||||||
<File Name="../../../../Source/backdoor.h"/>
|
|
||||||
<File Name="../../../../Source/boot.c"/>
|
|
||||||
<File Name="../../../../Source/boot.h"/>
|
|
||||||
<File Name="../../../../Source/com.c"/>
|
|
||||||
<File Name="../../../../Source/com.h"/>
|
|
||||||
<File Name="../../../../Source/cop.c"/>
|
|
||||||
<File Name="../../../../Source/cop.h"/>
|
|
||||||
<File Name="../../../../Source/plausibility.h"/>
|
|
||||||
<File Name="../../../../Source/xcp.c"/>
|
|
||||||
<File Name="../../../../Source/xcp.h"/>
|
|
||||||
</VirtualDirectory>
|
|
||||||
<VirtualDirectory Name="Demo">
|
<VirtualDirectory Name="Demo">
|
||||||
<VirtualDirectory Name="ARMCM3_LM3S_EK_LM3S6965_GCC">
|
<VirtualDirectory Name="ARMCM3_LM3S_EK_LM3S6965_GCC">
|
||||||
<VirtualDirectory Name="Boot">
|
<VirtualDirectory Name="Boot">
|
||||||
|
@ -64,34 +8,57 @@
|
||||||
<File Name="../lib/driverlib/cpulib.c"/>
|
<File Name="../lib/driverlib/cpulib.c"/>
|
||||||
<File Name="../lib/driverlib/cpulib.h"/>
|
<File Name="../lib/driverlib/cpulib.h"/>
|
||||||
<File Name="../lib/driverlib/debug.h"/>
|
<File Name="../lib/driverlib/debug.h"/>
|
||||||
|
<File Name="../lib/driverlib/ethernet.c"/>
|
||||||
|
<File Name="../lib/driverlib/ethernet.h"/>
|
||||||
<File Name="../lib/driverlib/flashlib.c"/>
|
<File Name="../lib/driverlib/flashlib.c"/>
|
||||||
<File Name="../lib/driverlib/flashlib.h"/>
|
<File Name="../lib/driverlib/flashlib.h"/>
|
||||||
<File Name="../lib/driverlib/gpio.c"/>
|
<File Name="../lib/driverlib/gpio.c"/>
|
||||||
<File Name="../lib/driverlib/gpio.h"/>
|
<File Name="../lib/driverlib/gpio.h"/>
|
||||||
<File Name="../lib/driverlib/interrupt.c"/>
|
<File Name="../lib/driverlib/interrupt.c"/>
|
||||||
<File Name="../lib/driverlib/interrupt.h"/>
|
<File Name="../lib/driverlib/interrupt.h"/>
|
||||||
|
<File Name="../lib/driverlib/pin_map.h"/>
|
||||||
|
<File Name="../lib/driverlib/ssi.c"/>
|
||||||
|
<File Name="../lib/driverlib/ssi.h"/>
|
||||||
<File Name="../lib/driverlib/sysctl.c"/>
|
<File Name="../lib/driverlib/sysctl.c"/>
|
||||||
<File Name="../lib/driverlib/sysctl.h"/>
|
<File Name="../lib/driverlib/sysctl.h"/>
|
||||||
<File Name="../lib/driverlib/uartlib.c"/>
|
<File Name="../lib/driverlib/uartlib.c"/>
|
||||||
<File Name="../lib/driverlib/uartlib.h"/>
|
<File Name="../lib/driverlib/uartlib.h"/>
|
||||||
</VirtualDirectory>
|
</VirtualDirectory>
|
||||||
|
<VirtualDirectory Name="fatfs">
|
||||||
|
<File Name="../lib/fatfs/ffconf.h"/>
|
||||||
|
<File Name="../lib/fatfs/mmc.c"/>
|
||||||
|
</VirtualDirectory>
|
||||||
<VirtualDirectory Name="inc">
|
<VirtualDirectory Name="inc">
|
||||||
|
<File Name="../lib/inc/hw_ethernet.h"/>
|
||||||
<File Name="../lib/inc/hw_flash.h"/>
|
<File Name="../lib/inc/hw_flash.h"/>
|
||||||
<File Name="../lib/inc/hw_gpio.h"/>
|
<File Name="../lib/inc/hw_gpio.h"/>
|
||||||
<File Name="../lib/inc/hw_ints.h"/>
|
<File Name="../lib/inc/hw_ints.h"/>
|
||||||
<File Name="../lib/inc/hw_memmap.h"/>
|
<File Name="../lib/inc/hw_memmap.h"/>
|
||||||
<File Name="../lib/inc/hw_nvic.h"/>
|
<File Name="../lib/inc/hw_nvic.h"/>
|
||||||
|
<File Name="../lib/inc/hw_ssi.h"/>
|
||||||
<File Name="../lib/inc/hw_sysctl.h"/>
|
<File Name="../lib/inc/hw_sysctl.h"/>
|
||||||
<File Name="../lib/inc/hw_types.h"/>
|
<File Name="../lib/inc/hw_types.h"/>
|
||||||
<File Name="../lib/inc/hw_uart.h"/>
|
<File Name="../lib/inc/hw_uart.h"/>
|
||||||
</VirtualDirectory>
|
</VirtualDirectory>
|
||||||
|
<VirtualDirectory Name="uip">
|
||||||
|
<File Name="../lib/uip/clock-arch.c"/>
|
||||||
|
<File Name="../lib/uip/clock-arch.h"/>
|
||||||
|
<File Name="../lib/uip/netdev.c"/>
|
||||||
|
<File Name="../lib/uip/netdev.h"/>
|
||||||
|
<File Name="../lib/uip/uip-conf.h"/>
|
||||||
</VirtualDirectory>
|
</VirtualDirectory>
|
||||||
|
</VirtualDirectory>
|
||||||
|
<File Name="../blt_conf.h"/>
|
||||||
<File Name="../hooks.c"/>
|
<File Name="../hooks.c"/>
|
||||||
<File Name="../main.c"/>
|
<File Name="../main.c"/>
|
||||||
<File Name="../blt_conf.h"/>
|
|
||||||
</VirtualDirectory>
|
</VirtualDirectory>
|
||||||
</VirtualDirectory>
|
</VirtualDirectory>
|
||||||
</VirtualDirectory>
|
</VirtualDirectory>
|
||||||
|
<Plugins>
|
||||||
|
<Plugin Name="qmake">
|
||||||
|
<![CDATA[00010001N0005Debug000000000000]]>
|
||||||
|
</Plugin>
|
||||||
|
</Plugins>
|
||||||
<Description/>
|
<Description/>
|
||||||
<Dependencies/>
|
<Dependencies/>
|
||||||
<Settings Type="Dynamic Library">
|
<Settings Type="Dynamic Library">
|
||||||
|
@ -165,4 +132,95 @@ continue
|
||||||
</AdditionalRules>
|
</AdditionalRules>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
</Settings>
|
</Settings>
|
||||||
|
<VirtualDirectory Name="Source">
|
||||||
|
<VirtualDirectory Name="third_party">
|
||||||
|
<VirtualDirectory Name="uip">
|
||||||
|
<VirtualDirectory Name="uip">
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/clock.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/lc-addrlabels.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/lc-switch.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/lc.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/psock.c"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/psock.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/pt.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uip-fw.c"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uip-fw.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uip-neighbor.c"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uip-neighbor.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uip-split.c"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uip-split.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uip.c"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uip.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uiplib.c"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uiplib.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uipopt.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uip_arch.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uip_arp.c"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uip_arp.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uip_timer.c"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uip_timer.h"/>
|
||||||
|
</VirtualDirectory>
|
||||||
|
</VirtualDirectory>
|
||||||
|
<VirtualDirectory Name="fatfs">
|
||||||
|
<VirtualDirectory Name="src">
|
||||||
|
<VirtualDirectory Name="option">
|
||||||
|
<File Name="../../../../Source/third_party/fatfs/src/option/cc932.c"/>
|
||||||
|
<File Name="../../../../Source/third_party/fatfs/src/option/cc936.c"/>
|
||||||
|
<File Name="../../../../Source/third_party/fatfs/src/option/cc949.c"/>
|
||||||
|
<File Name="../../../../Source/third_party/fatfs/src/option/cc950.c"/>
|
||||||
|
<File Name="../../../../Source/third_party/fatfs/src/option/ccsbcs.c"/>
|
||||||
|
<File Name="../../../../Source/third_party/fatfs/src/option/syscall.c"/>
|
||||||
|
<File Name="../../../../Source/third_party/fatfs/src/option/unicode.c"/>
|
||||||
|
</VirtualDirectory>
|
||||||
|
<File Name="../../../../Source/third_party/fatfs/src/diskio.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/fatfs/src/ff.c"/>
|
||||||
|
<File Name="../../../../Source/third_party/fatfs/src/ff.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/fatfs/src/integer.h"/>
|
||||||
|
</VirtualDirectory>
|
||||||
|
<VirtualDirectory Name="doc">
|
||||||
|
<VirtualDirectory Name="img">
|
||||||
|
<File Name="../../../../Source/third_party/fatfs/doc/img/app1.c"/>
|
||||||
|
<File Name="../../../../Source/third_party/fatfs/doc/img/app2.c"/>
|
||||||
|
<File Name="../../../../Source/third_party/fatfs/doc/img/app3.c"/>
|
||||||
|
</VirtualDirectory>
|
||||||
|
</VirtualDirectory>
|
||||||
|
</VirtualDirectory>
|
||||||
|
</VirtualDirectory>
|
||||||
|
<File Name="../../../../Source/assert.c"/>
|
||||||
|
<File Name="../../../../Source/assert.h"/>
|
||||||
|
<File Name="../../../../Source/backdoor.c"/>
|
||||||
|
<File Name="../../../../Source/backdoor.h"/>
|
||||||
|
<File Name="../../../../Source/boot.c"/>
|
||||||
|
<File Name="../../../../Source/boot.h"/>
|
||||||
|
<File Name="../../../../Source/com.c"/>
|
||||||
|
<File Name="../../../../Source/com.h"/>
|
||||||
|
<File Name="../../../../Source/cop.c"/>
|
||||||
|
<File Name="../../../../Source/cop.h"/>
|
||||||
|
<File Name="../../../../Source/file.c"/>
|
||||||
|
<File Name="../../../../Source/file.h"/>
|
||||||
|
<File Name="../../../../Source/net.c"/>
|
||||||
|
<File Name="../../../../Source/net.h"/>
|
||||||
|
<File Name="../../../../Source/plausibility.h"/>
|
||||||
|
<File Name="../../../../Source/xcp.c"/>
|
||||||
|
<File Name="../../../../Source/xcp.h"/>
|
||||||
|
<VirtualDirectory Name="ARMCM3_LM3S">
|
||||||
|
<File Name="../../../../Source/ARMCM3_LM3S/can.c"/>
|
||||||
|
<File Name="../../../../Source/ARMCM3_LM3S/can.h"/>
|
||||||
|
<File Name="../../../../Source/ARMCM3_LM3S/cpu.c"/>
|
||||||
|
<File Name="../../../../Source/ARMCM3_LM3S/cpu.h"/>
|
||||||
|
<File Name="../../../../Source/ARMCM3_LM3S/flash.c"/>
|
||||||
|
<File Name="../../../../Source/ARMCM3_LM3S/flash.h"/>
|
||||||
|
<File Name="../../../../Source/ARMCM3_LM3S/nvm.c"/>
|
||||||
|
<File Name="../../../../Source/ARMCM3_LM3S/nvm.h"/>
|
||||||
|
<File Name="../../../../Source/ARMCM3_LM3S/timer.c"/>
|
||||||
|
<File Name="../../../../Source/ARMCM3_LM3S/timer.h"/>
|
||||||
|
<File Name="../../../../Source/ARMCM3_LM3S/types.h"/>
|
||||||
|
<File Name="../../../../Source/ARMCM3_LM3S/uart.c"/>
|
||||||
|
<File Name="../../../../Source/ARMCM3_LM3S/uart.h"/>
|
||||||
|
<VirtualDirectory Name="GCC">
|
||||||
|
<File Name="../../../../Source/ARMCM3_LM3S/GCC/cstart.c"/>
|
||||||
|
<File Name="../../../../Source/ARMCM3_LM3S/GCC/vectors.c"/>
|
||||||
|
</VirtualDirectory>
|
||||||
|
</VirtualDirectory>
|
||||||
|
</VirtualDirectory>
|
||||||
</CodeLite_Project>
|
</CodeLite_Project>
|
||||||
|
|
Binary file not shown.
|
@ -7,36 +7,36 @@ start address 0x00008000
|
||||||
|
|
||||||
Program Header:
|
Program Header:
|
||||||
LOAD off 0x00008000 vaddr 0x00008000 paddr 0x00008000 align 2**15
|
LOAD off 0x00008000 vaddr 0x00008000 paddr 0x00008000 align 2**15
|
||||||
filesz 0x00001078 memsz 0x00001078 flags r-x
|
filesz 0x000031dc memsz 0x000031dc flags r-x
|
||||||
LOAD off 0x00010000 vaddr 0x20000000 paddr 0x20000000 align 2**15
|
LOAD off 0x00010000 vaddr 0x20000000 paddr 0x20000000 align 2**15
|
||||||
filesz 0x00000000 memsz 0x0000015c flags rw-
|
filesz 0x00000000 memsz 0x0000086c flags rw-
|
||||||
private flags = 5000202: [Version5 EABI] [soft-float ABI] [has entry point]
|
private flags = 5000202: [Version5 EABI] [soft-float ABI] [has entry point]
|
||||||
|
|
||||||
Sections:
|
Sections:
|
||||||
Idx Name Size VMA LMA File off Algn
|
Idx Name Size VMA LMA File off Algn
|
||||||
0 .text 00001078 00008000 00008000 00008000 2**2
|
0 .text 000031dc 00008000 00008000 00008000 2**2
|
||||||
CONTENTS, ALLOC, LOAD, READONLY, CODE
|
CONTENTS, ALLOC, LOAD, READONLY, CODE
|
||||||
1 .bss 0000015c 20000000 20000000 00010000 2**2
|
1 .bss 0000086c 20000000 20000000 00010000 2**2
|
||||||
ALLOC
|
ALLOC
|
||||||
2 .debug_info 00003cc0 00000000 00000000 00009078 2**0
|
2 .debug_info 000063a5 00000000 00000000 0000b1dc 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
3 .debug_abbrev 00000b94 00000000 00000000 0000cd38 2**0
|
3 .debug_abbrev 000015ac 00000000 00000000 00011581 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
4 .debug_loc 00001fb9 00000000 00000000 0000d8cc 2**0
|
4 .debug_loc 000033f7 00000000 00000000 00012b2d 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
5 .debug_aranges 00000660 00000000 00000000 0000f885 2**0
|
5 .debug_aranges 00000920 00000000 00000000 00015f24 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
6 .debug_ranges 00000590 00000000 00000000 0000fee5 2**0
|
6 .debug_ranges 000007f0 00000000 00000000 00016844 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
7 .debug_line 00001611 00000000 00000000 00010475 2**0
|
7 .debug_line 00002481 00000000 00000000 00017034 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
8 .debug_str 00001079 00000000 00000000 00011a86 2**0
|
8 .debug_str 00001a76 00000000 00000000 000194b5 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
9 .comment 00000030 00000000 00000000 00012aff 2**0
|
9 .comment 00000030 00000000 00000000 0001af2b 2**0
|
||||||
CONTENTS, READONLY
|
CONTENTS, READONLY
|
||||||
10 .ARM.attributes 00000033 00000000 00000000 00012b2f 2**0
|
10 .ARM.attributes 00000033 00000000 00000000 0001af5b 2**0
|
||||||
CONTENTS, READONLY
|
CONTENTS, READONLY
|
||||||
11 .debug_frame 00001000 00000000 00000000 00012b64 2**2
|
11 .debug_frame 00001738 00000000 00000000 0001af90 2**2
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
SYMBOL TABLE:
|
SYMBOL TABLE:
|
||||||
00008000 l d .text 00000000 .text
|
00008000 l d .text 00000000 .text
|
||||||
|
@ -53,70 +53,145 @@ SYMBOL TABLE:
|
||||||
00000000 l d .debug_frame 00000000 .debug_frame
|
00000000 l d .debug_frame 00000000 .debug_frame
|
||||||
00000000 l df *ABS* 00000000 vectors.c
|
00000000 l df *ABS* 00000000 vectors.c
|
||||||
00000000 l df *ABS* 00000000 boot.c
|
00000000 l df *ABS* 00000000 boot.c
|
||||||
20000000 l O .bss 00000001 xcpCtoRxLength.4440
|
20000000 l O .bss 00000041 xcpCtoReqPacket.4450
|
||||||
20000004 l O .bss 00000041 xcpCtoReqPacket.4439
|
20000044 l O .bss 00000001 xcpCtoRxLength.4451
|
||||||
20000048 l O .bss 00000001 xcpCtoRxInProgress.4441
|
20000045 l O .bss 00000001 xcpCtoRxInProgress.4452
|
||||||
00000000 l df *ABS* 00000000 cstart.c
|
00000000 l df *ABS* 00000000 cstart.c
|
||||||
00008248 l F .text 00000000 zero_loop
|
00008258 l F .text 00000000 zero_loop
|
||||||
00000000 l df *ABS* 00000000 irq.c
|
00000000 l df *ABS* 00000000 irq.c
|
||||||
00000000 l df *ABS* 00000000 led.c
|
00000000 l df *ABS* 00000000 led.c
|
||||||
2000004c l O .bss 00000004 timer_counter_last.4435
|
20000048 l O .bss 00000004 timer_counter_last.4446
|
||||||
20000050 l O .bss 00000001 led_toggle_state.4434
|
2000004c l O .bss 00000001 led_toggle_state.4445
|
||||||
|
00000000 l df *ABS* 00000000 net.c
|
||||||
|
20000050 l O .bss 00000004 ARPTimerTimeOut
|
||||||
|
20000054 l O .bss 00000004 periodicTimerTimeOut
|
||||||
00000000 l df *ABS* 00000000 main.c
|
00000000 l df *ABS* 00000000 main.c
|
||||||
20000054 l O .bss 00000004 assert_failure_line.4442
|
20000058 l O .bss 00000004 assert_failure_line.4453
|
||||||
00000000 l df *ABS* 00000000 time.c
|
00000000 l df *ABS* 00000000 time.c
|
||||||
20000058 l O .bss 00000004 millisecond_counter
|
2000005c l O .bss 00000004 millisecond_counter
|
||||||
|
00000000 l df *ABS* 00000000 netdev.c
|
||||||
00000000 l df *ABS* 00000000 cpu.c
|
00000000 l df *ABS* 00000000 cpu.c
|
||||||
|
00000000 l df *ABS* 00000000 ethernet.c
|
||||||
|
00008868 l F .text 00000096 EthernetPacketGetInternal
|
||||||
|
00008900 l F .text 00000086 EthernetPacketPutInternal
|
||||||
|
00000000 l df *ABS* 00000000 flash.c
|
||||||
00000000 l df *ABS* 00000000 gpio.c
|
00000000 l df *ABS* 00000000 gpio.c
|
||||||
00008408 l F .text 0000008a GPIOBaseValid
|
00008d88 l F .text 0000008a GPIOBaseValid
|
||||||
00000000 l df *ABS* 00000000 interrupt.c
|
00000000 l df *ABS* 00000000 interrupt.c
|
||||||
00000000 l df *ABS* 00000000 sysctl.c
|
00000000 l df *ABS* 00000000 sysctl.c
|
||||||
00008708 l F .text 00000154 SysCtlPeripheralValid
|
000090d4 l F .text 00000154 SysCtlPeripheralValid
|
||||||
00008fc8 l O .text 0000005c g_pulXtals
|
0000b118 l O .text 0000005c g_pulXtals
|
||||||
0000903c l O .text 0000000c g_pulRCGCRegs
|
0000b18c l O .text 0000000c g_pulRCGCRegs
|
||||||
|
0000b198 l O .text 0000000c g_pulSRCRRegs
|
||||||
00000000 l df *ABS* 00000000 systick.c
|
00000000 l df *ABS* 00000000 systick.c
|
||||||
00000000 l df *ABS* 00000000 uart.c
|
00000000 l df *ABS* 00000000 uart.c
|
||||||
00008d8c l F .text 00000026 UARTBaseValid
|
000097c0 l F .text 00000026 UARTBaseValid
|
||||||
|
00000000 l df *ABS* 00000000 uip.c
|
||||||
|
000099e4 l F .text 0000004c chksum
|
||||||
|
00009a30 l F .text 00000046 upper_layer_chksum
|
||||||
|
00009af8 l F .text 00000036 uip_add_rcv_nxt
|
||||||
|
20000060 l O .bss 00000002 tmp16
|
||||||
|
20000062 l O .bss 00000002 ipid
|
||||||
|
20000064 l O .bss 00000004 iss
|
||||||
|
20000068 l O .bss 00000002 lastport
|
||||||
|
20000074 l O .bss 00000001 c
|
||||||
|
20000075 l O .bss 00000001 opt
|
||||||
|
00000000 l df *ABS* 00000000 uip_arp.c
|
||||||
|
0000aba4 l F .text 00000116 uip_arp_update
|
||||||
|
20000076 l O .bss 00000001 i
|
||||||
|
20000077 l O .bss 00000001 tmpage
|
||||||
|
20000078 l O .bss 00000060 arp_table
|
||||||
|
0000b1d4 l O .text 00000006 broadcast_ethaddr
|
||||||
|
200000d8 l O .bss 00000001 c
|
||||||
|
200000d9 l O .bss 00000001 arptime
|
||||||
|
200000dc l O .bss 00000004 ipaddr
|
||||||
|
00000000 l df *ABS* 00000000 memset.c
|
||||||
00000000 l df *ABS* 00000000
|
00000000 l df *ABS* 00000000
|
||||||
00000100 l *ABS* 00000000 __STACKSIZE__
|
00000100 l *ABS* 00000000 __STACKSIZE__
|
||||||
0000838c g F .text 0000000c __error__
|
000085c4 g F .text 0000000c __error__
|
||||||
00008204 g F .text 00000060 reset_handler
|
00008214 g F .text 00000060 reset_handler
|
||||||
000088b8 g F .text 00000008 SysCtlDelay
|
000092ec g F .text 00000008 SysCtlDelay
|
||||||
00008270 g F .text 0000000e IrqInterruptEnable
|
00008280 g F .text 0000000e IrqInterruptEnable
|
||||||
00009078 g .text 00000000 _etext
|
200000e0 g O .bss 00000002 uip_len
|
||||||
00008630 g F .text 00000030 GPIOPinWrite
|
2000006c g O .bss 00000006 uip_ethaddr
|
||||||
0000885c g F .text 00000046 SysCtlPeripheralEnable
|
00009a78 g F .text 0000007e uip_add32
|
||||||
000088a4 g F .text 00000012 SysCtlReset
|
0000b1dc g .text 00000000 _etext
|
||||||
2000005c g .bss 00000000 _ebss
|
00009228 g F .text 00000068 SysCtlPeripheralReset
|
||||||
000083fc g F .text 00000002 UnusedISR
|
00008fb0 g F .text 00000030 GPIOPinWrite
|
||||||
00008280 g F .text 0000003a LedInit
|
000087e4 g F .text 00000052 netdev_read
|
||||||
000083ec g F .text 00000010 TimeISRHandler
|
00009bd4 g F .text 00000fc4 uip_process
|
||||||
00008f78 g F .text 00000036 UARTCharGetNonBlocking
|
200000e4 g O .bss 00000004 uip_sappdata
|
||||||
|
00008638 g F .text 00000100 netdev_init
|
||||||
|
200000e8 g O .bss 00000004 uip_acc32
|
||||||
|
00009b30 g F .text 0000002c uip_ipchksum
|
||||||
|
00008988 g F .text 0000003a EthernetInitExpClk
|
||||||
|
00009ba0 g F .text 00000032 uip_listen
|
||||||
|
00008838 g F .text 00000028 netdev_send
|
||||||
|
00008b70 g F .text 00000076 EthernetPacketPut
|
||||||
|
00009290 g F .text 00000046 SysCtlPeripheralEnable
|
||||||
|
200000ec g O .bss 00000001 uip_flags
|
||||||
|
000080f4 g F .text 0000000e BootActivate
|
||||||
|
000092d8 g F .text 00000012 SysCtlReset
|
||||||
|
2000076c g .bss 00000000 _ebss
|
||||||
|
00008634 g F .text 00000002 UnusedISR
|
||||||
|
00008af4 g F .text 0000007a EthernetPacketGetNonBlocking
|
||||||
|
00008290 g F .text 0000003a LedInit
|
||||||
|
00008624 g F .text 00000010 TimeISRHandler
|
||||||
|
00009078 g F .text 0000004c GPIOPinTypeEthernetLED
|
||||||
|
00008400 g F .text 0000015c NetTask
|
||||||
|
00008738 g F .text 000000ac netdev_setmacaddr
|
||||||
|
000099ac g F .text 00000036 UARTCharGetNonBlocking
|
||||||
20000000 g .bss 00000000 _bss
|
20000000 g .bss 00000000 _bss
|
||||||
00008d60 g F .text 0000002a SysTickPeriodSet
|
00009b5c g F .text 00000010 uip_tcpchksum
|
||||||
00008338 g F .text 00000052 main
|
200000f0 g O .bss 00000004 uip_appdata
|
||||||
00008a7c g F .text 000002ba SysCtlClockGet
|
00009794 g F .text 0000002a SysTickPeriodSet
|
||||||
00008df0 g F .text 00000044 UARTDisable
|
200000f4 g O .bss 00000004 uip_conn
|
||||||
000080f4 g F .text 00000050 BootComInit
|
200000f8 g O .bss 0000001e uip_conns
|
||||||
000086f8 g F .text 00000010 IntMasterEnable
|
00008c38 g F .text 00000032 EthernetIntStatus
|
||||||
00008398 g F .text 00000046 TimeInit
|
0000ae54 g F .text 000001d6 uip_arp_out
|
||||||
|
0000b02c g F .text 0000009e memset
|
||||||
|
0000855c g F .text 00000066 main
|
||||||
|
000094b0 g F .text 000002ba SysCtlClockGet
|
||||||
|
00009824 g F .text 00000044 UARTDisable
|
||||||
|
00008aac g F .text 00000048 EthernetEnable
|
||||||
|
00008104 g F .text 00000050 BootComInit
|
||||||
|
0000ad14 g F .text 00000140 uip_arp_arpin
|
||||||
|
000090c4 g F .text 00000010 IntMasterEnable
|
||||||
|
000085d0 g F .text 00000046 TimeInit
|
||||||
|
00008a34 g F .text 00000076 EthernetMACAddrSet
|
||||||
|
0000acbc g F .text 00000058 uip_arp_timer
|
||||||
|
20000118 g O .bss 00000002 uip_listenports
|
||||||
|
2000011c g O .bss 00000004 uip_draddr
|
||||||
20000000 g .text 00000000 _data
|
20000000 g .text 00000000 _data
|
||||||
000082bc g F .text 0000007a LedToggle
|
00008cb4 g F .text 0000004c EthernetPHYRead
|
||||||
2000015c g .bss 00000000 _estack
|
000082cc g F .text 0000007a LedToggle
|
||||||
|
2000086c g .bss 00000000 _estack
|
||||||
|
000089c4 g F .text 0000006e EthernetConfigSet
|
||||||
20000000 g .text 00000000 _edata
|
20000000 g .text 00000000 _edata
|
||||||
|
0000ab98 g F .text 0000000a htons
|
||||||
00008000 g O .text 000000f4 _vectab
|
00008000 g O .text 000000f4 _vectab
|
||||||
000086ac g F .text 0000004c GPIOPinTypeUART
|
00008d00 g F .text 00000086 FlashUserGet
|
||||||
00008660 g F .text 0000004c GPIOPinTypeGPIOOutput
|
0000902c g F .text 0000004c GPIOPinTypeUART
|
||||||
00008144 g F .text 000000c0 BootComCheckActivationRequest
|
00008fe0 g F .text 0000004c GPIOPinTypeGPIOOutput
|
||||||
000083e0 g F .text 0000000c TimeGet
|
00008be8 g F .text 0000004e EthernetIntDisable
|
||||||
00008400 g F .text 00000008 CPUcpsie
|
00008154 g F .text 000000c0 BootComCheckActivationRequest
|
||||||
00008494 g F .text 0000006c GPIODirModeSet
|
00008c6c g F .text 00000048 EthernetIntClear
|
||||||
2000005c g .bss 00000000 _stack
|
00008618 g F .text 0000000c TimeGet
|
||||||
00008d38 g F .text 00000012 SysTickEnable
|
00009b6c g F .text 00000032 uip_init
|
||||||
00008d4c g F .text 00000012 SysTickIntEnable
|
00008860 g F .text 00000008 CPUcpsie
|
||||||
00008e34 g F .text 00000142 UARTConfigSetExpClk
|
00008e14 g F .text 0000006c GPIODirModeSet
|
||||||
000088c0 g F .text 000001ba SysCtlClockSet
|
2000076c g .bss 00000000 _stack
|
||||||
00008500 g F .text 0000012e GPIOPadConfigSet
|
20000120 g O .bss 00000004 uip_netmask
|
||||||
00008db4 g F .text 0000003c UARTEnable
|
0000976c g F .text 00000012 SysTickEnable
|
||||||
|
20000124 g O .bss 00000004 uip_hostaddr
|
||||||
|
000083c8 g F .text 00000038 NetApp
|
||||||
|
00009780 g F .text 00000012 SysTickIntEnable
|
||||||
|
00009868 g F .text 00000142 UARTConfigSetExpClk
|
||||||
|
00008348 g F .text 00000080 NetInit
|
||||||
|
000092f4 g F .text 000001ba SysCtlClockSet
|
||||||
|
00008e80 g F .text 0000012e GPIOPadConfigSet
|
||||||
|
20000128 g O .bss 00000642 uip_buf
|
||||||
|
2000076a g O .bss 00000002 uip_slen
|
||||||
|
000097e8 g F .text 0000003c UARTEnable
|
||||||
|
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -42,7 +42,7 @@
|
||||||
** \return none.
|
** \return none.
|
||||||
**
|
**
|
||||||
****************************************************************************************/
|
****************************************************************************************/
|
||||||
static void BootActivate(void)
|
void BootActivate(void)
|
||||||
{
|
{
|
||||||
/* perform software reset to activate the bootoader again */
|
/* perform software reset to activate the bootoader again */
|
||||||
SysCtlReset();
|
SysCtlReset();
|
||||||
|
|
|
@ -38,6 +38,7 @@
|
||||||
****************************************************************************************/
|
****************************************************************************************/
|
||||||
void BootComInit(void);
|
void BootComInit(void);
|
||||||
void BootComCheckActivationRequest(void);
|
void BootComCheckActivationRequest(void);
|
||||||
|
void BootActivate(void);
|
||||||
|
|
||||||
|
|
||||||
#endif /* BOOT_H */
|
#endif /* BOOT_H */
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
#include "irq.h" /* IRQ driver */
|
#include "irq.h" /* IRQ driver */
|
||||||
#include "led.h" /* LED driver */
|
#include "led.h" /* LED driver */
|
||||||
#include "time.h" /* Timer driver */
|
#include "time.h" /* Timer driver */
|
||||||
|
#include "net.h" /* TCP/IP server application */
|
||||||
#include "inc/hw_ints.h"
|
#include "inc/hw_ints.h"
|
||||||
#include "inc/hw_memmap.h"
|
#include "inc/hw_memmap.h"
|
||||||
#include "inc/hw_nvic.h"
|
#include "inc/hw_nvic.h"
|
||||||
|
|
|
@ -1,5 +1,36 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<CodeLite_Project Name="DemoProg" InternalType="">
|
<CodeLite_Project Name="DemoProg" InternalType="">
|
||||||
|
<VirtualDirectory Name="Source">
|
||||||
|
<VirtualDirectory Name="third_party">
|
||||||
|
<VirtualDirectory Name="uip">
|
||||||
|
<VirtualDirectory Name="uip">
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/clock.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/lc-addrlabels.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/lc-switch.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/lc.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/psock.c"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/psock.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/pt.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uip-fw.c"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uip-fw.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uip-neighbor.c"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uip-neighbor.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uip-split.c"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uip-split.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uip.c"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uip.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uiplib.c"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uiplib.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uipopt.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uip_arch.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uip_arp.c"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uip_arp.h"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uip_timer.c"/>
|
||||||
|
<File Name="../../../../Source/third_party/uip/uip/uip_timer.h"/>
|
||||||
|
</VirtualDirectory>
|
||||||
|
</VirtualDirectory>
|
||||||
|
</VirtualDirectory>
|
||||||
|
</VirtualDirectory>
|
||||||
<VirtualDirectory Name="Demo">
|
<VirtualDirectory Name="Demo">
|
||||||
<VirtualDirectory Name="ARMCM3_LM3S_EK_LM3S6965_GCC">
|
<VirtualDirectory Name="ARMCM3_LM3S_EK_LM3S6965_GCC">
|
||||||
<VirtualDirectory Name="Prog">
|
<VirtualDirectory Name="Prog">
|
||||||
|
@ -80,6 +111,13 @@
|
||||||
<File Name="../lib/inc/hw_watchdog.h"/>
|
<File Name="../lib/inc/hw_watchdog.h"/>
|
||||||
<File Name="../lib/inc/lm3s6965.h"/>
|
<File Name="../lib/inc/lm3s6965.h"/>
|
||||||
</VirtualDirectory>
|
</VirtualDirectory>
|
||||||
|
<VirtualDirectory Name="uip">
|
||||||
|
<File Name="../lib/uip/clock-arch.c"/>
|
||||||
|
<File Name="../lib/uip/clock-arch.h"/>
|
||||||
|
<File Name="../lib/uip/netdev.c"/>
|
||||||
|
<File Name="../lib/uip/netdev.h"/>
|
||||||
|
<File Name="../lib/uip/uip-conf.h"/>
|
||||||
|
</VirtualDirectory>
|
||||||
</VirtualDirectory>
|
</VirtualDirectory>
|
||||||
<File Name="../boot.c"/>
|
<File Name="../boot.c"/>
|
||||||
<File Name="../boot.h"/>
|
<File Name="../boot.h"/>
|
||||||
|
@ -90,6 +128,8 @@
|
||||||
<File Name="../led.c"/>
|
<File Name="../led.c"/>
|
||||||
<File Name="../led.h"/>
|
<File Name="../led.h"/>
|
||||||
<File Name="../main.c"/>
|
<File Name="../main.c"/>
|
||||||
|
<File Name="../net.c"/>
|
||||||
|
<File Name="../net.h"/>
|
||||||
<File Name="../time.c"/>
|
<File Name="../time.c"/>
|
||||||
<File Name="../time.h"/>
|
<File Name="../time.h"/>
|
||||||
<File Name="../vectors.c"/>
|
<File Name="../vectors.c"/>
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2006, Swedish Institute of Computer Science.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* 3. Neither the name of the Institute nor the names of its contributors
|
||||||
|
* may be used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
* SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This file is part of the uIP TCP/IP stack
|
||||||
|
*
|
||||||
|
* $Id: clock-arch.c,v 1.2 2006/06/12 08:00:31 adam Exp $
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file
|
||||||
|
* Implementation of architecture-specific clock functionality
|
||||||
|
* \author
|
||||||
|
* Adam Dunkels <adam@sics.se>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "header.h" /* generic header */
|
||||||
|
#include "clock-arch.h"
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
clock_time_t
|
||||||
|
clock_time(void)
|
||||||
|
{
|
||||||
|
return (clock_time_t)TimeGet();
|
||||||
|
}
|
||||||
|
/*---------------------------------------------------------------------------*/
|
|
@ -0,0 +1,40 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2006, Swedish Institute of Computer Science.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* 3. Neither the name of the Institute nor the names of its contributors
|
||||||
|
* may be used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
* SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This file is part of the uIP TCP/IP stack
|
||||||
|
*
|
||||||
|
* $Id: clock-arch.h,v 1.2 2006/06/12 08:00:31 adam Exp $
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __CLOCK_ARCH_H__
|
||||||
|
#define __CLOCK_ARCH_H__
|
||||||
|
|
||||||
|
typedef int clock_time_t;
|
||||||
|
#define CLOCK_CONF_SECOND 1000
|
||||||
|
|
||||||
|
#endif /* __CLOCK_ARCH_H__ */
|
|
@ -0,0 +1,169 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2001, Swedish Institute of Computer Science.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* 3. Neither the name of the Institute nor the names of its contributors
|
||||||
|
* may be used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
* SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* Author: Adam Dunkels <adam@sics.se>
|
||||||
|
*
|
||||||
|
* $Id: netdev.c,v 1.8 2006/06/07 08:39:58 adam Exp $
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
#include "header.h" /* generic header */
|
||||||
|
#include "uip.h"
|
||||||
|
#include "uip_arp.h"
|
||||||
|
#include "inc/hw_memmap.h"
|
||||||
|
#include "inc/hw_types.h"
|
||||||
|
#include "inc/hw_ethernet.h"
|
||||||
|
#include "driverlib/sysctl.h"
|
||||||
|
#include "driverlib/gpio.h"
|
||||||
|
#include "driverlib/ethernet.h"
|
||||||
|
#include "driverlib/flash.h"
|
||||||
|
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
#define NETDEV_LINKUP_TIMEOUT_MS (5000)
|
||||||
|
|
||||||
|
#define NETDEV_DEFAULT_MACADDR0 (0x08)
|
||||||
|
#define NETDEV_DEFAULT_MACADDR1 (0x00)
|
||||||
|
#define NETDEV_DEFAULT_MACADDR2 (0x27)
|
||||||
|
#define NETDEV_DEFAULT_MACADDR3 (0x69)
|
||||||
|
#define NETDEV_DEFAULT_MACADDR4 (0x5B)
|
||||||
|
#define NETDEV_DEFAULT_MACADDR5 (0x45)
|
||||||
|
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
void netdev_init(void)
|
||||||
|
{
|
||||||
|
unsigned long ulTemp;
|
||||||
|
unsigned long ulLinkTimeOut;
|
||||||
|
|
||||||
|
/* enable and reset the ethernet controller. */
|
||||||
|
SysCtlPeripheralEnable(SYSCTL_PERIPH_ETH);
|
||||||
|
SysCtlPeripheralReset(SYSCTL_PERIPH_ETH);
|
||||||
|
/* enable port F for ethernet LEDs.
|
||||||
|
* LED0 Bit 3 Output
|
||||||
|
* LED1 Bit 2 Output
|
||||||
|
*/
|
||||||
|
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
|
||||||
|
GPIOPinTypeEthernetLED(GPIO_PORTF_BASE, GPIO_PIN_2 | GPIO_PIN_3);
|
||||||
|
/* intialize the ethernet controller and disable all ethernet controller
|
||||||
|
* interrupt sources.
|
||||||
|
*/
|
||||||
|
EthernetIntDisable(ETH_BASE, (ETH_INT_PHY | ETH_INT_MDIO | ETH_INT_RXER |
|
||||||
|
ETH_INT_RXOF | ETH_INT_TX | ETH_INT_TXER | ETH_INT_RX));
|
||||||
|
ulTemp = EthernetIntStatus(ETH_BASE, false);
|
||||||
|
EthernetIntClear(ETH_BASE, ulTemp);
|
||||||
|
|
||||||
|
/* initialize the ethernet controller for operation. */
|
||||||
|
EthernetInitExpClk(ETH_BASE, SysCtlClockGet());
|
||||||
|
/* configure the ethernet controller for normal operation.
|
||||||
|
* - Full Duplex
|
||||||
|
* - TX CRC Auto Generation
|
||||||
|
* - TX Padding Enabled
|
||||||
|
*/
|
||||||
|
EthernetConfigSet(ETH_BASE, (ETH_CFG_TX_DPLXEN | ETH_CFG_TX_CRCEN |
|
||||||
|
ETH_CFG_TX_PADEN));
|
||||||
|
/* wait for the link to become active. */
|
||||||
|
ulTemp = EthernetPHYRead(ETH_BASE, PHY_MR1);
|
||||||
|
ulLinkTimeOut = TimeGet() + NETDEV_LINKUP_TIMEOUT_MS;
|
||||||
|
|
||||||
|
while ((ulTemp & 0x0004) == 0)
|
||||||
|
{
|
||||||
|
ulTemp = EthernetPHYRead(ETH_BASE, PHY_MR1);
|
||||||
|
/* check for timeout so that the software program can still start if the
|
||||||
|
* ethernet cable is not connected.
|
||||||
|
*/
|
||||||
|
if (TimeGet() >= ulLinkTimeOut)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* enable the ethernet controller. */
|
||||||
|
EthernetEnable(ETH_BASE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
void netdev_setmacaddr(void)
|
||||||
|
{
|
||||||
|
struct uip_eth_addr macAddress;
|
||||||
|
unsigned long ulUser0, ulUser1;
|
||||||
|
|
||||||
|
/* set the default MAC address */
|
||||||
|
macAddress.addr[0] = NETDEV_DEFAULT_MACADDR0;
|
||||||
|
macAddress.addr[1] = NETDEV_DEFAULT_MACADDR1;
|
||||||
|
macAddress.addr[2] = NETDEV_DEFAULT_MACADDR2;
|
||||||
|
macAddress.addr[3] = NETDEV_DEFAULT_MACADDR3;
|
||||||
|
macAddress.addr[4] = NETDEV_DEFAULT_MACADDR4;
|
||||||
|
macAddress.addr[5] = NETDEV_DEFAULT_MACADDR5;
|
||||||
|
/* the LM3S eval kit should have a MAC address pre-propgrammed in flash by the
|
||||||
|
* manufacturer. try to use this one, otherwise use the default values.
|
||||||
|
*/
|
||||||
|
FlashUserGet(&ulUser0, &ulUser1);
|
||||||
|
if ( (ulUser0 != 0xffffffff) && (ulUser1 != 0xffffffff) )
|
||||||
|
{
|
||||||
|
macAddress.addr[0] = ((ulUser0 >> 0) & 0xff);
|
||||||
|
macAddress.addr[1] = ((ulUser0 >> 8) & 0xff);
|
||||||
|
macAddress.addr[2] = ((ulUser0 >> 16) & 0xff);
|
||||||
|
macAddress.addr[3] = ((ulUser1 >> 0) & 0xff);
|
||||||
|
macAddress.addr[4] = ((ulUser1 >> 8) & 0xff);
|
||||||
|
macAddress.addr[5] = ((ulUser1 >> 16) & 0xff);
|
||||||
|
}
|
||||||
|
EthernetMACAddrSet(ETH_BASE, &macAddress.addr[0]);
|
||||||
|
uip_setethaddr(macAddress);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
unsigned int netdev_read(void)
|
||||||
|
{
|
||||||
|
unsigned long ulTemp;
|
||||||
|
|
||||||
|
/* read and Clear the interrupt flag. */
|
||||||
|
ulTemp = EthernetIntStatus(ETH_BASE, false);
|
||||||
|
EthernetIntClear(ETH_BASE, ulTemp);
|
||||||
|
|
||||||
|
/* check to see if an RX Interrupt has occured. */
|
||||||
|
if(ulTemp & ETH_INT_RX)
|
||||||
|
{
|
||||||
|
return EthernetPacketGetNonBlocking(ETH_BASE, uip_buf, sizeof(uip_buf));
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
void netdev_send(void)
|
||||||
|
{
|
||||||
|
EthernetPacketPut(ETH_BASE, uip_buf, uip_len);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2001, Adam Dunkels.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* 3. All advertising materials mentioning features or use of this software
|
||||||
|
* must display the following acknowledgement:
|
||||||
|
* This product includes software developed by Adam Dunkels.
|
||||||
|
* 4. The name of the author may not be used to endorse or promote
|
||||||
|
* products derived from this software without specific prior
|
||||||
|
* written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
|
||||||
|
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||||
|
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||||
|
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This file is part of the uIP TCP/IP stack.
|
||||||
|
*
|
||||||
|
* $Id: netdev.h,v 1.1 2002/01/10 06:22:56 adam Exp $
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __NETDEV_H__
|
||||||
|
#define __NETDEV_H__
|
||||||
|
|
||||||
|
void netdev_init(void);
|
||||||
|
unsigned int netdev_read(void);
|
||||||
|
void netdev_send(void);
|
||||||
|
void netdev_setmacaddr(void);
|
||||||
|
|
||||||
|
#endif /* __NETDEV_H__ */
|
|
@ -0,0 +1,151 @@
|
||||||
|
/**
|
||||||
|
* \addtogroup uipopt
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \name Project-specific configuration options
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* uIP has a number of configuration options that can be overridden
|
||||||
|
* for each project. These are kept in a project-specific uip-conf.h
|
||||||
|
* file and all configuration names have the prefix UIP_CONF.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2006, Swedish Institute of Computer Science.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* 3. Neither the name of the Institute nor the names of its contributors
|
||||||
|
* may be used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
* SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This file is part of the uIP TCP/IP stack
|
||||||
|
*
|
||||||
|
* $Id: uip-conf.h,v 1.6 2006/06/12 08:00:31 adam Exp $
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file
|
||||||
|
* An example uIP configuration file
|
||||||
|
* \author
|
||||||
|
* Adam Dunkels <adam@sics.se>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __UIP_CONF_H__
|
||||||
|
#define __UIP_CONF_H__
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 8 bit datatype
|
||||||
|
*
|
||||||
|
* This typedef defines the 8-bit type used throughout uIP.
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
typedef unsigned char u8_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 16 bit datatype
|
||||||
|
*
|
||||||
|
* This typedef defines the 16-bit type used throughout uIP.
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
typedef unsigned short u16_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Statistics datatype
|
||||||
|
*
|
||||||
|
* This typedef defines the dataype used for keeping statistics in
|
||||||
|
* uIP.
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
typedef unsigned short uip_stats_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Maximum number of TCP connections.
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
#define UIP_CONF_MAX_CONNECTIONS 1
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Maximum number of listening TCP ports.
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
#define UIP_CONF_MAX_LISTENPORTS 1
|
||||||
|
|
||||||
|
/**
|
||||||
|
* uIP buffer size.
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
#define UIP_CONF_BUFFER_SIZE 1600
|
||||||
|
|
||||||
|
/**
|
||||||
|
* CPU byte order.
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
#define UIP_CONF_BYTE_ORDER LITTLE_ENDIAN
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Logging on or off
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
#define UIP_CONF_LOGGING 0
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UDP support on or off
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
#define UIP_CONF_UDP 0
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UDP checksums on or off
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
#define UIP_CONF_UDP_CHECKSUMS 1
|
||||||
|
|
||||||
|
/**
|
||||||
|
* uIP statistics on or off
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
#define UIP_CONF_STATISTICS 0
|
||||||
|
|
||||||
|
/* Here we include the header file for the application(s) we use in
|
||||||
|
our project. */
|
||||||
|
#include "boot.h"
|
||||||
|
#include "net.h"
|
||||||
|
|
||||||
|
#endif /* __UIP_CONF_H__ */
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
/** @} */
|
|
@ -53,6 +53,8 @@ int main(void)
|
||||||
{
|
{
|
||||||
/* initialize the microcontroller */
|
/* initialize the microcontroller */
|
||||||
Init();
|
Init();
|
||||||
|
/* initialize the network application */
|
||||||
|
NetInit();
|
||||||
/* initialize the bootloader interface */
|
/* initialize the bootloader interface */
|
||||||
BootComInit();
|
BootComInit();
|
||||||
|
|
||||||
|
@ -61,6 +63,8 @@ int main(void)
|
||||||
{
|
{
|
||||||
/* toggle LED with a fixed frequency */
|
/* toggle LED with a fixed frequency */
|
||||||
LedToggle();
|
LedToggle();
|
||||||
|
/* run the network task */
|
||||||
|
NetTask();
|
||||||
/* check for bootloader activation request */
|
/* check for bootloader activation request */
|
||||||
BootComCheckActivationRequest();
|
BootComCheckActivationRequest();
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,10 +43,17 @@ irq.c \
|
||||||
irq.h \
|
irq.h \
|
||||||
led.c \
|
led.c \
|
||||||
led.h \
|
led.h \
|
||||||
|
net.c \
|
||||||
|
net.h \
|
||||||
main.c \
|
main.c \
|
||||||
time.c \
|
time.c \
|
||||||
time.h \
|
time.h \
|
||||||
vectors.c \
|
vectors.c \
|
||||||
|
lib/uip/clock-arch.c \
|
||||||
|
lib/uip/clock-arch.h \
|
||||||
|
lib/uip/netdev.c \
|
||||||
|
lib/uip/netdev.h \
|
||||||
|
lib/uip/uip-conf.h \
|
||||||
lib/inc/asmdefs.h \
|
lib/inc/asmdefs.h \
|
||||||
lib/inc/hw_adc.h \
|
lib/inc/hw_adc.h \
|
||||||
lib/inc/hw_comp.h \
|
lib/inc/hw_comp.h \
|
||||||
|
@ -118,7 +125,26 @@ lib/driverlib/udma.h \
|
||||||
lib/driverlib/usb.c \
|
lib/driverlib/usb.c \
|
||||||
lib/driverlib/usb.h \
|
lib/driverlib/usb.h \
|
||||||
lib/driverlib/watchdog.c \
|
lib/driverlib/watchdog.c \
|
||||||
lib/driverlib/watchdog.h
|
lib/driverlib/watchdog.h \
|
||||||
|
../../../Source/third_party/uip/uip/clock.h \
|
||||||
|
../../../Source/third_party/uip/uip/lc-addrlabels.h \
|
||||||
|
../../../Source/third_party/uip/uip/lc-switch.h \
|
||||||
|
../../../Source/third_party/uip/uip/lc.h \
|
||||||
|
../../../Source/third_party/uip/uip/pt.h \
|
||||||
|
../../../Source/third_party/uip/uip/uip-fw.c \
|
||||||
|
../../../Source/third_party/uip/uip/uip-fw.h \
|
||||||
|
../../../Source/third_party/uip/uip/uip-neighbor.h \
|
||||||
|
../../../Source/third_party/uip/uip/uip-split.h \
|
||||||
|
../../../Source/third_party/uip/uip/uip.c \
|
||||||
|
../../../Source/third_party/uip/uip/uip.h \
|
||||||
|
../../../Source/third_party/uip/uip/uiplib.c \
|
||||||
|
../../../Source/third_party/uip/uip/uiplib.h \
|
||||||
|
../../../Source/third_party/uip/uip/uipopt.h \
|
||||||
|
../../../Source/third_party/uip/uip/uip_arch.h \
|
||||||
|
../../../Source/third_party/uip/uip/uip_arp.c \
|
||||||
|
../../../Source/third_party/uip/uip/uip_arp.h \
|
||||||
|
../../../Source/third_party/uip/uip/uip_timer.c \
|
||||||
|
../../../Source/third_party/uip/uip/uip_timer.h
|
||||||
|
|
||||||
|
|
||||||
#|---------------------------------------------------------------------------------------|
|
#|---------------------------------------------------------------------------------------|
|
||||||
|
|
|
@ -0,0 +1,207 @@
|
||||||
|
/************************************************************************************//**
|
||||||
|
* \file Demo\ARMCM3_LM3S_EK_LM3S6965_GCC\Prog\net.c
|
||||||
|
* \brief Network application for the uIP TCP/IP stack.
|
||||||
|
* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_GCC
|
||||||
|
* \internal
|
||||||
|
*----------------------------------------------------------------------------------------
|
||||||
|
* C O P Y R I G H T
|
||||||
|
*----------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) 2014 by Feaser http://www.feaser.com All rights reserved
|
||||||
|
*
|
||||||
|
*----------------------------------------------------------------------------------------
|
||||||
|
* L I C E N S E
|
||||||
|
*----------------------------------------------------------------------------------------
|
||||||
|
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as published by the Free
|
||||||
|
* Software Foundation, either version 3 of the License, or (at your option) any later
|
||||||
|
* version.
|
||||||
|
*
|
||||||
|
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||||
|
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||||
|
* PURPOSE. See the GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along with OpenBLT.
|
||||||
|
* If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* A special exception to the GPL is included to allow you to distribute a combined work
|
||||||
|
* that includes OpenBLT without being obliged to provide the source code for any
|
||||||
|
* proprietary components. The exception text is included at the bottom of the license
|
||||||
|
* file <license.html>.
|
||||||
|
*
|
||||||
|
* \endinternal
|
||||||
|
****************************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************************
|
||||||
|
* Include files
|
||||||
|
****************************************************************************************/
|
||||||
|
#include "header.h" /* generic header */
|
||||||
|
#include "netdev.h"
|
||||||
|
#include "uip.h"
|
||||||
|
#include "uip_arp.h"
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************************************************
|
||||||
|
* Macro definitions
|
||||||
|
****************************************************************************************/
|
||||||
|
/** \brief Delta time for the uIP periodic timer. */
|
||||||
|
#define NET_UIP_PERIODIC_TIMER_MS (500)
|
||||||
|
/** \brief Delta time for the uIP ARP timer. */
|
||||||
|
#define NET_UIP_ARP_TIMER_MS (10000)
|
||||||
|
/** \brief Macro for accessing the Ethernet header information in the buffer */
|
||||||
|
#define NET_UIP_HEADER_BUF ((struct uip_eth_hdr *)&uip_buf[0])
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************************************************
|
||||||
|
* Local data declarations
|
||||||
|
****************************************************************************************/
|
||||||
|
/** \brief Holds the time out value of the uIP periodic timer. */
|
||||||
|
static unsigned long periodicTimerTimeOut;
|
||||||
|
/** \brief Holds the time out value of the uIP ARP timer. */
|
||||||
|
static unsigned long ARPTimerTimeOut;
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************************//**
|
||||||
|
** \brief Initializes the TCP/IP network communication interface.
|
||||||
|
** \return none.
|
||||||
|
**
|
||||||
|
****************************************************************************************/
|
||||||
|
void NetInit(void)
|
||||||
|
{
|
||||||
|
uip_ipaddr_t ipaddr;
|
||||||
|
|
||||||
|
/* initialize the network device */
|
||||||
|
netdev_init();
|
||||||
|
/* initialize the uIP TCP/IP stack. */
|
||||||
|
uip_init();
|
||||||
|
/* set the IP address */
|
||||||
|
uip_ipaddr(ipaddr, BOOT_COM_NET_IPADDR0, BOOT_COM_NET_IPADDR1, BOOT_COM_NET_IPADDR2,
|
||||||
|
BOOT_COM_NET_IPADDR3);
|
||||||
|
uip_sethostaddr(ipaddr);
|
||||||
|
/* set the network mask */
|
||||||
|
uip_ipaddr(ipaddr, BOOT_COM_NET_NETMASK0, BOOT_COM_NET_NETMASK1, BOOT_COM_NET_NETMASK2,
|
||||||
|
BOOT_COM_NET_NETMASK3);
|
||||||
|
uip_setnetmask(ipaddr);
|
||||||
|
/* set the MAC address */
|
||||||
|
netdev_setmacaddr();
|
||||||
|
/* initialize the timer variables */
|
||||||
|
periodicTimerTimeOut = TimeGet() + NET_UIP_PERIODIC_TIMER_MS;
|
||||||
|
ARPTimerTimeOut = TimeGet() + NET_UIP_ARP_TIMER_MS;
|
||||||
|
/* start listening on the configured port for XCP transfers on TCP/IP */
|
||||||
|
uip_listen(HTONS(BOOT_COM_NET_PORT));
|
||||||
|
} /*** end of NetInit ***/
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************************//**
|
||||||
|
** \brief The uIP network application that detects the XCP connect command on the
|
||||||
|
** port used by the bootloader. This indicates that the bootloader should
|
||||||
|
** be activated.
|
||||||
|
** \return none.
|
||||||
|
**
|
||||||
|
****************************************************************************************/
|
||||||
|
void NetApp(void)
|
||||||
|
{
|
||||||
|
unsigned char *newDataPtr;
|
||||||
|
|
||||||
|
if (uip_connected())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (uip_newdata())
|
||||||
|
{
|
||||||
|
/* a new XCP command was received. check if this is the connect command and in this
|
||||||
|
* case activate the bootloader. with XCP on TCP/IP the first 4 bytes contain a
|
||||||
|
* counter value in which we are not really interested.
|
||||||
|
*/
|
||||||
|
newDataPtr = uip_appdata;
|
||||||
|
newDataPtr += 4;
|
||||||
|
/* check if this was an XCP CONNECT command */
|
||||||
|
if ((newDataPtr[0] == 0xff) && (newDataPtr[1] == 0x00))
|
||||||
|
{
|
||||||
|
/* connection request received so start the bootloader */
|
||||||
|
BootActivate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} /*** end of NetApp ***/
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************************//**
|
||||||
|
** \brief Runs the TCP/IP server task.
|
||||||
|
** \return none.
|
||||||
|
**
|
||||||
|
****************************************************************************************/
|
||||||
|
void NetTask(void)
|
||||||
|
{
|
||||||
|
unsigned long connection;
|
||||||
|
unsigned long packetLen;
|
||||||
|
|
||||||
|
/* check for an RX packet and read it. */
|
||||||
|
packetLen = netdev_read();
|
||||||
|
if(packetLen > 0)
|
||||||
|
{
|
||||||
|
/* set uip_len for uIP stack usage */
|
||||||
|
uip_len = (unsigned short)packetLen;
|
||||||
|
|
||||||
|
/* process incoming IP packets here. */
|
||||||
|
if(NET_UIP_HEADER_BUF->type == htons(UIP_ETHTYPE_IP))
|
||||||
|
{
|
||||||
|
uip_arp_ipin();
|
||||||
|
uip_input();
|
||||||
|
/* if the above function invocation resulted in data that
|
||||||
|
* should be sent out on the network, the global variable
|
||||||
|
* uip_len is set to a value > 0.
|
||||||
|
*/
|
||||||
|
if(uip_len > 0)
|
||||||
|
{
|
||||||
|
uip_arp_out();
|
||||||
|
netdev_send();
|
||||||
|
uip_len = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* process incoming ARP packets here. */
|
||||||
|
else if(NET_UIP_HEADER_BUF->type == htons(UIP_ETHTYPE_ARP))
|
||||||
|
{
|
||||||
|
uip_arp_arpin();
|
||||||
|
|
||||||
|
/* if the above function invocation resulted in data that
|
||||||
|
* should be sent out on the network, the global variable
|
||||||
|
* uip_len is set to a value > 0.
|
||||||
|
*/
|
||||||
|
if(uip_len > 0)
|
||||||
|
{
|
||||||
|
netdev_send();
|
||||||
|
uip_len = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* process TCP/IP Periodic Timer here. */
|
||||||
|
if (TimeGet() >= periodicTimerTimeOut)
|
||||||
|
{
|
||||||
|
periodicTimerTimeOut += NET_UIP_PERIODIC_TIMER_MS;
|
||||||
|
for (connection = 0; connection < UIP_CONNS; connection++)
|
||||||
|
{
|
||||||
|
uip_periodic(connection);
|
||||||
|
/* If the above function invocation resulted in data that
|
||||||
|
* should be sent out on the network, the global variable
|
||||||
|
* uip_len is set to a value > 0.
|
||||||
|
*/
|
||||||
|
if(uip_len > 0)
|
||||||
|
{
|
||||||
|
uip_arp_out();
|
||||||
|
netdev_send();
|
||||||
|
uip_len = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* process ARP Timer here. */
|
||||||
|
if (TimeGet() >= ARPTimerTimeOut)
|
||||||
|
{
|
||||||
|
ARPTimerTimeOut += NET_UIP_ARP_TIMER_MS;
|
||||||
|
uip_arp_timer();
|
||||||
|
}
|
||||||
|
} /*** end of NetServerTask ***/
|
||||||
|
|
||||||
|
|
||||||
|
/*********************************** end of net.c **************************************/
|
|
@ -0,0 +1,66 @@
|
||||||
|
/************************************************************************************//**
|
||||||
|
* \file Demo\ARMCM3_LM3S_EK_LM3S6965_GCC\Prog\net.h
|
||||||
|
* \brief Network application for the uIP TCP/IP stack.
|
||||||
|
* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_GCC
|
||||||
|
* \internal
|
||||||
|
*----------------------------------------------------------------------------------------
|
||||||
|
* C O P Y R I G H T
|
||||||
|
*----------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) 2014 by Feaser http://www.feaser.com All rights reserved
|
||||||
|
*
|
||||||
|
*----------------------------------------------------------------------------------------
|
||||||
|
* L I C E N S E
|
||||||
|
*----------------------------------------------------------------------------------------
|
||||||
|
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as published by the Free
|
||||||
|
* Software Foundation, either version 3 of the License, or (at your option) any later
|
||||||
|
* version.
|
||||||
|
*
|
||||||
|
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||||
|
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||||
|
* PURPOSE. See the GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along with OpenBLT.
|
||||||
|
* If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* A special exception to the GPL is included to allow you to distribute a combined work
|
||||||
|
* that includes OpenBLT without being obliged to provide the source code for any
|
||||||
|
* proprietary components. The exception text is included at the bottom of the license
|
||||||
|
* file <license.html>.
|
||||||
|
*
|
||||||
|
* \endinternal
|
||||||
|
****************************************************************************************/
|
||||||
|
#ifndef NET_H
|
||||||
|
#define NET_H
|
||||||
|
|
||||||
|
/****************************************************************************************
|
||||||
|
* Macro definitions
|
||||||
|
****************************************************************************************/
|
||||||
|
#ifndef UIP_APPCALL
|
||||||
|
#define UIP_APPCALL NetApp
|
||||||
|
#endif /* UIP_APPCALL */
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************************************************
|
||||||
|
* Type definitions
|
||||||
|
****************************************************************************************/
|
||||||
|
/** \brief Define the uip_tcp_appstate_t datatype. This is the state of our tcp/ip
|
||||||
|
* application, and the memory required for this state is allocated together
|
||||||
|
* with each TCP connection. One application state for each TCP connection.
|
||||||
|
*/
|
||||||
|
typedef struct net_state
|
||||||
|
{
|
||||||
|
unsigned char unused;
|
||||||
|
} uip_tcp_appstate_t;
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************************************************
|
||||||
|
* Function prototypes
|
||||||
|
****************************************************************************************/
|
||||||
|
void NetInit(void);
|
||||||
|
void NetApp(void);
|
||||||
|
void NetTask(void);
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* NET_H */
|
||||||
|
/*********************************** end of net.h **************************************/
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<Column0>211</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
|
<Column0>146</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
|
||||||
</Workspace>
|
</Workspace>
|
||||||
<Disassembly>
|
<Disassembly>
|
||||||
<col-names>
|
<col-names>
|
||||||
|
@ -39,7 +39,7 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<Wnd2>
|
<Wnd0>
|
||||||
<Tabs>
|
<Tabs>
|
||||||
<Tab>
|
<Tab>
|
||||||
<Identity>TabID-4214-26312</Identity>
|
<Identity>TabID-4214-26312</Identity>
|
||||||
|
@ -51,20 +51,20 @@
|
||||||
</Tab>
|
</Tab>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
|
||||||
<SelectedTab>0</SelectedTab></Wnd2><Wnd3><Tabs><Tab><Identity>TabID-14429-10902</Identity><TabName>Debug Log</TabName><Factory>Debug-Log</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd3><Wnd5><Tabs><Tab><Identity>TabID-29443-18340</Identity><TabName>Disassembly</TabName><Factory>Disassembly</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd5></Windows>
|
<SelectedTab>0</SelectedTab></Wnd0><Wnd1><Tabs><Tab><Identity>TabID-14429-10902</Identity><TabName>Debug Log</TabName><Factory>Debug-Log</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd1><Wnd4><Tabs><Tab><Identity>TabID-29443-18340</Identity><TabName>Disassembly</TabName><Factory>Disassembly</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd4></Windows>
|
||||||
<Editor>
|
<Editor>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\blt_conf.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>109</YPos2><SelStart2>7195</SelStart2><SelEnd2>7195</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>40</YPos2><SelStart2>3038</SelStart2><SelEnd2>3038</SelEnd2></Tab><ActiveTab>1</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\..\..\Source\backdoor.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>13</YPos2><SelStart2>3088</SelStart2><SelEnd2>3088</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>86</YPos2><SelStart2>6203</SelStart2><SelEnd2>6203</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\..\..\Source\ARMCM3_LM3S\cpu.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>24</YPos2><SelStart2>2556</SelStart2><SelEnd2>2556</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>0</YPos2><SelStart2>2346</SelStart2><SelEnd2>2373</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\..\..\Source\ARMCM3_LM3S\types.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>7</YPos2><SelStart2>2676</SelStart2><SelEnd2>2684</SelEnd2></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
|
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\blt_conf.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>73</YPos2><SelStart2>0</SelStart2><SelEnd2>0</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>40</YPos2><SelStart2>3038</SelStart2><SelEnd2>3038</SelEnd2></Tab><ActiveTab>1</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\..\..\Source\backdoor.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>24</YPos2><SelStart2>2978</SelStart2><SelEnd2>3026</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\lib\uip\netdev.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>58</YPos2><SelStart2>3802</SelStart2><SelEnd2>3802</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\..\..\Source\net.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>92</YPos2><SelStart2>4500</SelStart2><SelEnd2>4500</SelEnd2></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
|
||||||
<Positions>
|
<Positions>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<Top><Row0><Sizes><Toolbar-02a0ba70><key>iaridepm.enu1</key></Toolbar-02a0ba70></Sizes></Row0><Row1><Sizes><Toolbar-036a10f8><key>debuggergui.enu1</key></Toolbar-036a10f8></Sizes></Row1></Top><Left><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>741</Bottom><Right>285</Right><x>-2</x><y>-2</y><xscreen>240</xscreen><yscreen>243</yscreen><sizeHorzCX>125000</sizeHorzCX><sizeHorzCY>241071</sizeHorzCY><sizeVertCX>149479</sizeVertCX><sizeVertCY>737103</sizeVertCY></Rect></Wnd2></Sizes></Row0></Left><Right><Row0><Sizes><Wnd5><Rect><Top>-2</Top><Left>-2</Left><Bottom>741</Bottom><Right>198</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>104167</sizeHorzCX><sizeHorzCY>198413</sizeHorzCY><sizeVertCX>104167</sizeVertCX><sizeVertCY>737103</sizeVertCY></Rect></Wnd5></Sizes></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1922</Right><x>-2</x><y>-2</y><xscreen>1924</xscreen><yscreen>200</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>198413</sizeHorzCY><sizeVertCX>104167</sizeVertCX><sizeVertCY>198413</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
|
<Top><Row0><Sizes><Toolbar-02beba70><key>iaridepm.enu1</key></Toolbar-02beba70></Sizes></Row0><Row1><Sizes><Toolbar-0b064bc8><key>debuggergui.enu1</key></Toolbar-0b064bc8></Sizes></Row1></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>597</Bottom><Right>237</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>125000</sizeHorzCX><sizeHorzCY>241546</sizeHorzCY><sizeVertCX>149375</sizeVertCX><sizeVertCY>723430</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes><Wnd4><Rect><Top>-2</Top><Left>-2</Left><Bottom>597</Bottom><Right>165</Right><x>-2</x><y>-2</y><xscreen>167</xscreen><yscreen>164</yscreen><sizeHorzCX>104375</sizeHorzCX><sizeHorzCY>198068</sizeHorzCY><sizeVertCX>104375</sizeVertCX><sizeVertCY>723430</sizeVertCY></Rect></Wnd4></Sizes></Row0></Right><Bottom><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>162</Bottom><Right>1602</Right><x>-2</x><y>-2</y><xscreen>1604</xscreen><yscreen>164</yscreen><sizeHorzCX>1002500</sizeHorzCX><sizeHorzCY>198068</sizeHorzCY><sizeVertCX>104375</sizeVertCX><sizeVertCY>198068</sizeVertCY></Rect></Wnd1></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
|
||||||
</Desktop>
|
</Desktop>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ TriggerName=main
|
||||||
LimitSize=0
|
LimitSize=0
|
||||||
ByteLimit=50
|
ByteLimit=50
|
||||||
[DebugChecksum]
|
[DebugChecksum]
|
||||||
Checksum=1777559187
|
Checksum=219067476
|
||||||
[Exceptions]
|
[Exceptions]
|
||||||
StopOnUncaught=_ 0
|
StopOnUncaught=_ 0
|
||||||
StopOnThrow=_ 0
|
StopOnThrow=_ 0
|
||||||
|
|
|
@ -12,12 +12,12 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<Column0>410</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
|
<Column0>326</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
|
||||||
</Workspace>
|
</Workspace>
|
||||||
<Build><PreferedWindows><Position>1</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Find-All-References</Factory></Window></Windows></PreferedWindows><ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1155</ColumnWidth1><ColumnWidth2>308</ColumnWidth2><ColumnWidth3>77</ColumnWidth3></Build><Find-in-Files><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><ColumnWidth0>552</ColumnWidth0><ColumnWidth1>78</ColumnWidth1><ColumnWidth2>946</ColumnWidth2></Find-in-Files><TerminalIO/><PROJECT_GUI_CALL_GRAPH><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><col-names><item>File</item><item>Function</item><item>Line</item></col-names><col-widths><item>200</item><item>700</item><item>100</item></col-widths></PROJECT_GUI_CALL_GRAPH><Select-Ambiguous-Definitions><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Build</Factory></Window><Window><Factory>Find-in-Files</Factory></Window><Window><Factory>Find-All-References</Factory></Window></Windows></PreferedWindows><ColumnWidth0>664</ColumnWidth0><ColumnWidth1>94</ColumnWidth1><ColumnWidth2>1138</ColumnWidth2></Select-Ambiguous-Definitions><Find-All-References><PreferedWindows><Position>1</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Build</Factory></Window></Windows></PreferedWindows><ColumnWidth0>664</ColumnWidth0><ColumnWidth1>94</ColumnWidth1><ColumnWidth2>1138</ColumnWidth2></Find-All-References></Static>
|
<Build><PreferedWindows><Position>1</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Find-All-References</Factory></Window></Windows></PreferedWindows><ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1155</ColumnWidth1><ColumnWidth2>308</ColumnWidth2><ColumnWidth3>77</ColumnWidth3></Build><Find-in-Files><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><ColumnWidth0>552</ColumnWidth0><ColumnWidth1>78</ColumnWidth1><ColumnWidth2>946</ColumnWidth2></Find-in-Files><TerminalIO/><PROJECT_GUI_CALL_GRAPH><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><col-names><item>File</item><item>Function</item><item>Line</item></col-names><col-widths><item>200</item><item>700</item><item>100</item></col-widths></PROJECT_GUI_CALL_GRAPH><Select-Ambiguous-Definitions><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Build</Factory></Window><Window><Factory>Find-in-Files</Factory></Window><Window><Factory>Find-All-References</Factory></Window></Windows></PreferedWindows><ColumnWidth0>664</ColumnWidth0><ColumnWidth1>94</ColumnWidth1><ColumnWidth2>1138</ColumnWidth2></Select-Ambiguous-Definitions><Find-All-References><PreferedWindows><Position>1</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Build</Factory></Window></Windows></PreferedWindows><ColumnWidth0>664</ColumnWidth0><ColumnWidth1>94</ColumnWidth1><ColumnWidth2>1138</ColumnWidth2></Find-All-References></Static>
|
||||||
<Windows>
|
<Windows>
|
||||||
|
|
||||||
<Wnd1>
|
<Wnd0>
|
||||||
<Tabs>
|
<Tabs>
|
||||||
<Tab>
|
<Tab>
|
||||||
<Identity>TabID-31649-22318</Identity>
|
<Identity>TabID-31649-22318</Identity>
|
||||||
|
@ -25,24 +25,24 @@
|
||||||
<Factory>Workspace</Factory>
|
<Factory>Workspace</Factory>
|
||||||
<Session>
|
<Session>
|
||||||
|
|
||||||
<NodeDict><ExpandedNode>lm3s6965</ExpandedNode><ExpandedNode>lm3s6965/Boot</ExpandedNode><ExpandedNode>lm3s6965/Output</ExpandedNode><ExpandedNode>lm3s6965/Source</ExpandedNode><ExpandedNode>lm3s6965/Source/ARMCM3_LM3S</ExpandedNode><ExpandedNode>lm3s6965/Source/fatfs</ExpandedNode></NodeDict></Session>
|
<NodeDict><ExpandedNode>lm3s6965</ExpandedNode><ExpandedNode>lm3s6965/Boot</ExpandedNode><ExpandedNode>lm3s6965/Boot/lib</ExpandedNode><ExpandedNode>lm3s6965/Boot/lib/uip</ExpandedNode><ExpandedNode>lm3s6965/Output</ExpandedNode><ExpandedNode>lm3s6965/Source</ExpandedNode><ExpandedNode>lm3s6965/Source/ARMCM3_LM3S</ExpandedNode><ExpandedNode>lm3s6965/Source/fatfs</ExpandedNode></NodeDict></Session>
|
||||||
</Tab>
|
</Tab>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
|
||||||
<SelectedTab>0</SelectedTab></Wnd1><Wnd2><Tabs><Tab><Identity>TabID-23631-11730</Identity><TabName>Build</TabName><Factory>Build</Factory><Session/></Tab><Tab><Identity>TabID-25094-12726</Identity><TabName>Ambiguous Definitions</TabName><Factory>Select-Ambiguous-Definitions</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd2></Windows>
|
<SelectedTab>0</SelectedTab></Wnd0><Wnd3><Tabs><Tab><Identity>TabID-23631-11730</Identity><TabName>Build</TabName><Factory>Build</Factory><Session/></Tab><Tab><Identity>TabID-25094-12726</Identity><TabName>Ambiguous Definitions</TabName><Factory>Select-Ambiguous-Definitions</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd3></Windows>
|
||||||
<Editor>
|
<Editor>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\blt_conf.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>109</YPos2><SelStart2>7195</SelStart2><SelEnd2>7195</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>40</YPos2><SelStart2>3038</SelStart2><SelEnd2>3038</SelEnd2></Tab><ActiveTab>1</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\..\..\Source\backdoor.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>13</YPos2><SelStart2>3088</SelStart2><SelEnd2>3088</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>86</YPos2><SelStart2>6203</SelStart2><SelEnd2>6203</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\..\..\Source\ARMCM3_LM3S\cpu.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>24</YPos2><SelStart2>2556</SelStart2><SelEnd2>2556</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>0</YPos2><SelStart2>2346</SelStart2><SelEnd2>2373</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\..\..\Source\ARMCM3_LM3S\types.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>7</YPos2><SelStart2>2676</SelStart2><SelEnd2>2684</SelEnd2></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
|
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\blt_conf.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>73</YPos2><SelStart2>0</SelStart2><SelEnd2>0</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>40</YPos2><SelStart2>3038</SelStart2><SelEnd2>3038</SelEnd2></Tab><ActiveTab>1</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\..\..\Source\backdoor.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>24</YPos2><SelStart2>2978</SelStart2><SelEnd2>3026</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\lib\uip\netdev.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>58</YPos2><SelStart2>3802</SelStart2><SelEnd2>3802</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\..\..\Source\net.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>92</YPos2><SelStart2>4500</SelStart2><SelEnd2>4500</SelEnd2></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
|
||||||
<Positions>
|
<Positions>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<Top><Row0><Sizes><Toolbar-02a0ba70><key>iaridepm.enu1</key></Toolbar-02a0ba70></Sizes></Row0><Row1><Sizes/></Row1><Row2><Sizes/></Row2></Top><Left><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>548</Bottom><Right>501</Right><x>-2</x><y>-2</y><xscreen>372</xscreen><yscreen>353</yscreen><sizeHorzCX>193750</sizeHorzCX><sizeHorzCY>350198</sizeHorzCY><sizeVertCX>261979</sizeVertCX><sizeVertCY>545635</sizeVertCY></Rect></Wnd1><Wnd2><Rect><Top>0</Top><Left>0</Left><Bottom>0</Bottom><Right>49443096</Right><x>-2</x><y>546</y><xscreen>258</xscreen><yscreen>238</yscreen><sizeHorzCX>134375</sizeHorzCX><sizeHorzCY>236111</sizeHorzCY><sizeVertCX>261979</sizeVertCX><sizeVertCY>413690</sizeVertCY></Rect></Wnd2></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes/></Row0></Bottom><Float><Sizes/></Float></Positions>
|
<Top><Row0><Sizes><Toolbar-02beba70><key>iaridepm.enu1</key></Toolbar-02beba70></Sizes></Row0><Row1><Sizes/></Row1><Row2><Sizes/></Row2></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>446</Bottom><Right>417</Right><x>-2</x><y>-2</y><xscreen>310</xscreen><yscreen>290</yscreen><sizeHorzCX>193750</sizeHorzCX><sizeHorzCY>350242</sizeHorzCY><sizeVertCX>261875</sizeVertCX><sizeVertCY>541063</sizeVertCY></Rect></Wnd0><Wnd3><Rect><Top>0</Top><Left>0</Left><Bottom>0</Bottom><Right>7</Right><x>-2</x><y>444</y><xscreen>215</xscreen><yscreen>195</yscreen><sizeHorzCX>134375</sizeHorzCX><sizeHorzCY>235507</sizeHorzCY><sizeVertCX>261875</sizeVertCX><sizeVertCY>409420</sizeVertCY></Rect></Wnd3></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes/></Row0></Bottom><Float><Sizes/></Float></Positions>
|
||||||
</Desktop>
|
</Desktop>
|
||||||
</Workspace>
|
</Workspace>
|
||||||
|
|
||||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
@ -42,7 +42,7 @@
|
||||||
** \return none.
|
** \return none.
|
||||||
**
|
**
|
||||||
****************************************************************************************/
|
****************************************************************************************/
|
||||||
static void BootActivate(void)
|
void BootActivate(void)
|
||||||
{
|
{
|
||||||
/* perform software reset to activate the bootoader again */
|
/* perform software reset to activate the bootoader again */
|
||||||
SysCtlReset();
|
SysCtlReset();
|
||||||
|
|
|
@ -38,6 +38,7 @@
|
||||||
****************************************************************************************/
|
****************************************************************************************/
|
||||||
void BootComInit(void);
|
void BootComInit(void);
|
||||||
void BootComCheckActivationRequest(void);
|
void BootComCheckActivationRequest(void);
|
||||||
|
void BootActivate(void);
|
||||||
|
|
||||||
|
|
||||||
#endif /* BOOT_H */
|
#endif /* BOOT_H */
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
#include "irq.h" /* IRQ driver */
|
#include "irq.h" /* IRQ driver */
|
||||||
#include "led.h" /* LED driver */
|
#include "led.h" /* LED driver */
|
||||||
#include "time.h" /* Timer driver */
|
#include "time.h" /* Timer driver */
|
||||||
|
#include "net.h" /* TCP/IP server application */
|
||||||
#include "inc/hw_ints.h"
|
#include "inc/hw_ints.h"
|
||||||
#include "inc/hw_memmap.h"
|
#include "inc/hw_memmap.h"
|
||||||
#include "inc/hw_nvic.h"
|
#include "inc/hw_nvic.h"
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -302,6 +302,8 @@
|
||||||
<state>$PROJ_DIR$\..\lib</state>
|
<state>$PROJ_DIR$\..\lib</state>
|
||||||
<state>$PROJ_DIR$\..\lib\inc</state>
|
<state>$PROJ_DIR$\..\lib\inc</state>
|
||||||
<state>$PROJ_DIR$\..\lib\driverlib</state>
|
<state>$PROJ_DIR$\..\lib\driverlib</state>
|
||||||
|
<state>$PROJ_DIR$\..\lib\uip</state>
|
||||||
|
<state>$PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip</state>
|
||||||
</option>
|
</option>
|
||||||
<option>
|
<option>
|
||||||
<name>CCStdIncCheck</name>
|
<name>CCStdIncCheck</name>
|
||||||
|
@ -2064,6 +2066,87 @@
|
||||||
<name>$PROJ_DIR$\..\lib\inc\lm3s6965.h</name>
|
<name>$PROJ_DIR$\..\lib\inc\lm3s6965.h</name>
|
||||||
</file>
|
</file>
|
||||||
</group>
|
</group>
|
||||||
|
<group>
|
||||||
|
<name>uip</name>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\lib\uip\clock-arch.c</name>
|
||||||
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\lib\uip\clock-arch.h</name>
|
||||||
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\lib\uip\netdev.c</name>
|
||||||
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\lib\uip\netdev.h</name>
|
||||||
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\lib\uip\uip-conf.h</name>
|
||||||
|
</file>
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
|
<group>
|
||||||
|
<name>third_party</name>
|
||||||
|
<group>
|
||||||
|
<name>uip</name>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\clock.h</name>
|
||||||
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\lc-addrlabels.h</name>
|
||||||
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\lc-switch.h</name>
|
||||||
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\lc.h</name>
|
||||||
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\pt.h</name>
|
||||||
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip-fw.c</name>
|
||||||
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip-fw.h</name>
|
||||||
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip-neighbor.h</name>
|
||||||
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip-split.h</name>
|
||||||
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip.c</name>
|
||||||
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip.h</name>
|
||||||
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arch.h</name>
|
||||||
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arp.c</name>
|
||||||
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arp.h</name>
|
||||||
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_timer.c</name>
|
||||||
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_timer.h</name>
|
||||||
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uiplib.c</name>
|
||||||
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uiplib.h</name>
|
||||||
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uipopt.h</name>
|
||||||
|
</file>
|
||||||
|
</group>
|
||||||
</group>
|
</group>
|
||||||
<file>
|
<file>
|
||||||
<name>$PROJ_DIR$\..\boot.c</name>
|
<name>$PROJ_DIR$\..\boot.c</name>
|
||||||
|
@ -2092,6 +2175,12 @@
|
||||||
<file>
|
<file>
|
||||||
<name>$PROJ_DIR$\..\main.c</name>
|
<name>$PROJ_DIR$\..\main.c</name>
|
||||||
</file>
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\net.c</name>
|
||||||
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\net.h</name>
|
||||||
|
</file>
|
||||||
<file>
|
<file>
|
||||||
<name>$PROJ_DIR$\..\time.c</name>
|
<name>$PROJ_DIR$\..\time.c</name>
|
||||||
</file>
|
</file>
|
||||||
|
|
|
@ -11,7 +11,7 @@ ByteLimit=50
|
||||||
[Breakpoints]
|
[Breakpoints]
|
||||||
Count=0
|
Count=0
|
||||||
[DebugChecksum]
|
[DebugChecksum]
|
||||||
Checksum=21002497
|
Checksum=-1260324233
|
||||||
[Exceptions]
|
[Exceptions]
|
||||||
StopOnUncaught=_ 0
|
StopOnUncaught=_ 0
|
||||||
StopOnThrow=_ 0
|
StopOnThrow=_ 0
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<Column0>283</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
|
<Column0>223</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
|
||||||
</Workspace>
|
</Workspace>
|
||||||
<Build>
|
<Build>
|
||||||
<PreferedWindows>
|
<PreferedWindows>
|
||||||
|
@ -43,24 +43,24 @@
|
||||||
<Factory>Workspace</Factory>
|
<Factory>Workspace</Factory>
|
||||||
<Session>
|
<Session>
|
||||||
|
|
||||||
<NodeDict><ExpandedNode>lm3s6965</ExpandedNode><ExpandedNode>lm3s6965/Output</ExpandedNode><ExpandedNode>lm3s6965/Prog</ExpandedNode></NodeDict></Session>
|
<NodeDict><ExpandedNode>lm3s6965</ExpandedNode><ExpandedNode>lm3s6965/Output</ExpandedNode><ExpandedNode>lm3s6965/Prog</ExpandedNode><ExpandedNode>lm3s6965/Prog/lib</ExpandedNode><ExpandedNode>lm3s6965/Prog/lib/uip</ExpandedNode></NodeDict></Session>
|
||||||
</Tab>
|
</Tab>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
|
||||||
<SelectedTab>0</SelectedTab></Wnd0><Wnd1><Tabs><Tab><Identity>TabID-14407-15370</Identity><TabName>Build</TabName><Factory>Build</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd1></Windows>
|
<SelectedTab>0</SelectedTab></Wnd0><Wnd2><Tabs><Tab><Identity>TabID-32469-16784</Identity><TabName>Build</TabName><Factory>Build</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd2></Windows>
|
||||||
<Editor>
|
<Editor>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>71</YPos2><SelStart2>4426</SelStart2><SelEnd2>4426</SelEnd2></Tab><ActiveTab>0</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\led.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>58</YPos2><SelStart2>3595</SelStart2><SelEnd2>3595</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\boot.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>116</YPos2><SelStart2>5573</SelStart2><SelEnd2>5573</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\cstart.s</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>15</YPos2><SelStart2>2608</SelStart2><SelEnd2>2608</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\vectors.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>63</YPos2><SelStart2>1290</SelStart2><SelEnd2>1290</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\time.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>0</YPos2><SelStart2>4346</SelStart2><SelEnd2>4346</SelEnd2></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
|
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\led.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>45</YPos2><SelStart2>3072</SelStart2><SelEnd2>3072</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\boot.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>45</YPos2><SelStart2>1098</SelStart2><SelEnd2>1098</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>49</YPos2><SelStart2>3128</SelStart2><SelEnd2>3128</SelEnd2></Tab><ActiveTab>2</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\lib\uip\netdev.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>60</YPos2><SelStart2>2696</SelStart2><SelEnd2>2696</SelEnd2></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
|
||||||
<Positions>
|
<Positions>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<Top><Row0><Sizes><Toolbar-02a4ba70><key>iaridepm.enu1</key></Toolbar-02a4ba70></Sizes></Row0></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>760</Bottom><Right>357</Right><x>-2</x><y>-2</y><xscreen>186</xscreen><yscreen>205</yscreen><sizeHorzCX>96875</sizeHorzCX><sizeHorzCY>203373</sizeHorzCY><sizeVertCX>186979</sizeVertCX><sizeVertCY>755952</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>203</Bottom><Right>1922</Right><x>-2</x><y>-2</y><xscreen>1924</xscreen><yscreen>205</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>203373</sizeHorzCY><sizeVertCX>96875</sizeVertCX><sizeVertCY>203373</sizeVertCY></Rect></Wnd1></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
|
<Top><Row0><Sizes><Toolbar-02acba70><key>iaridepm.enu1</key></Toolbar-02acba70></Sizes></Row0></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>621</Bottom><Right>297</Right><x>-2</x><y>-2</y><xscreen>155</xscreen><yscreen>168</yscreen><sizeHorzCX>96875</sizeHorzCX><sizeHorzCY>202899</sizeHorzCY><sizeVertCX>186875</sizeVertCX><sizeVertCY>752415</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>162</Bottom><Right>1602</Right><x>-2</x><y>-2</y><xscreen>1604</xscreen><yscreen>164</yscreen><sizeHorzCX>1002500</sizeHorzCX><sizeHorzCY>198068</sizeHorzCY><sizeVertCX>104375</sizeVertCX><sizeVertCY>198068</sizeVertCY></Rect></Wnd2></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
|
||||||
</Desktop>
|
</Desktop>
|
||||||
</Workspace>
|
</Workspace>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2006, Swedish Institute of Computer Science.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* 3. Neither the name of the Institute nor the names of its contributors
|
||||||
|
* may be used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
* SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This file is part of the uIP TCP/IP stack
|
||||||
|
*
|
||||||
|
* $Id: clock-arch.c,v 1.2 2006/06/12 08:00:31 adam Exp $
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file
|
||||||
|
* Implementation of architecture-specific clock functionality
|
||||||
|
* \author
|
||||||
|
* Adam Dunkels <adam@sics.se>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "header.h" /* generic header */
|
||||||
|
#include "clock-arch.h"
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
clock_time_t
|
||||||
|
clock_time(void)
|
||||||
|
{
|
||||||
|
return (clock_time_t)TimeGet();
|
||||||
|
}
|
||||||
|
/*---------------------------------------------------------------------------*/
|
|
@ -0,0 +1,40 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2006, Swedish Institute of Computer Science.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* 3. Neither the name of the Institute nor the names of its contributors
|
||||||
|
* may be used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
* SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This file is part of the uIP TCP/IP stack
|
||||||
|
*
|
||||||
|
* $Id: clock-arch.h,v 1.2 2006/06/12 08:00:31 adam Exp $
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __CLOCK_ARCH_H__
|
||||||
|
#define __CLOCK_ARCH_H__
|
||||||
|
|
||||||
|
typedef int clock_time_t;
|
||||||
|
#define CLOCK_CONF_SECOND 1000
|
||||||
|
|
||||||
|
#endif /* __CLOCK_ARCH_H__ */
|
|
@ -0,0 +1,169 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2001, Swedish Institute of Computer Science.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* 3. Neither the name of the Institute nor the names of its contributors
|
||||||
|
* may be used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
* SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* Author: Adam Dunkels <adam@sics.se>
|
||||||
|
*
|
||||||
|
* $Id: netdev.c,v 1.8 2006/06/07 08:39:58 adam Exp $
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
#include "header.h" /* generic header */
|
||||||
|
#include "uip.h"
|
||||||
|
#include "uip_arp.h"
|
||||||
|
#include "inc/hw_memmap.h"
|
||||||
|
#include "inc/hw_types.h"
|
||||||
|
#include "inc/hw_ethernet.h"
|
||||||
|
#include "driverlib/sysctl.h"
|
||||||
|
#include "driverlib/gpio.h"
|
||||||
|
#include "driverlib/ethernet.h"
|
||||||
|
#include "driverlib/flash.h"
|
||||||
|
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
#define NETDEV_LINKUP_TIMEOUT_MS (5000)
|
||||||
|
|
||||||
|
#define NETDEV_DEFAULT_MACADDR0 (0x08)
|
||||||
|
#define NETDEV_DEFAULT_MACADDR1 (0x00)
|
||||||
|
#define NETDEV_DEFAULT_MACADDR2 (0x27)
|
||||||
|
#define NETDEV_DEFAULT_MACADDR3 (0x69)
|
||||||
|
#define NETDEV_DEFAULT_MACADDR4 (0x5B)
|
||||||
|
#define NETDEV_DEFAULT_MACADDR5 (0x45)
|
||||||
|
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
void netdev_init(void)
|
||||||
|
{
|
||||||
|
unsigned long ulTemp;
|
||||||
|
unsigned long ulLinkTimeOut;
|
||||||
|
|
||||||
|
/* enable and reset the ethernet controller. */
|
||||||
|
SysCtlPeripheralEnable(SYSCTL_PERIPH_ETH);
|
||||||
|
SysCtlPeripheralReset(SYSCTL_PERIPH_ETH);
|
||||||
|
/* enable port F for ethernet LEDs.
|
||||||
|
* LED0 Bit 3 Output
|
||||||
|
* LED1 Bit 2 Output
|
||||||
|
*/
|
||||||
|
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
|
||||||
|
GPIOPinTypeEthernetLED(GPIO_PORTF_BASE, GPIO_PIN_2 | GPIO_PIN_3);
|
||||||
|
/* intialize the ethernet controller and disable all ethernet controller
|
||||||
|
* interrupt sources.
|
||||||
|
*/
|
||||||
|
EthernetIntDisable(ETH_BASE, (ETH_INT_PHY | ETH_INT_MDIO | ETH_INT_RXER |
|
||||||
|
ETH_INT_RXOF | ETH_INT_TX | ETH_INT_TXER | ETH_INT_RX));
|
||||||
|
ulTemp = EthernetIntStatus(ETH_BASE, false);
|
||||||
|
EthernetIntClear(ETH_BASE, ulTemp);
|
||||||
|
|
||||||
|
/* initialize the ethernet controller for operation. */
|
||||||
|
EthernetInitExpClk(ETH_BASE, SysCtlClockGet());
|
||||||
|
/* configure the ethernet controller for normal operation.
|
||||||
|
* - Full Duplex
|
||||||
|
* - TX CRC Auto Generation
|
||||||
|
* - TX Padding Enabled
|
||||||
|
*/
|
||||||
|
EthernetConfigSet(ETH_BASE, (ETH_CFG_TX_DPLXEN | ETH_CFG_TX_CRCEN |
|
||||||
|
ETH_CFG_TX_PADEN));
|
||||||
|
/* wait for the link to become active. */
|
||||||
|
ulTemp = EthernetPHYRead(ETH_BASE, PHY_MR1);
|
||||||
|
ulLinkTimeOut = TimeGet() + NETDEV_LINKUP_TIMEOUT_MS;
|
||||||
|
|
||||||
|
while ((ulTemp & 0x0004) == 0)
|
||||||
|
{
|
||||||
|
ulTemp = EthernetPHYRead(ETH_BASE, PHY_MR1);
|
||||||
|
/* check for timeout so that the software program can still start if the
|
||||||
|
* ethernet cable is not connected.
|
||||||
|
*/
|
||||||
|
if (TimeGet() >= ulLinkTimeOut)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* enable the ethernet controller. */
|
||||||
|
EthernetEnable(ETH_BASE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
void netdev_setmacaddr(void)
|
||||||
|
{
|
||||||
|
struct uip_eth_addr macAddress;
|
||||||
|
unsigned long ulUser0, ulUser1;
|
||||||
|
|
||||||
|
/* set the default MAC address */
|
||||||
|
macAddress.addr[0] = NETDEV_DEFAULT_MACADDR0;
|
||||||
|
macAddress.addr[1] = NETDEV_DEFAULT_MACADDR1;
|
||||||
|
macAddress.addr[2] = NETDEV_DEFAULT_MACADDR2;
|
||||||
|
macAddress.addr[3] = NETDEV_DEFAULT_MACADDR3;
|
||||||
|
macAddress.addr[4] = NETDEV_DEFAULT_MACADDR4;
|
||||||
|
macAddress.addr[5] = NETDEV_DEFAULT_MACADDR5;
|
||||||
|
/* the LM3S eval kit should have a MAC address pre-propgrammed in flash by the
|
||||||
|
* manufacturer. try to use this one, otherwise use the default values.
|
||||||
|
*/
|
||||||
|
FlashUserGet(&ulUser0, &ulUser1);
|
||||||
|
if ( (ulUser0 != 0xffffffff) && (ulUser1 != 0xffffffff) )
|
||||||
|
{
|
||||||
|
macAddress.addr[0] = ((ulUser0 >> 0) & 0xff);
|
||||||
|
macAddress.addr[1] = ((ulUser0 >> 8) & 0xff);
|
||||||
|
macAddress.addr[2] = ((ulUser0 >> 16) & 0xff);
|
||||||
|
macAddress.addr[3] = ((ulUser1 >> 0) & 0xff);
|
||||||
|
macAddress.addr[4] = ((ulUser1 >> 8) & 0xff);
|
||||||
|
macAddress.addr[5] = ((ulUser1 >> 16) & 0xff);
|
||||||
|
}
|
||||||
|
EthernetMACAddrSet(ETH_BASE, &macAddress.addr[0]);
|
||||||
|
uip_setethaddr(macAddress);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
unsigned int netdev_read(void)
|
||||||
|
{
|
||||||
|
unsigned long ulTemp;
|
||||||
|
|
||||||
|
/* read and Clear the interrupt flag. */
|
||||||
|
ulTemp = EthernetIntStatus(ETH_BASE, false);
|
||||||
|
EthernetIntClear(ETH_BASE, ulTemp);
|
||||||
|
|
||||||
|
/* check to see if an RX Interrupt has occured. */
|
||||||
|
if(ulTemp & ETH_INT_RX)
|
||||||
|
{
|
||||||
|
return EthernetPacketGetNonBlocking(ETH_BASE, uip_buf, sizeof(uip_buf));
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
void netdev_send(void)
|
||||||
|
{
|
||||||
|
EthernetPacketPut(ETH_BASE, uip_buf, uip_len);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2001, Adam Dunkels.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* 3. All advertising materials mentioning features or use of this software
|
||||||
|
* must display the following acknowledgement:
|
||||||
|
* This product includes software developed by Adam Dunkels.
|
||||||
|
* 4. The name of the author may not be used to endorse or promote
|
||||||
|
* products derived from this software without specific prior
|
||||||
|
* written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
|
||||||
|
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||||
|
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||||
|
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This file is part of the uIP TCP/IP stack.
|
||||||
|
*
|
||||||
|
* $Id: netdev.h,v 1.1 2002/01/10 06:22:56 adam Exp $
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __NETDEV_H__
|
||||||
|
#define __NETDEV_H__
|
||||||
|
|
||||||
|
void netdev_init(void);
|
||||||
|
unsigned int netdev_read(void);
|
||||||
|
void netdev_send(void);
|
||||||
|
void netdev_setmacaddr(void);
|
||||||
|
|
||||||
|
#endif /* __NETDEV_H__ */
|
|
@ -0,0 +1,151 @@
|
||||||
|
/**
|
||||||
|
* \addtogroup uipopt
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \name Project-specific configuration options
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* uIP has a number of configuration options that can be overridden
|
||||||
|
* for each project. These are kept in a project-specific uip-conf.h
|
||||||
|
* file and all configuration names have the prefix UIP_CONF.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2006, Swedish Institute of Computer Science.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* 3. Neither the name of the Institute nor the names of its contributors
|
||||||
|
* may be used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
* SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This file is part of the uIP TCP/IP stack
|
||||||
|
*
|
||||||
|
* $Id: uip-conf.h,v 1.6 2006/06/12 08:00:31 adam Exp $
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file
|
||||||
|
* An example uIP configuration file
|
||||||
|
* \author
|
||||||
|
* Adam Dunkels <adam@sics.se>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __UIP_CONF_H__
|
||||||
|
#define __UIP_CONF_H__
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 8 bit datatype
|
||||||
|
*
|
||||||
|
* This typedef defines the 8-bit type used throughout uIP.
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
typedef unsigned char u8_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 16 bit datatype
|
||||||
|
*
|
||||||
|
* This typedef defines the 16-bit type used throughout uIP.
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
typedef unsigned short u16_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Statistics datatype
|
||||||
|
*
|
||||||
|
* This typedef defines the dataype used for keeping statistics in
|
||||||
|
* uIP.
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
typedef unsigned short uip_stats_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Maximum number of TCP connections.
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
#define UIP_CONF_MAX_CONNECTIONS 1
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Maximum number of listening TCP ports.
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
#define UIP_CONF_MAX_LISTENPORTS 1
|
||||||
|
|
||||||
|
/**
|
||||||
|
* uIP buffer size.
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
#define UIP_CONF_BUFFER_SIZE 1600
|
||||||
|
|
||||||
|
/**
|
||||||
|
* CPU byte order.
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
#define UIP_CONF_BYTE_ORDER LITTLE_ENDIAN
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Logging on or off
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
#define UIP_CONF_LOGGING 0
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UDP support on or off
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
#define UIP_CONF_UDP 0
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UDP checksums on or off
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
#define UIP_CONF_UDP_CHECKSUMS 1
|
||||||
|
|
||||||
|
/**
|
||||||
|
* uIP statistics on or off
|
||||||
|
*
|
||||||
|
* \hideinitializer
|
||||||
|
*/
|
||||||
|
#define UIP_CONF_STATISTICS 0
|
||||||
|
|
||||||
|
/* Here we include the header file for the application(s) we use in
|
||||||
|
our project. */
|
||||||
|
#include "boot.h"
|
||||||
|
#include "net.h"
|
||||||
|
|
||||||
|
#endif /* __UIP_CONF_H__ */
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
/** @} */
|
|
@ -53,6 +53,8 @@ void main(void)
|
||||||
{
|
{
|
||||||
/* initialize the microcontroller */
|
/* initialize the microcontroller */
|
||||||
Init();
|
Init();
|
||||||
|
/* initialize the network application */
|
||||||
|
NetInit();
|
||||||
/* initialize the bootloader interface */
|
/* initialize the bootloader interface */
|
||||||
BootComInit();
|
BootComInit();
|
||||||
|
|
||||||
|
@ -61,6 +63,8 @@ void main(void)
|
||||||
{
|
{
|
||||||
/* toggle LED with a fixed frequency */
|
/* toggle LED with a fixed frequency */
|
||||||
LedToggle();
|
LedToggle();
|
||||||
|
/* run the network task */
|
||||||
|
NetTask();
|
||||||
/* check for bootloader activation request */
|
/* check for bootloader activation request */
|
||||||
BootComCheckActivationRequest();
|
BootComCheckActivationRequest();
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,207 @@
|
||||||
|
/************************************************************************************//**
|
||||||
|
* \file Demo\ARMCM3_LM3S_EK_LM3S6965_IAR\Prog\net.c
|
||||||
|
* \brief Network application for the uIP TCP/IP stack.
|
||||||
|
* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_IAR
|
||||||
|
* \internal
|
||||||
|
*----------------------------------------------------------------------------------------
|
||||||
|
* C O P Y R I G H T
|
||||||
|
*----------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) 2014 by Feaser http://www.feaser.com All rights reserved
|
||||||
|
*
|
||||||
|
*----------------------------------------------------------------------------------------
|
||||||
|
* L I C E N S E
|
||||||
|
*----------------------------------------------------------------------------------------
|
||||||
|
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as published by the Free
|
||||||
|
* Software Foundation, either version 3 of the License, or (at your option) any later
|
||||||
|
* version.
|
||||||
|
*
|
||||||
|
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||||
|
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||||
|
* PURPOSE. See the GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along with OpenBLT.
|
||||||
|
* If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* A special exception to the GPL is included to allow you to distribute a combined work
|
||||||
|
* that includes OpenBLT without being obliged to provide the source code for any
|
||||||
|
* proprietary components. The exception text is included at the bottom of the license
|
||||||
|
* file <license.html>.
|
||||||
|
*
|
||||||
|
* \endinternal
|
||||||
|
****************************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************************
|
||||||
|
* Include files
|
||||||
|
****************************************************************************************/
|
||||||
|
#include "header.h" /* generic header */
|
||||||
|
#include "netdev.h"
|
||||||
|
#include "uip.h"
|
||||||
|
#include "uip_arp.h"
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************************************************
|
||||||
|
* Macro definitions
|
||||||
|
****************************************************************************************/
|
||||||
|
/** \brief Delta time for the uIP periodic timer. */
|
||||||
|
#define NET_UIP_PERIODIC_TIMER_MS (500)
|
||||||
|
/** \brief Delta time for the uIP ARP timer. */
|
||||||
|
#define NET_UIP_ARP_TIMER_MS (10000)
|
||||||
|
/** \brief Macro for accessing the Ethernet header information in the buffer */
|
||||||
|
#define NET_UIP_HEADER_BUF ((struct uip_eth_hdr *)&uip_buf[0])
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************************************************
|
||||||
|
* Local data declarations
|
||||||
|
****************************************************************************************/
|
||||||
|
/** \brief Holds the time out value of the uIP periodic timer. */
|
||||||
|
static unsigned long periodicTimerTimeOut;
|
||||||
|
/** \brief Holds the time out value of the uIP ARP timer. */
|
||||||
|
static unsigned long ARPTimerTimeOut;
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************************//**
|
||||||
|
** \brief Initializes the TCP/IP network communication interface.
|
||||||
|
** \return none.
|
||||||
|
**
|
||||||
|
****************************************************************************************/
|
||||||
|
void NetInit(void)
|
||||||
|
{
|
||||||
|
uip_ipaddr_t ipaddr;
|
||||||
|
|
||||||
|
/* initialize the network device */
|
||||||
|
netdev_init();
|
||||||
|
/* initialize the uIP TCP/IP stack. */
|
||||||
|
uip_init();
|
||||||
|
/* set the IP address */
|
||||||
|
uip_ipaddr(ipaddr, BOOT_COM_NET_IPADDR0, BOOT_COM_NET_IPADDR1, BOOT_COM_NET_IPADDR2,
|
||||||
|
BOOT_COM_NET_IPADDR3);
|
||||||
|
uip_sethostaddr(ipaddr);
|
||||||
|
/* set the network mask */
|
||||||
|
uip_ipaddr(ipaddr, BOOT_COM_NET_NETMASK0, BOOT_COM_NET_NETMASK1, BOOT_COM_NET_NETMASK2,
|
||||||
|
BOOT_COM_NET_NETMASK3);
|
||||||
|
uip_setnetmask(ipaddr);
|
||||||
|
/* set the MAC address */
|
||||||
|
netdev_setmacaddr();
|
||||||
|
/* initialize the timer variables */
|
||||||
|
periodicTimerTimeOut = TimeGet() + NET_UIP_PERIODIC_TIMER_MS;
|
||||||
|
ARPTimerTimeOut = TimeGet() + NET_UIP_ARP_TIMER_MS;
|
||||||
|
/* start listening on the configured port for XCP transfers on TCP/IP */
|
||||||
|
uip_listen(HTONS(BOOT_COM_NET_PORT));
|
||||||
|
} /*** end of NetInit ***/
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************************//**
|
||||||
|
** \brief The uIP network application that detects the XCP connect command on the
|
||||||
|
** port used by the bootloader. This indicates that the bootloader should
|
||||||
|
** be activated.
|
||||||
|
** \return none.
|
||||||
|
**
|
||||||
|
****************************************************************************************/
|
||||||
|
void NetApp(void)
|
||||||
|
{
|
||||||
|
unsigned char *newDataPtr;
|
||||||
|
|
||||||
|
if (uip_connected())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (uip_newdata())
|
||||||
|
{
|
||||||
|
/* a new XCP command was received. check if this is the connect command and in this
|
||||||
|
* case activate the bootloader. with XCP on TCP/IP the first 4 bytes contain a
|
||||||
|
* counter value in which we are not really interested.
|
||||||
|
*/
|
||||||
|
newDataPtr = uip_appdata;
|
||||||
|
newDataPtr += 4;
|
||||||
|
/* check if this was an XCP CONNECT command */
|
||||||
|
if ((newDataPtr[0] == 0xff) && (newDataPtr[1] == 0x00))
|
||||||
|
{
|
||||||
|
/* connection request received so start the bootloader */
|
||||||
|
BootActivate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} /*** end of NetApp ***/
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************************//**
|
||||||
|
** \brief Runs the TCP/IP server task.
|
||||||
|
** \return none.
|
||||||
|
**
|
||||||
|
****************************************************************************************/
|
||||||
|
void NetTask(void)
|
||||||
|
{
|
||||||
|
unsigned long connection;
|
||||||
|
unsigned long packetLen;
|
||||||
|
|
||||||
|
/* check for an RX packet and read it. */
|
||||||
|
packetLen = netdev_read();
|
||||||
|
if(packetLen > 0)
|
||||||
|
{
|
||||||
|
/* set uip_len for uIP stack usage */
|
||||||
|
uip_len = (unsigned short)packetLen;
|
||||||
|
|
||||||
|
/* process incoming IP packets here. */
|
||||||
|
if(NET_UIP_HEADER_BUF->type == htons(UIP_ETHTYPE_IP))
|
||||||
|
{
|
||||||
|
uip_arp_ipin();
|
||||||
|
uip_input();
|
||||||
|
/* if the above function invocation resulted in data that
|
||||||
|
* should be sent out on the network, the global variable
|
||||||
|
* uip_len is set to a value > 0.
|
||||||
|
*/
|
||||||
|
if(uip_len > 0)
|
||||||
|
{
|
||||||
|
uip_arp_out();
|
||||||
|
netdev_send();
|
||||||
|
uip_len = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* process incoming ARP packets here. */
|
||||||
|
else if(NET_UIP_HEADER_BUF->type == htons(UIP_ETHTYPE_ARP))
|
||||||
|
{
|
||||||
|
uip_arp_arpin();
|
||||||
|
|
||||||
|
/* if the above function invocation resulted in data that
|
||||||
|
* should be sent out on the network, the global variable
|
||||||
|
* uip_len is set to a value > 0.
|
||||||
|
*/
|
||||||
|
if(uip_len > 0)
|
||||||
|
{
|
||||||
|
netdev_send();
|
||||||
|
uip_len = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* process TCP/IP Periodic Timer here. */
|
||||||
|
if (TimeGet() >= periodicTimerTimeOut)
|
||||||
|
{
|
||||||
|
periodicTimerTimeOut += NET_UIP_PERIODIC_TIMER_MS;
|
||||||
|
for (connection = 0; connection < UIP_CONNS; connection++)
|
||||||
|
{
|
||||||
|
uip_periodic(connection);
|
||||||
|
/* If the above function invocation resulted in data that
|
||||||
|
* should be sent out on the network, the global variable
|
||||||
|
* uip_len is set to a value > 0.
|
||||||
|
*/
|
||||||
|
if(uip_len > 0)
|
||||||
|
{
|
||||||
|
uip_arp_out();
|
||||||
|
netdev_send();
|
||||||
|
uip_len = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* process ARP Timer here. */
|
||||||
|
if (TimeGet() >= ARPTimerTimeOut)
|
||||||
|
{
|
||||||
|
ARPTimerTimeOut += NET_UIP_ARP_TIMER_MS;
|
||||||
|
uip_arp_timer();
|
||||||
|
}
|
||||||
|
} /*** end of NetServerTask ***/
|
||||||
|
|
||||||
|
|
||||||
|
/*********************************** end of net.c **************************************/
|
|
@ -0,0 +1,66 @@
|
||||||
|
/************************************************************************************//**
|
||||||
|
* \file Demo\ARMCM3_LM3S_EK_LM3S6965_IAR\Prog\net.h
|
||||||
|
* \brief Network application for the uIP TCP/IP stack.
|
||||||
|
* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_IAR
|
||||||
|
* \internal
|
||||||
|
*----------------------------------------------------------------------------------------
|
||||||
|
* C O P Y R I G H T
|
||||||
|
*----------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) 2014 by Feaser http://www.feaser.com All rights reserved
|
||||||
|
*
|
||||||
|
*----------------------------------------------------------------------------------------
|
||||||
|
* L I C E N S E
|
||||||
|
*----------------------------------------------------------------------------------------
|
||||||
|
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as published by the Free
|
||||||
|
* Software Foundation, either version 3 of the License, or (at your option) any later
|
||||||
|
* version.
|
||||||
|
*
|
||||||
|
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||||
|
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||||
|
* PURPOSE. See the GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along with OpenBLT.
|
||||||
|
* If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* A special exception to the GPL is included to allow you to distribute a combined work
|
||||||
|
* that includes OpenBLT without being obliged to provide the source code for any
|
||||||
|
* proprietary components. The exception text is included at the bottom of the license
|
||||||
|
* file <license.html>.
|
||||||
|
*
|
||||||
|
* \endinternal
|
||||||
|
****************************************************************************************/
|
||||||
|
#ifndef NET_H
|
||||||
|
#define NET_H
|
||||||
|
|
||||||
|
/****************************************************************************************
|
||||||
|
* Macro definitions
|
||||||
|
****************************************************************************************/
|
||||||
|
#ifndef UIP_APPCALL
|
||||||
|
#define UIP_APPCALL NetApp
|
||||||
|
#endif /* UIP_APPCALL */
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************************************************
|
||||||
|
* Type definitions
|
||||||
|
****************************************************************************************/
|
||||||
|
/** \brief Define the uip_tcp_appstate_t datatype. This is the state of our tcp/ip
|
||||||
|
* application, and the memory required for this state is allocated together
|
||||||
|
* with each TCP connection. One application state for each TCP connection.
|
||||||
|
*/
|
||||||
|
typedef struct net_state
|
||||||
|
{
|
||||||
|
unsigned char unused;
|
||||||
|
} uip_tcp_appstate_t;
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************************************************
|
||||||
|
* Function prototypes
|
||||||
|
****************************************************************************************/
|
||||||
|
void NetInit(void);
|
||||||
|
void NetApp(void);
|
||||||
|
void NetTask(void);
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* NET_H */
|
||||||
|
/*********************************** end of net.h **************************************/
|
Loading…
Reference in New Issue