From da0194b0ac9319ea18dc11c07d6cb6ab9ee618f7 Mon Sep 17 00:00:00 2001 From: Frank Voorburg Date: Thu, 17 Jul 2014 07:11:41 +0000 Subject: [PATCH] - 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 --- .../MicroBoot/interfaces/net/XcpSettings.dcu | Bin 8652 -> 8654 bytes .../MicroBoot/interfaces/net/XcpTransport.dcu | Bin 5482 -> 5491 bytes .../MicroBoot/interfaces/net/openblt_net.dpr | 59 +- .../MicroBoot/interfaces/net/openblt_net.~dp | 11 +- Host/openblt_net.dll | Bin 424960 -> 425472 bytes .../Prog/bin/demoprog_ek_lm3s6965.elf | Bin 92727 -> 136955 bytes .../Prog/bin/demoprog_ek_lm3s6965.map | 1120 +++++---- .../Prog/bin/demoprog_ek_lm3s6965.srec | 2010 ++++++++++++----- .../Prog/boot.c | 2 +- .../Prog/boot.h | 1 + .../Prog/header.h | 1 + .../Prog/ide/lm3s6965_crossworks.hzp | 34 +- .../Prog/ide/lm3s6965_crossworks.hzs | 8 +- .../Prog/lib/uip/clock-arch.c | 50 + .../Prog/lib/uip/clock-arch.h | 40 + .../Prog/lib/uip/netdev.c | 169 ++ .../Prog/lib/uip/netdev.h | 46 + .../Prog/lib/uip/uip-conf.h | 151 ++ .../Prog/main.c | 4 + .../Prog/net.c | 207 ++ .../Prog/net.h | 66 + .../Boot/ide/DemoBoot.project | 172 +- .../Prog/bin/demoprog_ek_lm3s6965.elf | Bin 84688 -> 123636 bytes .../Prog/bin/demoprog_ek_lm3s6965.map | 199 +- .../Prog/bin/demoprog_ek_lm3s6965.srec | 1062 ++++++--- .../ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/boot.c | 2 +- .../ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/boot.h | 1 + .../ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/header.h | 1 + .../Prog/ide/DemoProg.project | 40 + .../Prog/lib/uip/clock-arch.c | 50 + .../Prog/lib/uip/clock-arch.h | 40 + .../Prog/lib/uip/netdev.c | 169 ++ .../Prog/lib/uip/netdev.h | 46 + .../Prog/lib/uip/uip-conf.h | 151 ++ .../ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/main.c | 4 + .../ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/makefile | 28 +- .../ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/net.c | 207 ++ .../ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/net.h | 66 + .../Boot/bin/openbtl_ek_lm3s6965.out | Bin 431684 -> 431684 bytes .../Boot/ide/lm3s6965.dep | 566 ++--- .../Boot/ide/settings/lm3s6965.dbgdt | 10 +- .../Boot/ide/settings/lm3s6965.dni | 2 +- .../Boot/ide/settings/lm3s6965.wsdt | 12 +- .../Prog/bin/demoprog_ek_lm3s6965.out | Bin 98248 -> 186480 bytes .../Prog/bin/demoprog_ek_lm3s6965.srec | 1044 ++++++--- .../ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/boot.c | 2 +- .../ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/boot.h | 1 + .../ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/header.h | 1 + .../Prog/ide/lm3s6965.dep | 1756 +++++++------- .../Prog/ide/lm3s6965.ewp | 89 + .../Prog/ide/settings/lm3s6965.dni | 2 +- .../Prog/ide/settings/lm3s6965.wsdt | 10 +- .../Prog/lib/uip/clock-arch.c | 50 + .../Prog/lib/uip/clock-arch.h | 40 + .../Prog/lib/uip/netdev.c | 169 ++ .../Prog/lib/uip/netdev.h | 46 + .../Prog/lib/uip/uip-conf.h | 151 ++ .../ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/main.c | 4 + .../ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/net.c | 207 ++ .../ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/net.h | 66 + 60 files changed, 7720 insertions(+), 2725 deletions(-) create mode 100644 Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/lib/uip/clock-arch.c create mode 100644 Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/lib/uip/clock-arch.h create mode 100644 Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/lib/uip/netdev.c create mode 100644 Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/lib/uip/netdev.h create mode 100644 Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/lib/uip/uip-conf.h create mode 100644 Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/net.c create mode 100644 Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/net.h create mode 100644 Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/lib/uip/clock-arch.c create mode 100644 Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/lib/uip/clock-arch.h create mode 100644 Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/lib/uip/netdev.c create mode 100644 Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/lib/uip/netdev.h create mode 100644 Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/lib/uip/uip-conf.h create mode 100644 Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/net.c create mode 100644 Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/net.h create mode 100644 Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/lib/uip/clock-arch.c create mode 100644 Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/lib/uip/clock-arch.h create mode 100644 Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/lib/uip/netdev.c create mode 100644 Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/lib/uip/netdev.h create mode 100644 Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/lib/uip/uip-conf.h create mode 100644 Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/net.c create mode 100644 Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/net.h diff --git a/Host/Source/MicroBoot/interfaces/net/XcpSettings.dcu b/Host/Source/MicroBoot/interfaces/net/XcpSettings.dcu index e2843c61cd87dead675b063b69c485f7de8d26a7..5899114cfe2d307c46ce706c5ab4289585e35c5d 100644 GIT binary patch delta 92 zcmX@(e9oEs#*kx e$m9#6oa5O;L3AloEQn&r1d+^4?2}a$mjeJSPZAga delta 90 zcmX@-e8!pk#Wa$&EiV%v diff --git a/Host/Source/MicroBoot/interfaces/net/XcpTransport.dcu b/Host/Source/MicroBoot/interfaces/net/XcpTransport.dcu index e4c4985c5f9875620372eddd24d16683ab875ea1..52a8d9f6652895dcb7e7cb07cf1a71f339c5a588 100644 GIT binary patch delta 114 zcmaE*^;wJi#Di+ delta 105 zcmeyY^-7ET# + */ + +#include "header.h" /* generic header */ +#include "clock-arch.h" + +/*---------------------------------------------------------------------------*/ +clock_time_t +clock_time(void) +{ + return (clock_time_t)TimeGet(); +} +/*---------------------------------------------------------------------------*/ diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/lib/uip/clock-arch.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/lib/uip/clock-arch.h new file mode 100644 index 00000000..aa97f0e7 --- /dev/null +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/lib/uip/clock-arch.h @@ -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__ */ diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/lib/uip/netdev.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/lib/uip/netdev.c new file mode 100644 index 00000000..1dcbe2ce --- /dev/null +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/lib/uip/netdev.c @@ -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 + * + * $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); +} + + diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/lib/uip/netdev.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/lib/uip/netdev.h new file mode 100644 index 00000000..d02efb3c --- /dev/null +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/lib/uip/netdev.h @@ -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__ */ diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/lib/uip/uip-conf.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/lib/uip/uip-conf.h new file mode 100644 index 00000000..fd9ba0dd --- /dev/null +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/lib/uip/uip-conf.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 + */ + +#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__ */ + +/** @} */ +/** @} */ diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/main.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/main.c index 15f09965..011c6039 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/main.c +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/main.c @@ -53,6 +53,8 @@ int main(void) { /* initialize the microcontroller */ Init(); + /* initialize the network application */ + NetInit(); /* initialize the bootloader interface */ BootComInit(); @@ -61,6 +63,8 @@ int main(void) { /* toggle LED with a fixed frequency */ LedToggle(); + /* run the network task */ + NetTask(); /* check for bootloader activation request */ BootComCheckActivationRequest(); } diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/net.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/net.c new file mode 100644 index 00000000..89f812f0 --- /dev/null +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/net.c @@ -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 . +* +* 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 . +* +* \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 **************************************/ diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/net.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/net.h new file mode 100644 index 00000000..8768ccac --- /dev/null +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/net.h @@ -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 . +* +* 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 . +* +* \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 **************************************/ diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/ide/DemoBoot.project b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/ide/DemoBoot.project index 4c2ec100..b7b7aba5 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/ide/DemoBoot.project +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/ide/DemoBoot.project @@ -1,61 +1,5 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -64,34 +8,57 @@ + + + + + + + + + + + + + + + + + + + - + + + + + @@ -165,4 +132,95 @@ continue + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/bin/demoprog_ek_lm3s6965.elf b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/bin/demoprog_ek_lm3s6965.elf index c510c0347a10a83b00e361a33cd34a206a7eeb58..5f46e5b76e268430a57f44ad98bbe6b3f8e8f7de 100644 GIT binary patch literal 123636 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 Zx#dh7X$!bFLQqAyYD*v9qcAJ?{{qbOQ)U1F literal 84688 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 diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/bin/demoprog_ek_lm3s6965.map b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/bin/demoprog_ek_lm3s6965.map index 467e35a3..5a66489d 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/bin/demoprog_ek_lm3s6965.map +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/bin/demoprog_ek_lm3s6965.map @@ -7,36 +7,36 @@ start address 0x00008000 Program Header: 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 - filesz 0x00000000 memsz 0x0000015c flags rw- + filesz 0x00000000 memsz 0x0000086c flags rw- private flags = 5000202: [Version5 EABI] [soft-float ABI] [has entry point] Sections: 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 - 1 .bss 0000015c 20000000 20000000 00010000 2**2 + 1 .bss 0000086c 20000000 20000000 00010000 2**2 ALLOC - 2 .debug_info 00003cc0 00000000 00000000 00009078 2**0 + 2 .debug_info 000063a5 00000000 00000000 0000b1dc 2**0 CONTENTS, READONLY, DEBUGGING - 3 .debug_abbrev 00000b94 00000000 00000000 0000cd38 2**0 + 3 .debug_abbrev 000015ac 00000000 00000000 00011581 2**0 CONTENTS, READONLY, DEBUGGING - 4 .debug_loc 00001fb9 00000000 00000000 0000d8cc 2**0 + 4 .debug_loc 000033f7 00000000 00000000 00012b2d 2**0 CONTENTS, READONLY, DEBUGGING - 5 .debug_aranges 00000660 00000000 00000000 0000f885 2**0 + 5 .debug_aranges 00000920 00000000 00000000 00015f24 2**0 CONTENTS, READONLY, DEBUGGING - 6 .debug_ranges 00000590 00000000 00000000 0000fee5 2**0 + 6 .debug_ranges 000007f0 00000000 00000000 00016844 2**0 CONTENTS, READONLY, DEBUGGING - 7 .debug_line 00001611 00000000 00000000 00010475 2**0 + 7 .debug_line 00002481 00000000 00000000 00017034 2**0 CONTENTS, READONLY, DEBUGGING - 8 .debug_str 00001079 00000000 00000000 00011a86 2**0 + 8 .debug_str 00001a76 00000000 00000000 000194b5 2**0 CONTENTS, READONLY, DEBUGGING - 9 .comment 00000030 00000000 00000000 00012aff 2**0 + 9 .comment 00000030 00000000 00000000 0001af2b 2**0 CONTENTS, READONLY - 10 .ARM.attributes 00000033 00000000 00000000 00012b2f 2**0 + 10 .ARM.attributes 00000033 00000000 00000000 0001af5b 2**0 CONTENTS, READONLY - 11 .debug_frame 00001000 00000000 00000000 00012b64 2**2 + 11 .debug_frame 00001738 00000000 00000000 0001af90 2**2 CONTENTS, READONLY, DEBUGGING SYMBOL TABLE: 00008000 l d .text 00000000 .text @@ -53,70 +53,145 @@ SYMBOL TABLE: 00000000 l d .debug_frame 00000000 .debug_frame 00000000 l df *ABS* 00000000 vectors.c 00000000 l df *ABS* 00000000 boot.c -20000000 l O .bss 00000001 xcpCtoRxLength.4440 -20000004 l O .bss 00000041 xcpCtoReqPacket.4439 -20000048 l O .bss 00000001 xcpCtoRxInProgress.4441 +20000000 l O .bss 00000041 xcpCtoReqPacket.4450 +20000044 l O .bss 00000001 xcpCtoRxLength.4451 +20000045 l O .bss 00000001 xcpCtoRxInProgress.4452 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 led.c -2000004c l O .bss 00000004 timer_counter_last.4435 -20000050 l O .bss 00000001 led_toggle_state.4434 +20000048 l O .bss 00000004 timer_counter_last.4446 +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 -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 -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 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 -00008408 l F .text 0000008a GPIOBaseValid +00008d88 l F .text 0000008a GPIOBaseValid 00000000 l df *ABS* 00000000 interrupt.c 00000000 l df *ABS* 00000000 sysctl.c -00008708 l F .text 00000154 SysCtlPeripheralValid -00008fc8 l O .text 0000005c g_pulXtals -0000903c l O .text 0000000c g_pulRCGCRegs +000090d4 l F .text 00000154 SysCtlPeripheralValid +0000b118 l O .text 0000005c g_pulXtals +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 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 00000100 l *ABS* 00000000 __STACKSIZE__ -0000838c g F .text 0000000c __error__ -00008204 g F .text 00000060 reset_handler -000088b8 g F .text 00000008 SysCtlDelay -00008270 g F .text 0000000e IrqInterruptEnable -00009078 g .text 00000000 _etext -00008630 g F .text 00000030 GPIOPinWrite -0000885c g F .text 00000046 SysCtlPeripheralEnable -000088a4 g F .text 00000012 SysCtlReset -2000005c g .bss 00000000 _ebss -000083fc g F .text 00000002 UnusedISR -00008280 g F .text 0000003a LedInit -000083ec g F .text 00000010 TimeISRHandler -00008f78 g F .text 00000036 UARTCharGetNonBlocking +000085c4 g F .text 0000000c __error__ +00008214 g F .text 00000060 reset_handler +000092ec g F .text 00000008 SysCtlDelay +00008280 g F .text 0000000e IrqInterruptEnable +200000e0 g O .bss 00000002 uip_len +2000006c g O .bss 00000006 uip_ethaddr +00009a78 g F .text 0000007e uip_add32 +0000b1dc g .text 00000000 _etext +00009228 g F .text 00000068 SysCtlPeripheralReset +00008fb0 g F .text 00000030 GPIOPinWrite +000087e4 g F .text 00000052 netdev_read +00009bd4 g F .text 00000fc4 uip_process +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 -00008d60 g F .text 0000002a SysTickPeriodSet -00008338 g F .text 00000052 main -00008a7c g F .text 000002ba SysCtlClockGet -00008df0 g F .text 00000044 UARTDisable -000080f4 g F .text 00000050 BootComInit -000086f8 g F .text 00000010 IntMasterEnable -00008398 g F .text 00000046 TimeInit +00009b5c g F .text 00000010 uip_tcpchksum +200000f0 g O .bss 00000004 uip_appdata +00009794 g F .text 0000002a SysTickPeriodSet +200000f4 g O .bss 00000004 uip_conn +200000f8 g O .bss 0000001e uip_conns +00008c38 g F .text 00000032 EthernetIntStatus +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 -000082bc g F .text 0000007a LedToggle -2000015c g .bss 00000000 _estack +00008cb4 g F .text 0000004c EthernetPHYRead +000082cc g F .text 0000007a LedToggle +2000086c g .bss 00000000 _estack +000089c4 g F .text 0000006e EthernetConfigSet 20000000 g .text 00000000 _edata +0000ab98 g F .text 0000000a htons 00008000 g O .text 000000f4 _vectab -000086ac g F .text 0000004c GPIOPinTypeUART -00008660 g F .text 0000004c GPIOPinTypeGPIOOutput -00008144 g F .text 000000c0 BootComCheckActivationRequest -000083e0 g F .text 0000000c TimeGet -00008400 g F .text 00000008 CPUcpsie -00008494 g F .text 0000006c GPIODirModeSet -2000005c g .bss 00000000 _stack -00008d38 g F .text 00000012 SysTickEnable -00008d4c g F .text 00000012 SysTickIntEnable -00008e34 g F .text 00000142 UARTConfigSetExpClk -000088c0 g F .text 000001ba SysCtlClockSet -00008500 g F .text 0000012e GPIOPadConfigSet -00008db4 g F .text 0000003c UARTEnable +00008d00 g F .text 00000086 FlashUserGet +0000902c g F .text 0000004c GPIOPinTypeUART +00008fe0 g F .text 0000004c GPIOPinTypeGPIOOutput +00008be8 g F .text 0000004e EthernetIntDisable +00008154 g F .text 000000c0 BootComCheckActivationRequest +00008c6c g F .text 00000048 EthernetIntClear +00008618 g F .text 0000000c TimeGet +00009b6c g F .text 00000032 uip_init +00008860 g F .text 00000008 CPUcpsie +00008e14 g F .text 0000006c GPIODirModeSet +2000076c g .bss 00000000 _stack +20000120 g O .bss 00000004 uip_netmask +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 diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/bin/demoprog_ek_lm3s6965.srec b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/bin/demoprog_ek_lm3s6965.srec index 3650ab19..46eabac5 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/bin/demoprog_ek_lm3s6965.srec +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/bin/demoprog_ek_lm3s6965.srec @@ -1,266 +1,800 @@ S020000062696E2F64656D6F70726F675F656B5F6C6D3373363936352E7372656358 -S11380005C01002005820000FD830000FD83000068 -S1138010FD830000FD830000FD830000FD8300005C -S1138020FD830000FD830000FD830000FD8300004C -S1138030FD830000FD830000FD830000ED8300004C -S1138040FD830000FD830000FD830000FD8300002C -S1138050FD830000FD830000FD830000FD8300001C -S1138060FD830000FD830000FD830000FD8300000C -S1138070FD830000FD830000FD830000FD830000FC -S1138080FD830000FD830000FD830000FD830000EC -S1138090FD830000FD830000FD830000FD830000DC -S11380A0FD830000FD830000FD830000FD830000CC -S11380B0FD830000FD830000FD830000FD830000BC -S11380C0FD830000FD830000FD830000FD830000AC -S11380D0FD830000FD830000FD830000FD8300009C -S11380E0FD830000FD830000FD830000FD8300008C -S11380F0EE11AA5510B50120C1F2000048F65D0446 -S1138100C0F20004A0470120C2F20000A0474FF0D3 -S11381104020032148F2AD63C0F20003984748F6BB -S11381207D23C0F20003984701464FF44040C4F257 -S113813000004FF46142602348F63564C0F2000445 -S1138140A04710BD10B540F24803C2F200031B78EB -S1138150EBB94FF44040C4F2000048F67973C0F222 -S113816000039847B0F1FF3F4BD040F20403C2F242 -S11381700003187040F24803C2F2000301221A708F -S113818040F20003C2F2000300221A7010BD40F254 -S11381900003C2F200031B785C1C4FF44040C4F29D -S11381A0000048F67973C0F200039847B0F1FF3F2E -S11381B027D040F20403C2F20003185540F2000233 -S11381C0C2F2000211780131C9B211701B788B42DE -S11381D017D140F24803C2F2000300221A7040F2A1 -S11381E00403C2F200035B78FF2B0AD140F20403BC -S11381F0C2F200039B7823B948F6A503C0F200033A -S1138200984710BD10B517498D4640F20002C2F2DE -S1138210000240F20003C2F200039A4210D2131D7E -S11382200F4CE41A24F0030404340023104649F2EA -S11382307801C0F200015A581A500433A342FAD10B -S113824009480A494FF000028842B8BF40F8042B9D -S1138250FADB48F23933C0F20003984710BD00BF7F -S1138260030000205C010020000000205C000020CE -S113827008B548F2F963C0F20003984708BD00BF8F -S113828010B52020C2F2000048F65D03C0F20003DE -S113829098474FF4A044C4F202042046012148F256 -S11382A06163C0F20003984720460121002248F28E -S11382B03163C0F20003984710BD00BF10B548F207 -S11382C0E133C0F200039847044640F24C03C2F283 -S11382D000031B68C31AB3F5FA7F2BD340F2500393 -S11382E0C2F200031B7883B940F25003C2F20003C8 -S11382F001221A704FF4A040C4F20200114648F261 -S11383003163C0F2000398470FE040F25003C2F219 -S1138310000300221A704FF4A040C4F202000121AD -S113832048F23163C0F20003984740F24C03C2F2B2 -S113833000031C6010BD00BF08B54FF46070C0F2AC -S1138340C01048F6C103C0F20003984748F28123E5 -S1138350C0F20003984748F29933C0F200039847EB -S113836048F27123C0F20003984748F2F503C0F2C3 -S11383700003984748F2BD25C0F2000548F24514B1 -S1138380C0F20004A847A047FCE700BF40F2540332 -S1138390C2F200031960FEE708B548F67D23C0F277 -S11383A00003984744F6D353C1F26203A3FB0020B1 -S11383B0800948F66153C0F20003984748F63953E0 -S11383C0C0F20003984748F64D53C0F200039847A3 -S11383D040F25803C2F2000300221A6008BD00BF35 -S11383E040F25803C2F200031868704740F2580381 -S11383F0C2F200031A6801321A607047FEE700BF38 -S1138400EFF3108062B6704720F480534FF40042BB -S1138410C4F20502934218BFB3F1402F31D04FF498 -S1138420C041C4F200014FF42042C4F20502934259 -S113843018BF8B4227D04FF48041C4F202014FF49D -S11384404042C4F20502934218BF8B421DD04FF440 -S1138450C041C4F202014FF46042C4F205029342E7 -S113846018BF8B4213D04FF45042C4F203020023CE -S1138470C4F20603984218BF904214BF00200120A2 -S11384807047012070470120704701207047012088 -S1138490704700BF70B504460E46154648F20943BE -S11384A0C0F20003984748B948F6B070C0F2000023 -S11384B0E42148F28D33C0F200039847022D09D914 -S11384C048F6B070C0F20000E62148F28D33C0F2E5 -S11384D00003984715F0010F04F58063D4F80024D5 -S11384E014BF3243B2431A6015F0020F04F58463DB -S11384F0D4F8202414BF164322EA06061E6070BD79 -S1138500F8B504460D4617461E4648F20943C0F224 -S11385100003984750B948F6B070C0F200004FF419 -S1138520DD7148F28D33C0F20003984727F008024A -S11385307B1E042A18BF012B0AD948F6B070C0F27A -S113854000004FF4DF7148F28D33C0F20003984706 -S1138550A6F10803052B0BD956B148F6B070C0F24A -S1138560000040F2C51148F28D33C0F20003984771 -S113857017F0010F04F5A063D4F8002514BF2A43B3 -S1138580AA431A6017F0020F04F20453D4F8042526 -S113859014BF2A43AA431A6017F0040F04F5A16319 -S11385A0D4F8082514BF2A43AA431A6017F0080F09 -S11385B004F5A363D4F8182514BF2A43AA431A6008 -S11385C016F0010F04F20C53D4F80C2514BF2A43FF -S11385D0AA431A6016F0020F04F5A263D4F810251A -S11385E014BF2A43AA431A6016F0040F04F214536A -S11385F0D4F8142514BF2A43AA431A6016F0080FAE -S113860004F21C53D4F81C2514BF2A43AA431A604D -S11386102EB904F5A563D4F82825154305E004F51F -S1138620A563D4F8282522EA05051D60F8BD00BF1E -S113863070B504460D46164648F20943C0F20003DD -S1138640984750B948F6B070C0F200004FF4517129 -S113865048F28D33C0F20003984744F8256070BD9A -S113866038B505460C4648F20943C0F20003984762 -S113867050B948F6B070C0F2000040F2044148F22C -S11386808D33C0F20003984728462146012248F260 -S11386909543C0F200039847284621460122082347 -S11386A048F20154C0F20004A04738BD38B505466D -S11386B00C4648F20943C0F20003984750B948F603 -S11386C0B070C0F2000040F21F5148F28D33C0F286 -S11386D00003984728462146022248F29543C0F2F7 -S11386E000039847284621460122082348F20154F2 -S11386F0C0F20004A04738BD08B548F20143C0F2F7 -S113870000039847C0B208BD30B420F08053A3F5ED -S11387108012013A4FF48071C0F210018B4218BFED -S1138720012A98BF012040F297804FF40071C0F2F3 -S113873010014FF48062C0F21002934218BF8B42C2 -S113874008BF012000F088804FF4A041C2F210015C -S113875000F16042013A884218BF012A98BF012003 -S11387607AD90422C2F20002904208BF012073D0D9 -S11387701022C2F20002904208BF01206CD02022D5 -S1138780C2F20002904208BF012065D020F4801498 -S11387908021C2F200014FF48072C2F200029442BE -S11387A018BF8B4208BF012056D020F00052B0F110 -S11387B0102F18BF402A08BF01204DD04FF480412C -S11387C0C1F200018C4208BF012045D0B0F1101F56 -S11387D008BF012040D04FF48075C1F200054FF46A -S11387E00071C1F20001884218BFA84208BF0120ED -S11387F032D01025C1F200052021C1F200018A42C5 -S113880018BFAA4208BF012026D00821C1F21001D6 -S113881088421CD000F170410139012917D9042183 -S1138820C1F200018C4214D0B0F1202F13D00121E9 -S1138830C2F2100188420ED04FF48050C0F21000F2 -S1138840834218BF082A14BF0020012004E001203D -S113885002E0012000E0012030BC704710B504465E -S113886048F20973C0F20003984750B949F2240052 -S1138870C0F200004FF4FC7148F28D33C0F20003E3 -S1138880984749F23C03C0F20003220F53F8223008 -S11388901A68A1B2C4F3044401FA04F414431C603A -S11388A010BD00BF4EF60C53CEF200030422C0F2FA -S11388B0FA521A60FEE700BF01387FF4FDAF70473B -S11388C070B504464FF46043C4F20F031B6813F001 -S11388D0E04F0BD04FF46043C4F20F031A68002337 -S11388E0C7F2FF031340B3F1805F02D1002CC0F242 -S11388F0C3804EF26002C4F20F0211684EF270039C -S1138900C4F20F031E6821F4800545F4006546F4A3 -S113891000601560186011F0020F02D014F0020F0D -S113892005D011F0010F24D014F0010F21D164F00F -S113893003031D404EF26003C4F20F031D600028C0 -S113894004DA06F03003302B04D00BE005F03003DA -S1138950302B07D14FF4805048F6B903C0F200031E -S1138960984706E04FF4002048F6B903C0F200032C -S1138970984725F45F5525F0300543F2F073234002 -S11389801D434DF68F73C7F6FF73334043F4006203 -S113899042F23003C8F200032340134304F00802F8 -S11389A04EF25801C4F20F014020086053EAC20697 -S11389B00AD54EF27003C4F20F031E604EF2600338 -S11389C0C4F20F031D6009E04EF26003C4F20F030A -S11389D01D604EF27003C4F20F031E60102048F6AF -S11389E0B902C0F20002904725F0F86020F00300BD -S11389F00323C0F2C0732340184326F0FC5604F04E -S1138A00FC510E4314F0804F1FBF40F4800026F445 -S1138A1080050023C4F240031ABF23401D4326F0FF -S1138A20804514F4006F17D14EF25003C4F20F03C3 -S1138A301B6813F0400F0BD147F6FF734EF2500141 -S1138A40C4F20F010A6812F0400F01D1013BF9D1C1 -S1138A5020F4006025F400654EF26003C4F20F03B5 -S1138A6018604EF27003C4F20F031D60102048F624 -S1138A70B903C0F20003984770BD00BF30B44EF292 -S1138A806003C4F20F0319684EF27003C4F20F03BB -S1138A901A68002AB4BF02F0700301F03003202BDF -S1138AA071D003D87BB1102B16D037E1602B00F0C6 -S1138AB0C180702B00F0BB80302B08BF03F5EA4364 -S1138AC000F0CF802AE148F6C873C0F20003C1F376 -S1138AD0841053F82030C4E04FF46043C4F20F0311 -S1138AE01B6813F0E04F04BF4EF2C013C0F2E4035E -S1138AF000F0B7804FF46043C4F20F0318680023FA -S1138B00C7F2FF030340B3F1805F00F096804FF497 -S1138B106043C4F20F0318680023C7F2FF03034045 -S1138B200020C1F20100834208D14FF46043C4F233 -S1138B300F031B689BB2022B00F084804FF4604348 -S1138B40C4F20F0318680023C7F2FF030340002098 -S1138B50C1F2030083421CBF4FF41053C0F2F4036C -S1138B607FD14FF46043C4F20F031C68A4B24FF4E6 -S1138B70D853C0F2B7034FF41050C0F2F400002CE5 -S1138B8018BF03466DE04FF46043C4F20F031B6843 -S1138B9013F0E04F04BF43F67003C0F2390360D012 -S1138BA04FF46043C4F20F0318680023C7F2FF03B5 -S1138BB00340B3F1805F4AD04FF46043C4F20F0323 -S1138BC018680023C7F2FF0303400020C1F201002C -S1138BD0834207D14FF46043C4F20F031B689BB276 -S1138BE0022B39D04FF46043C4F20F0318680023FA -S1138BF0C7F2FF0303400020C1F2030083421CBFFD -S1138C004FF41063C0F23D032BD14FF46043C4F220 -S1138C100F031C68A4B24CF2C063C0F22D034FF4DE -S1138C201060C0F23D00002C18BF034619E04FF459 -S1138C30004316E04FF4800313E04EF2C013C0F279 -S1138C40E4030EE04FF4D853C0F2B70309E043F64F -S1138C507003C0F2390304E04CF2C063C0F22D0388 -S1138C60FFE7002A03DA12F4006F03D058E011F48E -S1138C70006F5AD14EF26400C4F20F0000684FF442 -S1138C806044C4F20F04246814F0E04F0BD04FF496 -S1138C906044C4F20F0425680024C7F2FF042C408A -S1138CA0B4F1805F0AD1C0F34814023404FB03F327 -S1138CB000F01F040234B3FBF4F309E0C0F34814DA -S1138CC004FB03F300F01F0401346400B3FBF4F36A -S1138CD010F4804F18BF5B0810F4004F18BF9B08B6 -S1138CE0002AA8BF41F4800112DA12F0804F09D0A3 -S1138CF012F4006F06D15B00C2F386520132B3FB5B -S1138D00F2F016E0C2F3C5500130B3FBF0F010E00E -S1138D10C1F3C3500130B3FBF0F00AE0002008E0D7 -S1138D2011F4800FE1D1184603E011F4800FEFD164 -S1138D30184630BC704700BF4EF21003CEF2000359 -S1138D401A6842F005021A60704700BF4EF2100321 -S1138D50CEF200031A6842F002021A60704700BFA4 -S1138D6010B5441EB4F1807F09D349F24800C0F223 -S1138D700000D02148F28D33C0F2000398474EF230 -S1138D801403CEF200031C6010BD00BF20F4805217 -S1138D904FF44043C4F200039A4208D04FF46043B6 -S1138DA0C4F20003984214BF002001207047012040 -S1138DB0704700BF10B5044648F68D53C0F2000357 -S1138DC0984750B949F26000C0F200004FF4CF71E7 -S1138DD048F28D33C0F200039847E36A43F010036E -S1138DE0E362236B43F4407343F00103236310BD38 -S1138DF010B5044648F68D53C0F20003984750B9A5 -S1138E0049F26000C0F200004FF4DF7148F28D3384 -S1138E10C0F200039847A36913F0080FFBD1E36A7B -S1138E2023F01003E362236B23F4407323F0010364 -S1138E30236310BDF8B504460E4615461F4648F692 -S1138E408D52C0F20002904750B949F26000C0F25E -S1138E50000040F20D1148F28D33C0F20003984730 -S1138E6055B949F26000C0F200004FF4877148F22E -S1138E708D33C0F2000398474FF46042C4F20F02EE -S1138E80136813F0E04F08BF102340D04FF4604341 -S1138E90C4F20F031A680023C7F2FF031340B3F1AF -S1138EA0805F08BF102332D04FF46043C4F20F0335 -S1138EB01A680023C7F2FF0313400022C1F2010223 -S1138EC0934209D14FF46043C4F20F031B689BB271 -S1138ED0022B08BF10231AD04FF46043C4F20F03CF -S1138EE01A680023C7F2FF0313400022C1F20302F1 -S1138EF0934218BF08230AD14FF46043C4F20F030E -S1138F001B689BB2002B0CBF10230823FFE705FB53 -S1138F1003F3B3420AD949F26000C0F2000040F200 -S1138F200F1148F28D33C0F200039847204648F6EB -S1138F30F152C0F200029047B6EB051F236B3DBF10 -S1138F4043F0200323636D0823F0200328BF236329 -S1138F50F600B6FBF5F50135EB096362C5F345058B -S1138F60A562E7620023A361204648F6B553C0F228 -S1138F7000039847F8BD00BF10B5044648F68D536A -S1138F80C0F20003984750B949F26000C0F20000F3 -S1138F9040F2094148F28D33C0F200039847A369B7 -S1138FA013F0100F0CBF20684FF0FF3010BD00BF4E -S1138FB06C69622F6472697665726C69622F67707E -S1138FC0696F2E630000000040420F0000201C0067 -S1138FD080841E0000802500999E360000403800E1 -S1138FE000093D0000803E0000004B00404B4C0057 -S1138FF000204E00808D5B0000C05D00008070008A -S113900000127A0000007D0080969800001BB700D3 -S11390100080BB00C0E8CE00647ADA000024F400CB -S11390200000FA006C69622F6472697665726C697B -S1139030622F73797363746C2E63000000E10F4038 -S113904004E10F4008E10F406C69622F6472697695 -S113905065726C69622F7379737469636B2E630034 -S11390606C69622F6472697665726C69622F7561CE -S10B907072742E63000000007D +S11380006C080020158200003586000035860000CB +S11380103586000035860000358600003586000070 +S11380203586000035860000358600003586000060 +S11380303586000035860000358600002586000060 +S11380403586000035860000358600003586000040 +S11380503586000035860000358600003586000030 +S11380603586000035860000358600003586000020 +S11380703586000035860000358600003586000010 +S11380803586000035860000358600003586000000 +S113809035860000358600003586000035860000F0 +S11380A035860000358600003586000035860000E0 +S11380B035860000358600003586000035860000D0 +S11380C035860000358600003586000035860000C0 +S11380D035860000358600003586000035860000B0 +S11380E035860000358600003586000035860000A0 +S11380F0EE11AA5508B549F2D923C0F200039847F6 +S113810008BD00BF10B50120C1F2000049F291245E +S1138110C0F20004A0470120C2F20000A0474FF0C3 +S11381204020032149F22D03C0F20003984749F28D +S1138130B143C0F20003984701464FF44040C4F2F3 +S113814000004FF46142602349F66904C0F2000460 +S1138150A04710BD10B540F24503C2F200031B78DE +S1138160EBB94FF44040C4F2000049F6AD13C0F23D +S113817000039847B0F1FF3F4BD040F20003C2F236 +S11381800003187040F24503C2F2000301221A7082 +S113819040F24403C2F2000300221A7010BD40F200 +S11381A04403C2F200031B785C1C4FF44040C4F249 +S11381B0000049F6AD13C0F200039847B0F1FF3F49 +S11381C027D040F20003C2F20003185540F24402E3 +S11381D0C2F2000211780131C9B211701B788B42CE +S11381E017D140F24503C2F2000300221A7040F294 +S11381F00003C2F200035B78FF2B0AD140F20003B4 +S1138200C2F200039B7823B949F2D923C0F20003D8 +S1138210984710BD10B517498D4640F20002C2F2CE +S1138220000240F20003C2F200039A4210D2131D6E +S11382300F4CE41A24F003040434002310464BF2D8 +S1138240DC11C0F200015A581A500433A342FAD187 +S113825009480A494FF000028842B8BF40F8042B8D +S1138260FADB48F25D53C0F20003984710BD00BF2B +S1138270030000206C080020000000206C07002090 +S113828008B549F2C503C0F20003984708BD00BF12 +S113829010B52020C2F2000049F29123C0F200037D +S11382A098474FF4A044C4F202042046012148F642 +S11382B0E173C0F20003984720460121002248F6EA +S11382C0B173C0F20003984710BD00BF10B548F267 +S11382D01963C0F200039847044640F24803C2F20F +S11382E000031B68C31AB3F5FA7F2BD340F24C0387 +S11382F0C2F200031B7883B940F24C03C2F20003BC +S113830001221A704FF4A040C4F20200114648F64C +S1138310B173C0F2000398470FE040F24C03C2F27D +S1138320000300221A704FF4A040C4F2020001219D +S113833048F6B173C0F20003984740F24803C2F212 +S113834000031C6010BD00BF10B548F23963C0F2D1 +S11383500003984749F66D33C0F20003984740F292 +S11383602413C2F200034FF6A9621A8043F6137273 +S11383705A8040F22013C2F200034FF6FF721A80B3 +S113838000225A8048F23973C0F20003984748F239 +S11383901964C0F20004A04740F25403C2F200037F +S11383A000F5FA701860A04740F25003C2F20003CF +S11383B000F51C50103018604EF6030049F6A13346 +S11383C0C0F20003984710BD08B540F2EC03C2F2B6 +S11383D000031B7813F0400F11D113F0020F0ED0DD +S11383E040F2F003C2F200031B681A79FF2A06D197 +S11383F05B7923B948F2F503C0F20003984708BD3E +S113840010B548F2E573C0F200039847002853D032 +S113841040F2E002C2F20002108040F22813C2F2DD +S113842000039C894FF400604AF69933C0F20003BC +S1138430984784421CD1012049F6D533C0F2000389 +S1138440984740F2E003C2F200031B88A3B34AF644 +S11384505563C0F20003984748F63903C0F200039D +S1138460984740F2E003C2F2000300221A8023E09E +S113847040F22813C2F200039C8940F606004AF633 +S11384809933C0F200039847844215D14AF6155334 +S1138490C0F20003984740F2E003C2F200031B88D5 +S11384A053B148F63903C0F20003984740F2E003A1 +S11384B0C2F2000300221A8048F21963C0F20003DA +S11384C0984740F25403C2F200031B6898422BD32E +S11384D040F25402C2F2000203F5FA73136040F250 +S11384E0F403C2F2000340F2F802C2F200021A607E +S11384F0022049F6D533C0F20003984740F2E00366 +S1138500C2F200031B887BB14AF65563C0F2000334 +S1138510984748F63903C0F20003984740F2E00355 +S1138520C2F2000300221A8048F21963C0F2000369 +S1138530984740F25003C2F200031B6898420CD3E0 +S113854040F25002C2F2000203F51C5310331360D0 +S11385504AF6BD43C0F20003984710BD08B54FF476 +S11385606070C0F2C01049F2F523C0F200039847CE +S113857048F29123C0F20003984748F2D153C0F265 +S11385800003984748F28123C0F20003984748F259 +S11385904933C0F20003984748F20513C0F20003C0 +S11385A0984748F2CD26C0F2000648F20145C0F2D1 +S11385B0000548F25514C0F20004B047A847A0478C +S11385C0FBE700BF40F25803C2F200031960FEE764 +S11385D008B549F2B143C0F20003984744F6D353B7 +S11385E0C1F26203A3FB0020800949F29573C0F233 +S11385F00003984749F26D73C0F20003984749F2AB +S11386008173C0F20003984740F25C03C2F2000396 +S113861000221A6008BD00BF40F25C03C2F20003EE +S11386201868704740F25C03C2F200031A68013212 +S11386301A607047FEE700BF2DE9F8434FF4A045E8 +S1138640C2F21005284649F29124C0F20004A04762 +S1138650284649F22923C0F2000398472020C2F299 +S11386600000A0474FF4A040C4F202000C2149F2DC +S11386707903C0F2000398474FF40044C4F20404A1 +S113868020467F2148F6E933C0F20003984720468C +S1138690002148F63943C0F20003984701462046BA +S11386A048F66D43C0F20003984749F2B143C0F263 +S11386B0000398470146204648F68913C0F2000398 +S11386C098472046162148F6C513C0F20003984780 +S11386D02046012148F6B543C0F2000398470446FA +S11386E048F21963C0F20003984700F59C57083715 +S11386F04FF40048C4F204084FF0010948F6B546A7 +S1138700C0F2000648F21965C0F2000506E04046D2 +S11387104946B0470446A847874202D914F0040FDB +S1138720F5D04FF40040C4F2040048F6AD23C0F283 +S113873000039847BDE8F88300B585B008238DF899 +S1138740083000238DF8093027238DF80A30692377 +S11387508DF80B305B238DF80C3045238DF80D30EC +S113876001A8694648F60153C0F200039847019BEB +S1138770B3F1FF3F13D0009AB2F1FF3F0FD08DF851 +S11387800830190A8DF809101B0C8DF80A308DF881 +S11387900B20130A8DF80C30120C8DF80D204FF4B9 +S11387A00040C4F2040002A948F63523C0F20003D5 +S11387B0984740F26C03C2F200039DF808201A7037 +S11387C09DF809205A709DF80A209A709DF80B2094 +S11387D0DA709DF80C201A719DF80D205A7105B0BD +S11387E05DF804FB38B54FF40044C4F20404204699 +S11387F0002148F63943C0F2000398470546204655 +S1138800294648F66D43C0F20003984715F0010F5E +S11388100FD04FF40040C4F2040040F22811C2F219 +S1138820000140F2426248F6F523C0F20003984783 +S113883038BD002038BD00BF08B540F2E003C2F2E5 +S113884000034FF40040C4F2040040F22811C2F2C5 +S113885000011A8848F67133C0F20003984708BD36 +S1138860EFF3108062B670472DE9F001844600F101 +S1138870100403691FFA83F8180C08701B0E4B7060 +S1138880A8F106009042B4BF074617463E1F012ECA +S113889006DD02232568CD500433B342FADD00E03F +S11388A002239F421DDDDCF81050FE1E9E4209D1BA +S11388B08D5539442B0A01F8023C2D0C01F8015C5A +S11388C07B1C0EE0BE1E9E4206D18D5539442D0AF6 +S11388D001F8015CBB1C04E07E1E9E4204BF8D5562 +S11388E0FB1CA8F102018B4203DA256804338B4296 +S11388F0FBDB9042C8BF4042BDE8F001704700BFB7 +S113890070B440F2FE739A42C8BF504239DCA2F1FF +S11389100E030C7843EA04434C7843EA046300F101 +S113892010060361151F012D06DD0223CC583460A7 +S11389300433AB42FADD00E0022393421ED0D41E7E +S11389409C420BD10C5D114411F8025C11F8013CFE +S11389501B0443EA0523234303610FE0941E9C4256 +S113896007D10B5D114411F8011C43EA0123036193 +S113897004E0541E9C4204BF0B5D03610123836326 +S1138980104670BC704700BF38B504460D464FF41E +S11389900042C4F20402904209D04BF2CC00C0F26F +S11389A000004E2148F2C552C0F2000290474CF636 +S11389B06B23C6F65F33A3FB0523C3F347536362FC +S11389C038BD00BF38B504460D464FF40043C4F229 +S11389D00403984209D04BF2CC00C0F20000952168 +S11389E048F2C553C0F20003984725F4873333F0A7 +S11389F0160209D04BF2CC00C0F20000992148F2D3 +S1138A00C553C0F200039847E36823F01603EAB2A3 +S1138A101343E360A36823F00E03C5F30722134353 +S1138A20A360E36B23F00103C5F307451D43E5632E +S1138A3038BD00BF30B583B005460C464FF4004343 +S1138A40C4F2040398420AD04BF2CC00C0F20000F6 +S1138A504FF4817148F2C553C0F20003984754B9EA +S1138A604BF2CC00C0F2000040F2031148F2C553AF +S1138A70C0F20003984723788DF8043063788DF8AA +S1138A800530A3788DF80630E3788DF80730019B24 +S1138A906B610023019323798DF8043063798DF899 +S1138AA00530019BAB6103B030BD00BF10B5044677 +S1138AB04FF40043C4F2040398420AD04BF2CC00B2 +S1138AC0C0F200004FF4AC7148F2C553C0F2000389 +S1138AD09847A36843F01003A360A36843F001031D +S1138AE0A360E36843F00103E360A36843F0100369 +S1138AF0A36010BD70B504460E4615464FF40043FE +S1138B00C4F2040398420AD04BF2CC00C0F2000035 +S1138B1040F27F2148F2C553C0F20003984756B98A +S1138B204BF2CC00C0F200004FF4207148F2C55360 +S1138B30C0F200039847002D0ADC4BF2CC00C0F2CF +S1138B40000040F2812148F2C553C0F20003984767 +S1138B50636B13F03F0F08D0204631462A4648F68F +S1138B606903C0F20003984770BD002070BD00BFC8 +S1138B7070B504460E4615464FF40043C4F2040390 +S1138B8098420AD04BF2CC00C0F2000040F28E3181 +S1138B9048F2C553C0F20003984756B94BF2CC00D3 +S1138BA0C0F2000040F28F3148F2C553C0F2000316 +S1138BB09847002D0ADC4BF2CC00C0F200004FF4C1 +S1138BC0647148F2C553C0F200039847A36B13F0D5 +S1138BD0010FFBD1204631462A4648F60113C0F264 +S1138BE00003984770BD00BF38B504460D464FF4E6 +S1138BF00043C4F2040398420AD04BF2CC00C0F202 +S1138C00000040F2354148F2C553C0F200039847D2 +S1138C1035F07F030AD04BF2CC00C0F200004FF4D1 +S1138C20876148F2C553C0F200039847636823EA9A +S1138C300505656038BD00BF38B504460D464FF4E0 +S1138C400043C4F2040398420AD04BF2CC00C0F2B1 +S1138C5000004FF48B6148F2C553C0F200039847FB +S1138C6020680DB16368184038BD00BF38B50446AC +S1138C700D464FF40043C4F2040398420AD04BF269 +S1138C80CC00C0F2000040F28D4148F2C553C0F25E +S1138C900003984735F07F030AD04BF2CC00C0F2B2 +S1138CA000004FF4926148F2C553C0F200039847A4 +S1138CB0256038BD38B504460D464FF40043C4F270 +S1138CC0040398420AD04BF2CC00C0F2000040F2F8 +S1138CD0DC4148F2C553C0F20003984704F1200375 +S1138CE0226A12F0010FF9D1ED00EDB245F0010551 +S1138CF01D601A6812F0010FFBD1206B80B238BDE1 +S1138D0038B50C46054650B94BF2E800C0F20000F5 +S1138D1040F26B2148F2C553C0F20003984754B99E +S1138D204BF2E800C0F200004FF41B7148F2C55347 +S1138D30C0F2000398474FF46043C4F20F031B686A +S1138D4013F0E04F19D04FF46043C4F20F031A68D4 +S1138D500023C7F2FF031340B3F1805F10D04EF23B +S1138D60E013C4F20F031B682B604EF2E413C4F249 +S1138D700F031B682360002038BD4FF0FF3038BD5F +S1138D804FF0FF3038BD00BF20F480534FF4004251 +S1138D90C4F20502934218BFB3F1402F31D04FF40F +S1138DA0C041C4F200014FF42042C4F205029342D0 +S1138DB018BF8B4227D04FF48041C4F202014FF414 +S1138DC04042C4F20502934218BF8B421DD04FF4B7 +S1138DD0C041C4F202014FF46042C4F2050293425E +S1138DE018BF8B4213D04FF45042C4F20302002345 +S1138DF0C4F20603984218BF904214BF0020012019 +S1138E0070470120704701207047012070470120FE +S1138E10704700BF70B504460E46154648F68953A0 +S1138E20C0F20003984748B94BF20010C0F20000AA +S1138E30E42148F2C553C0F200039847022D09D932 +S1138E404BF20010C0F20000E62148F2C553C0F214 +S1138E500003984715F0010F04F58063D4F800244B +S1138E6014BF3243B2431A6015F0020F04F5846351 +S1138E70D4F8202414BF164322EA06061E6070BDEF +S1138E80F8B504460D4617461E4648F68953C0F207 +S1138E900003984750B94BF20010C0F200004FF4A1 +S1138EA0DD7148F2C553C0F20003984727F0080269 +S1138EB07B1E042A18BF012B0AD94BF20010C0F202 +S1138EC000004FF4DF7148F2C553C0F20003984725 +S1138ED0A6F10803052B0BD956B14BF20010C0F2D2 +S1138EE0000040F2C51148F2C553C0F20003984790 +S1138EF017F0010F04F5A063D4F8002514BF2A432A +S1138F00AA431A6017F0020F04F20453D4F804259C +S1138F1014BF2A43AA431A6017F0040F04F5A1638F +S1138F20D4F8082514BF2A43AA431A6017F0080F7F +S1138F3004F5A363D4F8182514BF2A43AA431A607E +S1138F4016F0010F04F20C53D4F80C2514BF2A4375 +S1138F50AA431A6016F0020F04F5A263D4F8102590 +S1138F6014BF2A43AA431A6016F0040F04F21453E0 +S1138F70D4F8142514BF2A43AA431A6016F0080F24 +S1138F8004F21C53D4F81C2514BF2A43AA431A60C4 +S1138F902EB904F5A563D4F82825154305E004F596 +S1138FA0A563D4F8282522EA05051D60F8BD00BF95 +S1138FB070B504460D46164648F68953C0F20003C0 +S1138FC0984750B94BF20010C0F200004FF45171B1 +S1138FD048F2C553C0F20003984744F8256070BDB9 +S1138FE038B505460C4648F68953C0F20003984745 +S1138FF050B94BF20010C0F2000040F2044148F2B4 +S1139000C553C0F20003984728462146012248F67A +S11390101563C0F20003984728462146012208231D +S113902048F68164C0F20004A04738BD38B505464F +S11390300C4648F68953C0F20003984750B94BF2E6 +S11390400010C0F2000040F21F5148F2C553C0F2B4 +S11390500003984728462146022248F61563C0F2C9 +S113906000039847284621460122082348F68164D4 +S1139070C0F20004A04738BD38B505460C4648F692 +S11390808953C0F20003984750B94BF20010C0F264 +S1139090000040F2C65148F2C553C0F2000398479D +S11390A028462146022248F61563C0F20003984779 +S11390B0284621460422082348F68164C0F20004AD +S11390C0A04738BD08B548F66103C0F200039847CD +S11390D0C0B208BD30B420F08053A3F58012013A29 +S11390E04FF48071C0F210018B4218BF012A98BF5F +S11390F0012040F297804FF40071C0F210014FF448 +S11391008062C0F21002934218BF8B4208BF012054 +S113911000F088804FF4A041C2F2100100F16042D7 +S1139120013A884218BF012A98BF01207AD9042243 +S1139130C2F20002904208BF012073D01022C2F292 +S11391400002904208BF01206CD02022C2F200022B +S1139150904208BF012065D020F480148021C2F21F +S113916000014FF48072C2F20002944218BF8B4295 +S113917008BF012056D020F00052B0F1102F18BFC4 +S1139180402A08BF01204DD04FF48041C1F20001B4 +S11391908C4208BF012045D0B0F1101F08BF012048 +S11391A040D04FF48075C1F200054FF40071C1F254 +S11391B00001884218BFA84208BF012032D0102500 +S11391C0C1F200052021C1F200018A4218BFAA425F +S11391D008BF012026D00821C1F2100188421CD00A +S11391E000F170410139012917D90421C1F20001AC +S11391F08C4214D0B0F1202F13D00121C2F21001FF +S113920088420ED04FF48050C0F21000834218BF41 +S1139210082A14BF0020012004E0012002E00120FC +S113922000E0012030BC704710B582B0044649F21A +S1139230D503C0F20003984750B94BF27410C0F242 +S1139240000040F2B91148F2C553C0F20003984738 +S11392504BF29813C0F20003220F53F82220136834 +S1139260A1B2C4F3044401FA04F4234313600023B9 +S11392700193019B0F2B05D8019B01330193019BA3 +S11392800F2BF9D9136823EA0404146002B010BD4B +S113929010B5044649F2D503C0F20003984750B90B +S11392A04BF27410C0F200004FF4FC7148F2C55345 +S11392B0C0F2000398474BF28C13C0F20003220F54 +S11392C053F822301A68A1B2C4F3044401FA04F436 +S11392D014431C6010BD00BF4EF60C53CEF20003C5 +S11392E00422C0F2FA521A60FEE700BF01387FF48C +S11392F0FDAF704770B504464FF46043C4F20F03EA +S11393001B6813F0E04F0BD04FF46043C4F20F031B +S11393101A680023C7F2FF031340B3F1805F02D140 +S1139320002CC0F2C3804EF26002C4F20F02116836 +S11393304EF27003C4F20F031E6821F4800545F455 +S1139340006546F400601560186011F0020F02D049 +S113935014F0020F05D011F0010F24D014F0010F06 +S113936021D164F003031D404EF26003C4F20F03E5 +S11393701D60002804DA06F03003302B04D00BE023 +S113938005F03003302B07D14FF4805049F2ED2320 +S1139390C0F20003984706E04FF4002049F2ED23A1 +S11393A0C0F20003984725F45F5525F0300543F2D9 +S11393B0F07323401D434DF68F73C7F6FF7333409C +S11393C043F4006242F23003C8F200032340134323 +S11393D004F008024EF25801C4F20F014020086064 +S11393E053EAC2060AD54EF27003C4F20F031E609C +S11393F04EF26003C4F20F031D6009E04EF26003F5 +S1139400C4F20F031D604EF27003C4F20F031E601A +S1139410102049F2ED22C0F20002904725F0F860D6 +S113942020F003000323C0F2C0732340184326F046 +S1139430FC5604F0FC510E4314F0804F1FBF40F45F +S1139440800026F480050023C4F240031ABF2340A1 +S11394501D4326F0804514F4006F17D14EF25003DB +S1139460C4F20F031B6813F0400F0BD147F6FF73D0 +S11394704EF25001C4F20F010A6812F0400F01D1FC +S1139480013BF9D120F4006025F400654EF260033D +S1139490C4F20F0318604EF27003C4F20F031D6090 +S11394A0102049F2ED23C0F20003984770BD00BFBD +S11394B030B44EF26003C4F20F0319684EF2700325 +S11394C0C4F20F031A68002AB4BF02F0700301F05B +S11394D03003202B71D003D87BB1102B16D037E189 +S11394E0602B00F0C180702B00F0BB80302B08BFD4 +S11394F003F5EA4300F0CF802AE14BF21813C0F2DF +S11395000003C1F3841053F82030C4E04FF46043E7 +S1139510C4F20F031B6813F0E04F04BF4EF2C013F4 +S1139520C0F2E40300F0B7804FF46043C4F20F03C9 +S113953018680023C7F2FF030340B3F1805F00F013 +S113954096804FF46043C4F20F0318680023C7F2F7 +S1139550FF0303400020C1F20100834208D14FF40D +S11395606043C4F20F031B689BB2022B00F084809B +S11395704FF46043C4F20F0318680023C7F2FF03DB +S113958003400020C1F2030083421CBF4FF4105378 +S1139590C0F2F4037FD14FF46043C4F20F031C689C +S11395A0A4B24FF4D853C0F2B7034FF41050C0F232 +S11395B0F400002C18BF03466DE04FF46043C4F27E +S11395C00F031B6813F0E04F04BF43F67003C0F2AF +S11395D0390360D04FF46043C4F20F0318680023CA +S11395E0C7F2FF030340B3F1805F4AD04FF46043F6 +S11395F0C4F20F0318680023C7F2FF0303400020DE +S1139600C1F20100834207D14FF46043C4F20F0357 +S11396101B689BB2022B39D04FF46043C4F20F0392 +S113962018680023C7F2FF0303400020C1F20300BF +S113963083421CBF4FF41063C0F23D032BD14FF49F +S11396406043C4F20F031C68A4B24CF2C063C0F2BE +S11396502D034FF41060C0F23D00002C18BF0346E8 +S113966019E04FF4004316E04FF4800313E04EF288 +S1139670C013C0F2E4030EE04FF4D853C0F2B703B2 +S113968009E043F67003C0F2390304E04CF2C0630E +S1139690C0F22D03FFE7002A03DA12F4006F03D0AF +S11396A058E011F4006F5AD14EF26400C4F20F0076 +S11396B000684FF46044C4F20F04246814F0E04FCF +S11396C00BD04FF46044C4F20F0425680024C7F2A1 +S11396D0FF042C40B4F1805F0AD1C0F34814023473 +S11396E004FB03F300F01F040234B3FBF4F309E0BA +S11396F0C0F3481404FB03F300F01F0401346400B6 +S1139700B3FBF4F310F4804F18BF5B0810F4004F60 +S113971018BF9B08002AA8BF41F4800112DA12F096 +S1139720804F09D012F4006F06D15B00C2F3865259 +S11397300132B3FBF2F016E0C2F3C5500130B3FBC3 +S1139740F0F010E0C1F3C3500130B3FBF0F00AE0D5 +S1139750002008E011F4800FE1D1184603E011F471 +S1139760800FEFD1184630BC704700BF4EF2100393 +S1139770CEF200031A6842F005021A60704700BF77 +S11397804EF21003CEF200031A6842F002021A608D +S1139790704700BF10B5441EB4F1807F09D34BF26B +S11397A0A410C0F20000D02148F2C553C0F2000357 +S11397B098474EF21403CEF200031C6010BD00BFA4 +S11397C020F480524FF44043C4F200039A4208D07C +S11397D04FF46043C4F20003984214BF00200120F8 +S11397E070470120704700BF10B5044649F2C173A9 +S11397F0C0F20003984750B94BF2BC10C0F200000D +S11398004FF4CF7148F2C553C0F200039847E36A9E +S113981043F01003E362236B43F4407343F001030A +S1139820236310BD10B5044649F2C173C0F20003AE +S1139830984750B94BF2BC10C0F200004FF4DF71EE +S113984048F2C553C0F200039847A36913F0080F08 +S1139850FBD1E36A23F01003E362236B23F4407328 +S113986023F00103236310BDF8B504460E461546E4 +S11398701F4649F2C172C0F20002904750B94BF240 +S1139880BC10C0F2000040F20D1148F2C553C0F202 +S11398900003984755B94BF2BC10C0F200004FF4D6 +S11398A0877148F2C553C0F2000398474FF46042F1 +S11398B0C4F20F02136813F0E04F08BF102340D026 +S11398C04FF46043C4F20F031A680023C7F2FF0386 +S11398D01340B3F1805F08BF102332D04FF46043CC +S11398E0C4F20F031A680023C7F2FF0313400022D7 +S11398F0C1F20102934209D14FF46043C4F20F0351 +S11399001B689BB2022B08BF10231AD04FF460438C +S1139910C4F20F031A680023C7F2FF0313400022A6 +S1139920C1F20302934218BF08230AD14FF46043E3 +S1139930C4F20F031B689BB2002B0CBF1023082337 +S1139940FFE705FB03F3B3420AD94BF2BC10C0F2A4 +S1139950000040F20F1148F2C553C0F200039847CB +S1139960204649F62502C0F200029047B6EB051FD7 +S1139970236B3DBF43F0200323636D0823F02003D2 +S113998028BF2363F600B6FBF5F50135EB096362E6 +S1139990C5F34505A562E7620023A361204649F2A9 +S11399A0E973C0F200039847F8BD00BF10B5044640 +S11399B049F2C173C0F20003984750B94BF2BC108E +S11399C0C0F2000040F2094148F2C553C0F200035E +S11399D09847A36913F0100F0CBF20684FF0FF30B5 +S11399E010BD00BF30B4013A8D18A94214D20B4601 +S11399F01C785A7802EB042292B2104480B282425C +S1139A0084BF013080B202339D42F1D8CB432B4452 +S1139A1023F0010302331944A94207D10B781B0236 +S1139A20184480B2834284BF013080B230BC704796 +S1139A3070B540F22814C2F20004667C143E237C04 +S1139A4006EB0326B6B2304480B204F11A010822B0 +S1139A5049F6E515C0F20005A84704F12201324693 +S1139A60A847034620B1000A40EA032080B270BD33 +S1139A704FF6FF7070BD00BF70B4C4780C44E4B2FC +S1139A8040F2E803C2F20003DC700D0A82782A4433 +S1139A90D2B29A7046785E700078187095420DD9EB +S1139AA00136F6B240F2E803C2F200035E702EB94A +S1139AB040F2E803C2F2000301301870C9B28C42CC +S1139AC017DA0132D2B240F2E803C2F200039A700C +S1139AD07AB940F2E803C2F200035A780132D2B2F2 +S1139AE05A7032B940F2E803C2F200031A78013224 +S1139AF01A7070BC704700BF10B5014640F2F40400 +S1139B00C2F200042068083049F67923C0F2000349 +S1139B109847226840F2E803C2F2000319781172F0 +S1139B205978517299789172DB78D37210BD00BF65 +S1139B3008B500200849142249F6E513C0F20003D1 +S1139B409847034620B1000A40EA032080B208BDCA +S1139B504FF6FF7008BD00BF3601002008B506208F +S1139B6049F63123C0F20003984708BD40F21813A8 +S1139B70C2F2000300221A8040F2F803C2F200038A +S1139B805A7640F27403C2F2000301221A7040F2C2 +S1139B906803C2F200034FF480621A80704700BF6A +S1139BA040F27403C2F2000300221A7040F2181348 +S1139BB0C2F200031B882BB940F21813C2F200034F +S1139BC01880704740F27403C2F2000301221A7035 +S1139BD0704700BF38B540F2F403C2F200031C68BA +S1139BE040F2F003C2F20003AD4A1A6040F2E4030B +S1139BF0C2F200031A60032816D1637E03F00F0338 +S1139C00032B40F0AE87238A002B40F0AA8740F252 +S1139C10EC03C2F2000308221A7048F2C933C0F2FE +S1139C200003984700F0CCBD022840F0A78040F222 +S1139C306403C2F20003DA780132D2B2DA70C2B934 +S1139C4040F26403C2F200039A780132D2B29A70ED +S1139C507AB940F26403C2F200035A780132D2B2F4 +S1139C605A7032B940F26403C2F200031A78013226 +S1139C701A7040F2E003C2F2000300221A8040F29C +S1139C806A73C2F200031A80637E03F0FD02052AA0 +S1139C9009D1A37E0133DBB2A376782B04BF002362 +S1139CA0637600F05EBF002B00F05B87228A002AF7 +S1139CB052D0A27E511EA176002A40F05287E27E45 +S1139CC0082A05D0591EC9B2012917D8052A15D169 +S1139CD00023637640F2EC03C2F2000380221A7080 +S1139CE048F2C933C0F20003984740F22813C2F285 +S1139CF00003142283F82F2000F0AABE042A9DBF7B +S1139D0003219140C9B23021A1760132E27603F0F9 +S1139D100F03013B072B00F22487DFE813F06D02E9 +S1139D2008001000D8042207D8042207D80440F2FF +S1139D302813C2F20003002283F82F2063E240F2CA +S1139D40EC03C2F2000304221A7048F2C933C0F2D1 +S1139D500003984700F085BD03F00F03032B40F088 +S1139D60008740F2EC03C2F2000308221A7048F2A2 +S1139D70C933C0F20003984700F022BD40F2281313 +S1139D80C2F200039B7B452B40F0EB8640F2281384 +S1139D90C2F20003197C5A7C02EB012040F2E0037A +S1139DA0C2F200031B88984200F3DB8684B240F2BF +S1139DB0E003C2F200031C8040F22813C2F2000345 +S1139DC01B7D13F03F0F40F0CC8640F22813C2F203 +S1139DD000035B7D002B40F0C48640F22413C2F2E2 +S1139DE000031D882DB940F22413C2F200035B88DE +S1139DF0A3B140F22813C2F20003DB8BAB4240F064 +S1139E00B08640F22812C2F2000240F22413C2F2D9 +S1139E100003128C5B889A4240F0A38649F63133E2 +S1139E20C0F2000398474FF6FF73984240F09986BA +S1139E3040F22813C2F20003DB7D062B32D0012B43 +S1139E4040F08F8640F22813C2F2000393F82230C8 +S1139E50082B40F0868640F22813C2F20003002249 +S1139E6083F822209A8C4FF6F6739A4240F2281314 +S1139E70C2F200038CBF093208329A8440F22813DC +S1139E80C2F200035A8BDA839A8B1A845D8340F200 +S1139E902412C2F2000252889A8300F05BBE00BF13 +S1139EA05E01002049F65D33C0F2000398474FF687 +S1139EB0FF73984240F0558640F2F803C2F2000363 +S1139EC0597E81B340F22812C2F2000240F2F80334 +S1139ED0C2F20003928C9B889A4224D140F2281249 +S1139EE0C2F2000240F2F803C2F20003528CDB8893 +S1139EF09A4218D140F22812C2F2000240F2F8034A +S1139F00C2F20003528B1B889A420CD140F22812F1 +S1139F10C2F2000240F2F803C2F20003928B5B88A3 +S1139F209A4200F0918140F22813C2F2000393F8A0 +S1139F302F3003F03F03022B1CD140F22813C2F24E +S1139F4000039A8C40F26003C2F200031A8040F2CC +S1139F507403C2F200030021197040F21813C2F214 +S1139F6000031B8893427BD040F27403C2F20003C7 +S1139F7001221A7040F22813C2F2000393F82F3022 +S1139F8013F0040F40F0ED8540F22813C2F20003F1 +S1139F90142283F82F2040F2E002C2F200022821AA +S1139FA01180502283F82E2093F8295093F82D2005 +S1139FB083F8292093F8284093F82C2083F828204C +S1139FC083F82C4093F8270093F82B2083F827205C +S1139FD083F82B0093F8262040F27401C2F20001AA +S1139FE00A7093F82A1083F8261083F82A20691C33 +S1139FF0C9B283F82D10C1B9611CC9B240F228134B +S113A000C2F2000383F82C1079B9411CC9B240F2A2 +S113A0102813C2F2000383F82B1031B940F228133D +S113A020C2F20003013283F82A2040F22813C2F25C +S113A0300003598C40F26002C2F2000211809A8C33 +S113A0405A8499845A8BDA839A8B1A8440F22412A4 +S113A050C2F200021188598352889A8300F047BDE6 +S113A06040F2F803C2F200035B7E23B1072B40F0F9 +S113A0708C8500F082BD40F2F401C2F2000140F28E +S113A080F803C2F200030B600321997619760021CC +S113A09099750420D875D9769A8040F22814C2F2B2 +S113A0A00004628CDA80628B1A80A28B5A800120B1 +S113A0B0587640F26402C2F20002117819735178A2 +S113A0C0597391789973D278DA73188294F82920A5 +S113A0D0DA7294F828209A7294F827205A7294F825 +S113A0E026201A7249F6F923C0F20003984794F81F +S113A0F02E3003F0F002502A7ADD1B095C1FA40005 +S113A10040F27503C2F200031A78002340F22811CA +S113A110C2F200015AE0CA1892F8362072B940F22D +S113A1207401C2F200010B7040F27503C2F2000325 +S113A1301A7040F2F804C2F200045DE0012A02D170 +S113A1400133DBB242E0022A2BD10D1895F83750C7 +S113A150042D26D140F27402C2F20002137040F2C0 +S113A1607503C2F2000302221A7040F22813C2F2ED +S113A1700003034493F8382093F8393043EA022269 +S113A18040F26003C2F200031A8040F20A639A426A +S113A19038BF134640F2F804C2F200046382A3827B +S113A1A02AE0084490F8370070B940F27401C2F212 +S113A1B000010B7040F27503C2F200031A7040F202 +S113A1C0F804C2F2000417E00344DBB21846A342C9 +S113A1D0A1DB40F27401C2F200010B7040F275037E +S113A1E0C2F200031A7040F2F804C2F2000403E061 +S113A1F040F2F804C2F2000440F22813C2F2000351 +S113A200102283F82F2040F22813C2F2000393F89F +S113A2102F2042F0020283F82F20022283F83620F6 +S113A220042283F83720062283F838200A2283F890 +S113A230392040F2E002C2F200022C211180602297 +S113A24083F82E2000F011BC40F2F403C2F20003A4 +S113A25040F2F802C2F200021A6040F2EC03C2F2C9 +S113A260000300221A7040F22813C2F2000393F88C +S113A2702F3013F0040F11D040F2F803C2F20003A0 +S113A2805A7640F2EC03C2F2000320221A7048F21C +S113A290C933C0F20003984700F063BC40F22812AF +S113A2A0C2F2000292F82E000009800040F274020B +S113A2B0C2F200021070143C201A80B240F2E00294 +S113A2C0C2F20002108001F00F01022903D103F051 +S113A2D03F02122A1DD010B913F0030F19D040F217 +S113A2E02811C2F2000140F2F802C2F20002C98C45 +S113A2F01289914240F0A18340F22811C2F2000178 +S113A30040F2F802C2F20002098D5289914240F0F3 +S113A310948313F0100F7AD040F2F803C2F20003D2 +S113A320198A002973D003F10C0049F67923C0F28D +S113A3300003984740F22813C2F2000393F82A401E +S113A34040F2E803C2F200031B78A3425FD140F25B +S113A3502813C2F2000393F82B0040F2E803C2F280 +S113A36000035B78834252D140F22813C2F2000307 +S113A37093F82C1040F2E803C2F200039B788B425E +S113A38045D140F22813C2F2000393F82D2040F285 +S113A390E803C2F20003DB78934238D140F2F803B9 +S113A3A0C2F200031C7358739973DA73DB7E03BB28 +S113A3B040F2F803C2F20003987D197E9A7E891A4E +S113A3C0A1EBD001C9B2CAB20844C0B2987512F068 +S113A3D0800F1CBF4A42D2B240F2F803C2F200031B +S113A3E0D97DA1EB91010A44D2B2DA7502EBD00215 +S113A3F01A7640F2EC03C2F2000301221A7040F212 +S113A400F803C2F200031A7E9A7600221A8240F2FE +S113A410F803C2F200035A7E02F00F03013B072B3C +S113A42000F29F83DFE813F00800400013016F027D +S113A430C202F7020903540240F2EC03C2F2000321 +S113A4401B7813F0010F00F08C8340F2F803C2F282 +S113A450000303225A7640F2EC02C2F200024021C9 +S113A460117000221A8240F2E003C2F2000318883D +S113A47050B140F2EC03C2F2000342221A7049F6D2 +S113A480F923C0F20003984740F26A73C2F2000352 +S113A49000221A8048F2C933C0F20003984740F200 +S113A4A0F804C2F200048BE140F2EC03C2F20003B0 +S113A4B01B7813F0010F00F0B78040F22813C2F2AA +S113A4C0000393F82F3003F03F03122B40F0AC80CD +S113A4D040F22813C2F2000393F82E3003F0F00286 +S113A4E0502A6DDD1B095C1FA40040F27503C2F203 +S113A4F000031A78002340F22811C2F2000152E04E +S113A500CA1892F8362052B940F27401C2F200011E +S113A5100B7040F27503C2F200031A7050E0012A76 +S113A52002D10133DBB23EE0022A2BD10D1895F89B +S113A5303750042D26D140F27402C2F20002137087 +S113A54040F27503C2F2000302221A7040F228138B +S113A550C2F20003034493F8382093F8393043EAF5 +S113A560022240F26003C2F200031A8040F20A633E +S113A5709A4228BF1A4640F2F803C2F200035A82F4 +S113A5809A821DE0084490F8370050B940F27401F3 +S113A590C2F200010B7040F27503C2F200031A709C +S113A5A00EE00344DBB21846A342A9DB40F2740177 +S113A5B0C2F200010B7040F27503C2F200031A707C +S113A5C040F2F804C2F200040323637640F2281335 +S113A5D0C2F2000393F82620227293F827206272B5 +S113A5E093F82820A27293F82930E372012049F6E7 +S113A5F0F923C0F20003984740F2EC03C2F20003CF +S113A60042221A700022228240F2E003C2F20003C6 +S113A6101A8040F26A73C2F200031A8048F2C93306 +S113A620C0F200039847CBE040F2EC03C2F200030F +S113A63020221A7048F2C933C0F20003984740F24E +S113A640F403C2F200031B6800225A7692E440F23B +S113A6502813C2F2000393F82F3013F0010F3ED0F9 +S113A66012F0100F3BD140F2F803C2F200031B8A30 +S113A670002B40F0768240F2E004C2F2000420880D +S113A680013080B249F6F923C0F20003984740F242 +S113A690EC03C2F200031A7842F010011970238807 +S113A6A033B140F2EC03C2F2000342F012021A701A +S113A6B048F2C933C0F20003984740F2F804C2F2EA +S113A6C0000401232382082363760023E37640F207 +S113A6D02813C2F20003112283F82F20B8E113F0EB +S113A6E0200F18D040F22813C2F2000393F834006C +S113A6F0000293F8351040F2F003C2F2000340EA7E +S113A70001051C682C441C6040F2E003C2F2000303 +S113A7101888411B198040F2E003C2F20003188834 +S113A72078B112F0100F0CD140F2EC03C2F2000326 +S113A7301A7842F002021A7049F6F923C0F20003B3 +S113A740984740F22813C2F2000393F8302093F89C +S113A750313003EB02239BB240F26002C2F20002EA +S113A760138040F2F802C2F20002928A934200D8A7 +S113A77023B940F26003C2F200031A8040F2F803E6 +S113A780C2F2000340F26002C2F2000212885A824E +S113A79040F2EC03C2F200031B7813F0030F00F045 +S113A7A0E08140F26A73C2F2000300221A8048F288 +S113A7B0C933C0F20003984740F2F804C2F200041F +S113A7C040F2EC03C2F200031B7813F0200F0ED00A +S113A7D040F26A73C2F2000300221A80627640F2E9 +S113A7E02813C2F20003142283F82F2030E113F05F +S113A7F0100F12D040F26A73C2F2000300221A80D2 +S113A8000123238204236376E27640F22813C2F202 +S113A8100003112283F82F201AE140F26A72C2F277 +S113A82000021288DAB113F0010F1CBF0023238247 +S113A83001D1218A71B9618A8A4282BF40F26A7366 +S113A840C2F20003198040F26A73C2F200031B884B +S113A850238204E040F26A73C2F2000319800023E9 +S113A860E37640F2F003C2F2000340F2E402C2F2E3 +S113A870000212681A6040F26A73C2F200031B8875 +S113A8807BB1238A6BB140F2E002C2F200022833AA +S113A890138040F22813C2F20003182283F82F20F9 +S113A8A0DCE040F2EC03C2F200031B7813F0020F69 +S113A8B000F0578140F2E003C2F2000328221A801C +S113A8C040F22813C2F20003102283F82F20C5E0BF +S113A8D040F2EC03C2F200031B7813F0010F00F006 +S113A8E0408140F2F803C2F2000300225A7640F29B +S113A8F0EC03C2F2000310221A7048F2C933C0F20A +S113A900000398472DE140F2E003C2F200031888E7 +S113A91020B149F6F923C0F20003984740F2281306 +S113A920C2F2000393F82F3013F0010F25D040F248 +S113A930EC03C2F200031B7813F0010F40F2F8039A +S113A940C2F200031FBF07225A7600229A7612BF72 +S113A9501A8206225A76012049F6F923C0F200032E +S113A960984740F2EC03C2F2000310221A7048F236 +S113A970C933C0F2000398475FE040F2EC03C2F22F +S113A98000031B7813F0010F08D040F2F803C2F261 +S113A990000305225A7600221A82E2E040F2E00324 +S113A9A0C2F200031B88002B47D1DAE040F2E00337 +S113A9B0C2F20003188820B149F6F923C0F200035B +S113A9C0984740F22813C2F2000393F82F3013F093 +S113A9D0010F19D040F2F803C2F2000307225A769D +S113A9E000229A76012049F6F923C0F20003984721 +S113A9F040F2EC03C2F2000310221A7048F2C93389 +S113AA00C0F20003984718E040F2E003C2F20003EA +S113AA101B8893B9A5E040F2EC03C2F200031B7853 +S113AA2013F0010F00F09D8040F2F803C2F200031E +S113AA3007225A7600229A7693E040F22813C2F253 +S113AA400003102283F82F2040F2F804C2F200041D +S113AA5040F2E003C2F2000328221A8040F22813D5 +S113AA60C2F20003502283F82E20227A40F22813E7 +S113AA70C2F2000383F82A20627A83F82B20A27A98 +S113AA8083F82C20E27A83F82D20227B83F8262079 +S113AA90627B83F82720A27B83F82820E27B83F85B +S113AAA029200622DA75A2885A84E2889A8440F220 +S113AAB02412C2F200021188598352889A83228890 +S113AAC0DA8362881A84637E13F0100F40F228132D +S113AAD0C2F200031DBF002283F8312083F8302026 +S113AAE0062202BF83F830200A2283F8312040F284 +S113AAF02814C2F200044023A37540F2E003C2F21A +S113AB0000031B881A0A22746374002584F83550E4 +S113AB1084F83450658649F65D33C0F200039847E3 +S113AB20C04360864523A373E5736575257540F2BC +S113AB306203C2F200031A88013292B21A80130A25 +S113AB40A374E274258349F63133C0F200039847B5 +S113AB50C043208340F2EC03C2F2000300221A70C7 +S113AB6038BD40F2E003C2F2000300221A8040F232 +S113AB70EC03C2F200031A7038BD40F27403C2F24F +S113AB80000301211970FFF776BA40F27403C2F290 +S113AB90000301221A70E4E7030A43EA002080B2AA +S113ABA0704700BF2DE9F00340F27603C2F20003C0 +S113ABB04FF0000C83F800C040F27805C2F20005A3 +S113ABC02B4601221F461C88CCB15E88BEB1B0F86A +S113ABD00080A04513D14488B44210D140F27603DA +S113ABE0C2F2000383F800C0086878608B883B8158 +S113ABF040F2D903C2F200031B78BB725AE0541C22 +S113AC00E4B20C33092C02D094462246DAE72B46F0 +S113AC1000221E461C884CB95C883CB940F276037D +S113AC20C2F200031A70082A36D104E00132D2B20B +S113AC300C33082AEDD1002340F2D902C2F20002FB +S113AC401678B0461F4699465FFA83FCAA7AC2EB8F +S113AC500804BC42C2BFC2EB0602E146D7B20133CC +S113AC600C35082BF0D140F27703C2F200031F70B9 +S113AC7040F2D803C2F2000383F8009040F2760356 +S113AC80C2F2000383F8009040F27803C2F200039A +S113AC9009EB490903EB89060268334643F8042BA0 +S113ACA00A6872608A889A8040F2D903C2F200036B +S113ACB01B78B372BDE8F003704700BFF0B440F2F4 +S113ACC0D903C2F200031E780136F6B21E7040F2B8 +S113ACD07803C2F200030122002740F27604C2F294 +S113ACE0000458881988014389B259B1997A711AB4 +S113ACF0772907DD194601F8017B5F70013101F8FE +S113AD00017B0F7022700132D2B20C33092AE8D1D0 +S113AD10F0BC704738B540F2E003C2F200031B8870 +S113AD20292B06D840F2E003C2F2000300221A8065 +S113AD3038BD40F2E003C2F2000300221A8040F260 +S113AD402813C2F200039B8AB3F5807F03D0B3F5C6 +S113AD50007F5CD038BD40F22812C2F2000240F2FB +S113AD602413C2F20003D28C1B889A426FD140F2A2 +S113AD702812C2F2000240F22413C2F20003128D20 +S113AD805B889A4263D1324CA51F204629464AF675 +S113AD90A533C0F200039847A4F11C03002204F871 +S113ADA0082C022204F8072C54F8062C626034F8AC +S113ADB0022C228140F26C02C2F20002106844F8B4 +S113ADC0060C928824F8022C44F8160C24F8122C51 +S113ADD0626844F81C2C228924F8182C9A8B62810E +S113ADE06288A28140F22412C2F20002118899837F +S113ADF052886280082204F8102C062204F80F2CD2 +S113AE0040F2E003C2F200032A221A8038BD40F265 +S113AE102812C2F2000240F22413C2F20003D28CC0 +S113AE201B889A4213D140F22812C2F2000240F267 +S113AE302413C2F20003128D5B889A4207D104499D +S113AE40084606394AF6A533C0F20003984738BDD0 +S113AE504401002038B540F22813C2F20003D98B14 +S113AE608AB24FF6FF739A4215D140F22813C2F208 +S113AE700003188C4FF6FF7398420CD140F228134C +S113AE80C2F200034BF2D412C0F200021068186040 +S113AE9092889A80B0E040F22413C2F200031B8827 +S113AEA05A4040F22013C2F200031B881A4212D106 +S113AEB040F22813C2F200031A8C90B240F2241319 +S113AEC0C2F200035B88584040F22013C2F2000330 +S113AED05B8818420CD040F2DC03C2F2000340F25B +S113AEE01C12C2F200021188198052885A8005E0AF +S113AEF040F2DC03C2F2000319805A8040F2DC0302 +S113AF00C2F2000318885D8840F27803C2F200039D +S113AF1000221C46198881420AD15988A94207D1C6 +S113AF2040F27603C2F200031A70082A5BD109E0EA +S113AF300132D2B20C33082AEBD140F27603C2F2CA +S113AF4000031A7040F22814C2F200042046FF21C4 +S113AF5006224BF22D03C0F200039847002384F825 +S113AF60203084F8213084F8223084F8233084F8A7 +S113AF70243084F8253040F26C02C2F200021168D9 +S113AF80C4F8061092886281C4F81610628340F2F5 +S113AF90DC02C2F200021188E1845288228540F268 +S113AFA02412C2F200021188A1835288E28323751D +S113AFB001226275A373E273082222746374062368 +S113AFC0A3740423E37422730623637340F2F0032F +S113AFD0C2F2000336341C6040F2E003C2F2000304 +S113AFE02A221A8038BD40F22813C2F2000354F812 +S113AFF0040F1860A2889A8040F22813C2F200035A +S113B00040F26C02C2F200021168C3F80610928882 +S113B0105A8108221A7300225A7340F2E003C2F2E2 +S113B02000031A880E321A8038BD00BF8307F0B4BB +S113B03048D0541E002A43D0CDB2034602E0002C6F +S113B0403ED0144603F8015B13F0030F04F1FF3202 +S113B050F5D1032C2DD9CDB20F2C45EA052545EAAF +S113B060054518D9A4F1100703F110061A463F0943 +S113B07006EB07161560103242F80C5C42F8085CC7 +S113B08042F8045CB242F5D104F00F040137032CFA +S113B09003EB07130DD91E462246043A46F8045B17 +S113B0A0032AFAD8221F04F0030422F00302043214 +S113B0B013442CB1C9B21C4403F8011BA342FBD1B5 +S113B0C0F0BC704714460346C3E700BF6C69622FA7 +S113B0D06472697665726C69622F65746865726EF4 +S113B0E065742E63000000006C69622F64726976D7 +S113B0F065726C69622F666C6173682E6300000070 +S113B1006C69622F6472697665726C69622F67700C +S113B110696F2E630000000040420F0000201C00F5 +S113B12080841E0000802500999E3600004038006F +S113B13000093D0000803E0000004B00404B4C00E5 +S113B14000204E00808D5B0000C05D000080700018 +S113B15000127A0000007D0080969800001BB70062 +S113B1600080BB00C0E8CE00647ADA000024F4005A +S113B1700000FA006C69622F6472697665726C690A +S113B180622F73797363746C2E63000000E10F40C7 +S113B19004E10F4008E10F4040E00F4044E00F405D +S113B1A048E00F406C69622F6472697665726C695D +S113B1B0622F7379737469636B2E63006C69622FF9 +S113B1C06472697665726C69622F756172742E633C +S10FB1D000000000FFFFFFFFFFFF000075 S90380007C diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/boot.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/boot.c index ae0debda..945d6de9 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/boot.c +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/boot.c @@ -42,7 +42,7 @@ ** \return none. ** ****************************************************************************************/ -static void BootActivate(void) +void BootActivate(void) { /* perform software reset to activate the bootoader again */ SysCtlReset(); diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/boot.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/boot.h index 7e34db31..29f3b87c 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/boot.h +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/boot.h @@ -38,6 +38,7 @@ ****************************************************************************************/ void BootComInit(void); void BootComCheckActivationRequest(void); +void BootActivate(void); #endif /* BOOT_H */ diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/header.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/header.h index 26189e05..1036c781 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/header.h +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/header.h @@ -41,6 +41,7 @@ #include "irq.h" /* IRQ driver */ #include "led.h" /* LED driver */ #include "time.h" /* Timer driver */ +#include "net.h" /* TCP/IP server application */ #include "inc/hw_ints.h" #include "inc/hw_memmap.h" #include "inc/hw_nvic.h" diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/ide/DemoProg.project b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/ide/DemoProg.project index 7d0e7bf3..25db893a 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/ide/DemoProg.project +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/ide/DemoProg.project @@ -1,5 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -80,6 +111,13 @@ + + + + + + + @@ -90,6 +128,8 @@ + + diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/lib/uip/clock-arch.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/lib/uip/clock-arch.c new file mode 100644 index 00000000..9c9fdd17 --- /dev/null +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/lib/uip/clock-arch.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 + */ + +#include "header.h" /* generic header */ +#include "clock-arch.h" + +/*---------------------------------------------------------------------------*/ +clock_time_t +clock_time(void) +{ + return (clock_time_t)TimeGet(); +} +/*---------------------------------------------------------------------------*/ diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/lib/uip/clock-arch.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/lib/uip/clock-arch.h new file mode 100644 index 00000000..aa97f0e7 --- /dev/null +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/lib/uip/clock-arch.h @@ -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__ */ diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/lib/uip/netdev.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/lib/uip/netdev.c new file mode 100644 index 00000000..1dcbe2ce --- /dev/null +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/lib/uip/netdev.c @@ -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 + * + * $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); +} + + diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/lib/uip/netdev.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/lib/uip/netdev.h new file mode 100644 index 00000000..d02efb3c --- /dev/null +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/lib/uip/netdev.h @@ -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__ */ diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/lib/uip/uip-conf.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/lib/uip/uip-conf.h new file mode 100644 index 00000000..fd9ba0dd --- /dev/null +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/lib/uip/uip-conf.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 + */ + +#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__ */ + +/** @} */ +/** @} */ diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/main.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/main.c index 6ace8570..589026c2 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/main.c +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/main.c @@ -53,6 +53,8 @@ int main(void) { /* initialize the microcontroller */ Init(); + /* initialize the network application */ + NetInit(); /* initialize the bootloader interface */ BootComInit(); @@ -61,6 +63,8 @@ int main(void) { /* toggle LED with a fixed frequency */ LedToggle(); + /* run the network task */ + NetTask(); /* check for bootloader activation request */ BootComCheckActivationRequest(); } diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/makefile b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/makefile index 89948f9b..edc6ce09 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/makefile +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/makefile @@ -43,10 +43,17 @@ irq.c \ irq.h \ led.c \ led.h \ +net.c \ +net.h \ main.c \ time.c \ time.h \ 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/hw_adc.h \ lib/inc/hw_comp.h \ @@ -118,7 +125,26 @@ lib/driverlib/udma.h \ lib/driverlib/usb.c \ lib/driverlib/usb.h \ 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 #|---------------------------------------------------------------------------------------| diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/net.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/net.c new file mode 100644 index 00000000..2cbfe699 --- /dev/null +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/net.c @@ -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 . +* +* 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 . +* +* \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 **************************************/ diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/net.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/net.h new file mode 100644 index 00000000..1911a221 --- /dev/null +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/net.h @@ -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 . +* +* 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 . +* +* \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 **************************************/ diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/bin/openbtl_ek_lm3s6965.out b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/bin/openbtl_ek_lm3s6965.out index 6492dcb2dc09e351b84b2245d2f1c94226c89bd7..266673b308e9854217feec7530dacbd2fc3bf3bc 100644 GIT binary patch delta 704 zcmY+CO-NKx6vuu4_nwo6A0V@6lyEhg3uj^A))qk#1w%Q`=p+i0MB;!sek=+KjGU~@ zapc-8W~OpLX%qzU5KPDeK?)}fq_B;v5L#*I-aF^c2QDuB&i~wV-uvHkw$hHRwBy;N z7DYn;EMj7K3U-mG#T_y=JiZ;1Z>}r7vkogDUM_KEspNNqf15H?8GR8)rqGJ*F1T!JP5OL zy9>`5es2;Xcg`1#blHEO0Ji4uhz)3iSepJe5<1PaccX8ozhRBCgC@I12^0wh#;{7|L-*M=6*h3I%oivnWtda}mzyag*{Vp-hM$WOFjFB_ zTt%sy6W_Mrq?QJFE_1kg7eU9yp|xOco8sRrcEs^Lcy+0WTTSR?u$%Cl;ifkYwijVm zZZ~6y;d?Vi82mnTF(iHIl*f+=R(|^tV|dkq8HVev>C~szba{P1RneCKD%dEUw8K^| z)`N&$Vn6L2_^5olLa>dwlV1_q55c1`ikdzQD>2cB64hpJ0M-@uEMI-UaOcn2yqQ4f z!%)@Z979BtauPjZd@xc8Q8|WZik31|IgX&x-i%|EiArDMP>mxmf;A)l<7}Sn2v#&k z(LI4BMP-wSEBZPKOI>_4gNUgqOe{S#Z+y-Mw5 S_{HKbDebug $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.h - $PROJ_DIR$\..\..\..\..\Source\file.h + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\lc-switch.h $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\nvm.c $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\option\unicode.c $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\nvm.h @@ -21,9 +21,8 @@ $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\ff.h $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\integer.h $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\clock.h - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\lc-switch.h - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\lc.h $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\pt.h + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\lc.h $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip.c $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip.h $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arch.h @@ -45,70 +44,22 @@ $PROJ_DIR$\..\..\..\..\Source\cop.c $PROJ_DIR$\..\..\..\..\Source\cop.h $PROJ_DIR$\..\..\..\..\Source\file.c + $PROJ_DIR$\..\..\..\..\Source\file.h $PROJ_DIR$\..\..\..\..\Source\net.c $PROJ_DIR$\..\..\..\..\Source\net.h $PROJ_DIR$\..\..\..\..\Source\plausibility.h $PROJ_DIR$\..\..\..\..\Source\xcp.c $PROJ_DIR$\..\..\..\..\Source\xcp.h - $PROJ_DIR$\..\obj\cpu.pbi - $PROJ_DIR$\..\obj\flash.pbi - $TOOLKIT_DIR$\inc\c\xmtx.h - $PROJ_DIR$\..\..\..\..\Source\filesys.h - $PROJ_DIR$\..\obj\unicode.lst - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\psock.c - $TOOLKIT_DIR$\inc\c\stdlib.h - $PROJ_DIR$\..\obj\filesys.o - $PROJ_DIR$\..\obj\unicode.pbi - $PROJ_DIR$\..\..\..\..\Source\fatfs\src\ff.h - $PROJ_DIR$\..\obj\led.lst - $PROJ_DIR$\..\obj\filesys.lst - $PROJ_DIR$\..\obj\led.pbi - $PROJ_DIR$\..\obj\unicode.o - $PROJ_DIR$\..\..\..\..\Source\filesys.c - $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\ccsbcs.c - $TOOLKIT_DIR$\inc\c\ctype.h - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\psock.h - $TOOLKIT_DIR$\inc\c\xtls.h - $TOOLKIT_DIR$\inc\c\DLib_Config_Normal.h - $TOOLKIT_DIR$\inc\c\xlocale_c.h - $TOOLKIT_DIR$\inc\c\xencoding_limits.h - $PROJ_DIR$\..\obj\sysctl.pbi - $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\unicode.c - $PROJ_DIR$\..\obj\uartlib.pbi - $PROJ_DIR$\..\obj\uart.o - $PROJ_DIR$\..\obj\hooks.pbi - $PROJ_DIR$\..\obj\uart.lst - $PROJ_DIR$\..\obj\cop.lst - $PROJ_DIR$\..\obj\com.lst - $TOOLKIT_DIR$\lib\dl7M_tln.a - $TOOLKIT_DIR$\lib\rt7M_tl.a - $PROJ_DIR$\..\obj\ff.pbi - $PROJ_DIR$\..\obj\uartlib.lst - $PROJ_DIR$\..\obj\ff.lst - $PROJ_DIR$\..\obj\cpulib.lst - $PROJ_DIR$\..\obj\openbtl_ek_lm3s6965.map - $PROJ_DIR$\..\obj\nvm.lst - $TOOLKIT_DIR$\inc\c\stdarg.h - $PROJ_DIR$\..\obj\cpulib.o - $PROJ_DIR$\..\obj\main.pbi - $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\memory.x - $PROJ_DIR$\..\obj\mmc.o - $PROJ_DIR$\..\obj\flashlib.lst - $PROJ_DIR$\..\obj\filesys.pbi - $PROJ_DIR$\..\obj\mmc.pbi - $PROJ_DIR$\..\obj\vectors.pbi - $PROJ_DIR$\..\obj\timer.o - $PROJ_DIR$\..\obj\flash.o $PROJ_DIR$\..\obj\main.lst $PROJ_DIR$\..\obj\vectors.o $PROJ_DIR$\..\obj\timer.pbi - $PROJ_DIR$\..\obj\boot.lst - $PROJ_DIR$\..\obj\vectors.lst - $PROJ_DIR$\..\obj\timer.lst - $TOOLKIT_DIR$\lib\m7M_tl.a $PROJ_DIR$\..\obj\file.pbi $PROJ_DIR$\..\obj\file.o $PROJ_DIR$\..\..\..\..\Source\fatfs\src\diskio.c + $PROJ_DIR$\..\obj\vectors.lst + $PROJ_DIR$\..\obj\timer.lst + $TOOLKIT_DIR$\lib\m7M_tl.a + $PROJ_DIR$\..\obj\boot.lst $PROJ_DIR$\..\obj\ssi.o $PROJ_DIR$\..\obj\ssi.pbi $PROJ_DIR$\..\obj\ff.o @@ -117,8 +68,8 @@ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\apps\hello-world\hello-world.h $PROJ_DIR$\..\..\..\..\Source\third_party\uip\apps\hello-world\hello-world.c $PROJ_DIR$\..\..\..\..\Source\fatfs\src\ff.c - $PROJ_DIR$\..\..\..\..\Source\fatfs\src\diskio.h $PROJ_DIR$\..\obj\ssi.lst + $PROJ_DIR$\..\..\..\..\Source\fatfs\src\diskio.h $PROJ_DIR$\..\config.h $PROJ_DIR$\..\..\..\..\Source\fatfs\src\integer.h $PROJ_DIR$\..\obj\file.lst @@ -140,19 +91,6 @@ $TOOLKIT_DIR$\inc\c\wchar.h $TOOLKIT_DIR$\inc\c\xlocale.h $TOOLKIT_DIR$\inc\c\yvals.h - $TOOLKIT_DIR$\inc\c\DLib_Product.h - $TOOLKIT_DIR$\inc\c\ycheck.h - $TOOLKIT_DIR$\lib\shb_l.a - $PROJ_DIR$\..\obj\mmc.lst - $PROJ_DIR$\..\obj\led.o - $PROJ_DIR$\..\bin\openbtl_ek_lm3s6965.out - $PROJ_DIR$\..\obj\assert.o - $PROJ_DIR$\..\obj\hooks.o - $PROJ_DIR$\..\obj\com.o - $PROJ_DIR$\..\obj\flash.lst - $PROJ_DIR$\..\obj\backdoor.lst - $PROJ_DIR$\..\obj\cpu.lst - $TOOLKIT_DIR$\inc\c\ysizet.h $PROJ_DIR$\..\lib\driverlib\debug.h $PROJ_DIR$\..\lib\driverlib\ethernet.h $PROJ_DIR$\..\lib\driverlib\cpulib.h @@ -196,6 +134,68 @@ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\cpu.c $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\cpu.h $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.c + $TOOLKIT_DIR$\inc\c\DLib_Product.h + $TOOLKIT_DIR$\inc\c\ycheck.h + $TOOLKIT_DIR$\lib\shb_l.a + $PROJ_DIR$\..\obj\mmc.lst + $PROJ_DIR$\..\obj\led.o + $PROJ_DIR$\..\bin\openbtl_ek_lm3s6965.out + $PROJ_DIR$\..\obj\assert.o + $PROJ_DIR$\..\obj\hooks.o + $PROJ_DIR$\..\obj\com.o + $PROJ_DIR$\..\obj\cpu.pbi + $PROJ_DIR$\..\obj\flash.pbi + $TOOLKIT_DIR$\inc\c\xmtx.h + $PROJ_DIR$\..\obj\unicode.pbi + $PROJ_DIR$\..\obj\filesys.o + $TOOLKIT_DIR$\inc\c\stdlib.h + $PROJ_DIR$\..\..\..\..\Source\fatfs\src\ff.h + $PROJ_DIR$\..\obj\unicode.lst + $PROJ_DIR$\..\..\..\..\Source\filesys.h + $PROJ_DIR$\..\obj\led.lst + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\psock.c + $PROJ_DIR$\..\obj\filesys.lst + $PROJ_DIR$\..\obj\led.pbi + $PROJ_DIR$\..\obj\unicode.o + $PROJ_DIR$\..\..\..\..\Source\filesys.c + $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\ccsbcs.c + $TOOLKIT_DIR$\inc\c\ctype.h + $TOOLKIT_DIR$\inc\c\xtls.h + $TOOLKIT_DIR$\inc\c\DLib_Config_Normal.h + $TOOLKIT_DIR$\inc\c\xlocale_c.h + $TOOLKIT_DIR$\inc\c\xencoding_limits.h + $PROJ_DIR$\..\obj\sysctl.pbi + $PROJ_DIR$\..\obj\uartlib.pbi + $PROJ_DIR$\..\obj\uart.o + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\psock.h + $PROJ_DIR$\..\obj\hooks.pbi + $PROJ_DIR$\..\obj\uart.lst + $PROJ_DIR$\..\obj\cop.lst + $PROJ_DIR$\..\obj\com.lst + $TOOLKIT_DIR$\lib\dl7M_tln.a + $TOOLKIT_DIR$\lib\rt7M_tl.a + $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\unicode.c + $PROJ_DIR$\..\obj\ff.pbi + $PROJ_DIR$\..\obj\uartlib.lst + $PROJ_DIR$\..\obj\ff.lst + $PROJ_DIR$\..\obj\cpulib.lst + $PROJ_DIR$\..\obj\openbtl_ek_lm3s6965.map + $PROJ_DIR$\..\obj\nvm.lst + $TOOLKIT_DIR$\inc\c\stdarg.h + $PROJ_DIR$\..\obj\cpulib.o + $PROJ_DIR$\..\obj\main.pbi + $PROJ_DIR$\..\obj\mmc.o + $PROJ_DIR$\..\obj\flashlib.lst + $PROJ_DIR$\..\obj\filesys.pbi + $PROJ_DIR$\..\obj\mmc.pbi + $PROJ_DIR$\..\obj\vectors.pbi + $PROJ_DIR$\..\obj\timer.o + $PROJ_DIR$\..\obj\flash.o + $PROJ_DIR$\..\obj\flash.lst + $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\memory.x + $PROJ_DIR$\..\obj\backdoor.lst + $PROJ_DIR$\..\obj\cpu.lst + $TOOLKIT_DIR$\inc\c\ysizet.h $TOOLKIT_DIR$\inc\c\xlocaleuse.h $PROJ_DIR$\..\obj\lm3s6965.pbd $PROJ_DIR$\..\obj\cstart.o @@ -264,7 +264,7 @@ ILINK - 139 80 + 133 173 @@ -273,21 +273,21 @@ ICCARM - 81 125 + 174 76 BICOMP - 117 + 68 ICCARM - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 BICOMP - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 @@ -296,21 +296,21 @@ ICCARM - 48 57 + 144 150 BICOMP - 52 + 140 ICCARM - 12 13 165 217 + 12 13 103 217 BICOMP - 12 13 165 217 + 12 13 103 217 @@ -319,21 +319,21 @@ ICCARM - 98 91 + 51 183 BICOMP - 95 + 46 ICCARM - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 BICOMP - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 @@ -342,21 +342,21 @@ ICCARM - 71 69 + 163 160 BICOMP - 118 + 69 ICCARM - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 171 175 162 164 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 109 113 100 102 BICOMP - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 171 175 162 164 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 109 113 100 102 @@ -365,21 +365,21 @@ ICCARM - 78 105 + 171 56 BICOMP - 76 + 169 ICCARM - 12 13 165 10 82 135 133 116 63 134 65 124 + 12 13 103 10 175 129 84 67 155 128 157 75 BICOMP - 12 13 165 10 82 135 133 116 63 134 65 124 + 12 13 103 10 175 129 84 67 155 128 157 75 @@ -398,11 +398,11 @@ ICCARM - 19 27 181 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 40 20 205 135 133 116 63 134 65 124 146 206 + 18 26 119 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 40 19 205 129 84 67 155 128 157 75 189 206 BICOMP - 19 27 181 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 40 20 205 135 133 116 63 134 65 124 146 206 + 18 26 119 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 40 19 205 129 84 67 155 128 157 75 189 206 @@ -421,11 +421,11 @@ ICCARM - 22 19 27 181 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 40 205 135 133 116 63 134 65 124 146 206 + 21 18 26 119 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 40 205 129 84 67 155 128 157 75 189 206 BICOMP - 22 19 27 181 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 40 205 135 133 116 63 134 65 124 146 206 + 21 18 26 119 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 40 205 129 84 67 155 128 157 75 189 206 @@ -444,11 +444,11 @@ ICCARM - 14 178 24 + 14 116 23 BICOMP - 14 178 24 + 14 116 23 @@ -467,11 +467,11 @@ ICCARM - 19 27 181 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 40 26 + 18 26 119 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 40 25 BICOMP - 19 27 181 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 40 26 + 18 26 119 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 40 25 @@ -480,7 +480,7 @@ ICCARM - 122 140 + 73 134 BICOMP @@ -490,11 +490,11 @@ ICCARM - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 BICOMP - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 @@ -503,7 +503,7 @@ ICCARM - 144 199 + 187 199 BICOMP @@ -513,11 +513,11 @@ ICCARM - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 BICOMP - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 @@ -526,7 +526,7 @@ ICCARM - 96 196 + 53 196 BICOMP @@ -536,11 +536,11 @@ ICCARM - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 BICOMP - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 @@ -549,7 +549,7 @@ ICCARM - 73 142 + 165 136 BICOMP @@ -559,11 +559,11 @@ ICCARM - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 9 40 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 9 40 BICOMP - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 9 40 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 9 40 @@ -572,7 +572,7 @@ ICCARM - 72 200 + 164 200 BICOMP @@ -582,11 +582,11 @@ ICCARM - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 BICOMP - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 @@ -595,21 +595,21 @@ ICCARM - 115 101 + 66 48 BICOMP - 100 + 47 ICCARM - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 205 135 133 116 63 134 65 124 146 206 60 132 62 46 50 190 64 131 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 205 129 84 67 155 128 157 75 189 206 153 83 154 139 142 190 156 82 BICOMP - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 205 135 133 116 63 134 65 124 146 206 60 132 62 46 50 190 64 131 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 205 129 84 67 155 128 157 75 189 206 153 83 154 139 142 190 156 82 @@ -628,11 +628,11 @@ ICCARM - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 180 19 27 181 40 22 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 118 18 26 119 40 21 BICOMP - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 180 19 27 181 40 22 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 118 18 26 119 40 21 @@ -641,7 +641,7 @@ ICCARM - 119 198 + 70 198 BICOMP @@ -651,80 +651,11 @@ ICCARM - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 BICOMP - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 - - - - - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\psock.c - - - ICCARM - 228 245 - - - BICOMP - 233 - - - - - ICCARM - 237 135 133 116 63 134 65 124 146 238 205 206 27 181 33 7 29 182 41 188 37 4 0 6 31 1 35 43 107 61 17 16 15 19 - - - BICOMP - 237 135 133 116 63 134 65 124 146 238 205 206 27 181 33 7 29 182 41 188 37 4 0 6 31 1 35 43 107 61 17 16 15 19 - - - - - $PROJ_DIR$\..\..\..\..\Source\filesys.c - - - ICCARM - 55 51 - - - BICOMP - 88 - - - - - ICCARM - 33 7 29 113 41 188 37 4 0 6 31 47 53 114 193 35 43 - - - BICOMP - 33 7 29 113 41 188 37 4 0 6 31 47 53 114 193 35 43 - - - - - $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\unicode.c - - - ICCARM - 48 57 - - - BICOMP - 52 - - - - - ICCARM - 53 114 165 59 - - - BICOMP - 53 114 165 59 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 @@ -733,17 +664,17 @@ BICOMP - 130 + 81 ICCARM - 111 114 + 63 65 BICOMP - 111 114 + 63 65 @@ -762,11 +693,11 @@ ICCARM - 33 7 29 182 41 188 37 4 0 6 31 1 35 43 180 19 27 181 107 22 + 32 7 28 120 41 126 36 4 0 6 30 38 34 43 118 18 26 119 58 21 BICOMP - 33 7 29 182 41 188 37 4 0 6 31 1 35 43 180 19 27 181 107 22 + 32 7 28 120 41 126 36 4 0 6 30 38 34 43 118 18 26 119 58 21 @@ -785,11 +716,11 @@ ICCARM - 108 27 181 33 7 29 182 41 188 37 4 0 6 31 1 35 43 107 61 17 16 15 19 205 135 133 116 63 134 65 124 146 206 + 59 26 119 32 7 28 120 41 126 36 4 0 6 30 38 34 43 58 161 15 16 1 18 205 129 84 67 155 128 157 75 189 206 BICOMP - 108 27 181 33 7 29 182 41 188 37 4 0 6 31 1 35 43 107 61 17 16 15 19 205 135 133 116 63 134 65 124 146 206 + 59 26 119 32 7 28 120 41 126 36 4 0 6 30 38 34 43 58 161 15 16 1 18 205 129 84 67 155 128 157 75 189 206 @@ -798,21 +729,21 @@ ICCARM - 78 105 + 171 56 BICOMP - 76 + 169 ICCARM - 53 114 165 111 82 135 133 116 63 134 65 124 + 143 65 103 63 175 129 84 67 155 128 157 75 BICOMP - 53 114 165 111 82 135 133 116 63 134 65 124 + 143 65 103 63 175 129 84 67 155 128 157 75 @@ -821,40 +752,21 @@ ICCARM - 54 138 + 146 132 BICOMP - 56 + 149 ICCARM - 33 7 29 113 41 188 37 4 0 6 31 1 53 114 165 35 43 171 175 162 155 158 + 32 7 28 64 41 126 36 4 0 6 30 38 143 65 103 34 43 109 113 100 93 96 BICOMP - 33 7 29 113 41 188 37 4 0 6 31 1 53 114 165 35 43 171 175 162 155 158 - - - - - $PROJ_DIR$\..\bin\openbtl_ek_lm3s6965.out - - - ILINK - 80 - - - OBJCOPY - 120 - - - - - ILINK - 85 140 199 196 218 142 200 126 83 192 243 105 101 92 207 208 141 209 195 86 241 249 125 103 210 91 69 211 248 246 247 225 57 94 198 136 75 99 74 + 32 7 28 64 41 126 36 4 0 6 30 38 143 65 103 34 43 109 113 100 93 96 @@ -863,7 +775,7 @@ ICCARM - 79 83 + 172 176 BICOMP @@ -873,11 +785,11 @@ ICCARM - 149 + 87 BICOMP - 149 + 87 @@ -896,11 +808,11 @@ ICCARM - 167 170 171 175 147 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 148 162 157 + 105 108 109 113 85 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 86 100 95 BICOMP - 167 170 171 175 147 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 148 162 157 + 105 108 109 113 85 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 86 100 95 @@ -909,7 +821,7 @@ ICCARM - 87 207 + 179 207 BICOMP @@ -919,11 +831,11 @@ ICCARM - 168 170 174 175 147 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 153 157 + 106 108 112 113 85 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 91 95 BICOMP - 168 170 174 175 147 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 153 157 + 106 108 112 113 85 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 91 95 @@ -932,7 +844,7 @@ ICCARM - 129 208 + 80 208 BICOMP @@ -942,11 +854,11 @@ ICCARM - 169 170 171 174 175 147 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 155 158 157 + 107 108 109 112 113 85 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 93 96 95 BICOMP - 169 170 171 174 175 147 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 155 158 157 + 107 108 109 112 113 85 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 93 96 95 @@ -955,7 +867,7 @@ ICCARM - 127 209 + 78 209 BICOMP @@ -965,11 +877,11 @@ ICCARM - 170 172 175 149 147 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 157 + 108 110 113 87 85 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 95 BICOMP - 170 172 175 149 147 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 157 + 108 110 113 87 85 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 95 @@ -978,21 +890,21 @@ ICCARM - 112 103 + 62 54 BICOMP - 104 + 55 ICCARM - 170 171 173 175 147 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 157 160 162 + 108 109 111 113 85 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 95 98 100 BICOMP - 170 171 173 175 147 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 157 160 162 + 108 109 111 113 85 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 95 98 100 @@ -1001,21 +913,21 @@ ICCARM - 128 210 + 79 210 BICOMP - 66 + 158 ICCARM - 170 172 174 175 149 147 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 157 162 + 108 110 112 113 87 85 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 95 100 BICOMP - 170 172 174 175 149 147 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 157 162 + 108 110 112 113 87 85 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 95 100 @@ -1024,21 +936,21 @@ ICCARM - 77 211 + 170 211 BICOMP - 68 + 159 ICCARM - 170 171 174 175 176 147 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 157 164 162 + 108 109 112 113 114 85 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 95 102 100 BICOMP - 170 171 174 175 176 147 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 157 164 162 + 108 109 112 113 114 85 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 95 102 100 @@ -1047,21 +959,21 @@ ICCARM - 137 86 + 131 178 BICOMP - 89 + 181 ICCARM - 171 175 155 158 160 162 10 13 33 7 29 182 41 188 37 4 0 6 31 1 12 165 35 43 + 109 113 93 96 98 100 10 13 32 7 28 120 41 126 36 4 0 6 30 38 12 103 34 43 BICOMP - 171 175 155 158 160 162 10 13 33 7 29 182 41 188 37 4 0 6 31 1 12 165 35 43 + 109 113 93 96 98 100 10 13 32 7 28 120 41 126 36 4 0 6 30 38 12 103 34 43 @@ -1080,11 +992,11 @@ ICCARM - 178 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 + 116 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 BICOMP - 178 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 + 116 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 @@ -1103,11 +1015,11 @@ ICCARM - 19 27 181 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 40 22 171 175 167 162 155 158 148 153 + 18 26 119 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 40 21 109 113 105 100 93 96 86 91 BICOMP - 19 27 181 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 40 22 171 175 167 162 155 158 148 153 + 18 26 119 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 40 21 109 113 105 100 93 96 86 91 @@ -1116,17 +1028,21 @@ ICCARM - 123 141 + 74 135 BICOMP - 70 + 162 ICCARM - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 171 175 164 162 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 109 113 102 100 + + + BICOMP + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 109 113 102 100 @@ -1135,21 +1051,21 @@ ICCARM - 93 195 + 44 195 BICOMP - 84 + 177 ICCARM - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 170 171 172 174 175 162 155 158 164 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 108 109 110 112 113 100 93 96 102 BICOMP - 33 7 29 182 41 188 37 4 0 6 31 1 35 43 170 171 172 174 175 162 155 158 164 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 108 109 110 112 113 100 93 96 102 @@ -1158,21 +1074,21 @@ ICCARM - 97 94 + 50 45 BICOMP - 90 + 182 ICCARM - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 BICOMP - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 @@ -1190,21 +1106,21 @@ ICCARM - 145 126 + 188 77 BICOMP - 44 + 137 ICCARM - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 BICOMP - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 @@ -1213,21 +1129,109 @@ ICCARM - 143 92 + 185 184 BICOMP - 45 + 138 ICCARM - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 171 175 153 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 109 113 91 BICOMP - 33 7 29 182 41 188 37 4 0 6 31 1 12 13 165 35 43 171 175 153 + 32 7 28 120 41 126 36 4 0 6 30 38 12 13 103 34 43 109 113 91 + + + + + $PROJ_DIR$\..\bin\openbtl_ek_lm3s6965.out + + + ILINK + 173 + + + OBJCOPY + 71 + + + + + ILINK + 186 134 199 196 218 136 200 77 176 192 243 56 48 184 207 208 135 209 195 178 241 249 76 54 210 183 160 211 248 246 247 225 150 45 198 130 167 52 166 + + + + + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\psock.c + + + ICCARM + 228 245 + + + BICOMP + 233 + + + + + ICCARM + 237 129 84 67 155 128 157 75 189 238 205 206 26 119 32 7 28 120 41 126 36 4 0 6 30 38 34 43 58 161 15 16 1 18 + + + BICOMP + 237 129 84 67 155 128 157 75 189 238 205 206 26 119 32 7 28 120 41 126 36 4 0 6 30 38 34 43 58 161 15 16 1 18 + + + + + $PROJ_DIR$\..\..\..\..\Source\filesys.c + + + ICCARM + 148 141 + + + BICOMP + 180 + + + + + ICCARM + 32 7 28 64 41 126 36 4 0 6 30 145 143 65 193 34 43 + + + BICOMP + 32 7 28 64 41 126 36 4 0 6 30 145 143 65 193 34 43 + + + + + $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\unicode.c + + + ICCARM + 144 150 + + + BICOMP + 140 + + + + + ICCARM + 143 65 103 152 + + + BICOMP + 143 65 103 152 @@ -1246,11 +1250,11 @@ ICCARM - 19 27 181 108 61 17 16 15 22 33 7 29 182 41 188 37 4 0 6 31 1 35 43 171 175 167 162 155 158 148 + 18 26 119 59 161 15 16 1 21 32 7 28 120 41 126 36 4 0 6 30 38 34 43 109 113 105 100 93 96 86 BICOMP - 19 27 181 108 61 17 16 15 22 33 7 29 182 41 188 37 4 0 6 31 1 35 43 171 175 167 162 155 158 148 + 18 26 119 59 161 15 16 1 21 32 7 28 120 41 126 36 4 0 6 30 38 34 43 109 113 105 100 93 96 86 diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.dbgdt b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.dbgdt index e07692bf..9d09fe88 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.dbgdt +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.dbgdt @@ -19,7 +19,7 @@ - 211272727 + 146272727 @@ -39,7 +39,7 @@ - + TabID-4214-26312 @@ -51,20 +51,20 @@ - 0TabID-14429-10902Debug LogDebug-Log0TabID-29443-18340DisassemblyDisassembly0 + 0TabID-14429-10902Debug LogDebug-Log0TabID-29443-18340DisassemblyDisassembly0 - TextEditor$WS_DIR$\..\blt_conf.h0000010971957195TextEditor$WS_DIR$\..\main.c0000040303830381TextEditor$WS_DIR$\..\..\..\..\Source\backdoor.c000001330883088TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.c000008662036203TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM3_LM3S\cpu.c000002425562556TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.h00000023462373TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM3_LM3S\types.h000007267626840100000010000001 + TextEditor$WS_DIR$\..\blt_conf.h000007300TextEditor$WS_DIR$\..\main.c0000040303830381TextEditor$WS_DIR$\..\..\..\..\Source\backdoor.c000002429783026TextEditor$WS_DIR$\..\lib\uip\netdev.c000005838023802TextEditor$WS_DIR$\..\..\..\..\Source\net.c0000092450045000100000010000001 - iaridepm.enu1debuggergui.enu1-2-2741285-2-2240243125000241071149479737103-2-2741198-2-2200200104167198413104167737103-2-21981922-2-219242001002083198413104167198413 + iaridepm.enu1debuggergui.enu1-2-2597237-2-2200200125000241546149375723430-2-2597165-2-2167164104375198068104375723430-2-21621602-2-216041641002500198068104375198068 diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.dni b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.dni index 7e6c5bcd..a10c4bdb 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.dni +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.dni @@ -9,7 +9,7 @@ TriggerName=main LimitSize=0 ByteLimit=50 [DebugChecksum] -Checksum=1777559187 +Checksum=219067476 [Exceptions] StopOnUncaught=_ 0 StopOnThrow=_ 0 diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.wsdt b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.wsdt index 4b5dcef4..7f61dd91 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.wsdt +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.wsdt @@ -12,12 +12,12 @@ - 410272727 + 326272727 100Find-All-References2011553087730055278946300FileFunctionLine200700100300BuildFind-in-FilesFind-All-References664941138100Build664941138 - + TabID-31649-22318 @@ -25,24 +25,24 @@ Workspace - lm3s6965lm3s6965/Bootlm3s6965/Outputlm3s6965/Sourcelm3s6965/Source/ARMCM3_LM3Slm3s6965/Source/fatfs + lm3s6965lm3s6965/Bootlm3s6965/Boot/liblm3s6965/Boot/lib/uiplm3s6965/Outputlm3s6965/Sourcelm3s6965/Source/ARMCM3_LM3Slm3s6965/Source/fatfs - 0TabID-23631-11730BuildBuildTabID-25094-12726Ambiguous DefinitionsSelect-Ambiguous-Definitions0 + 0TabID-23631-11730BuildBuildTabID-25094-12726Ambiguous DefinitionsSelect-Ambiguous-Definitions0 - TextEditor$WS_DIR$\..\blt_conf.h0000010971957195TextEditor$WS_DIR$\..\main.c0000040303830381TextEditor$WS_DIR$\..\..\..\..\Source\backdoor.c000001330883088TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.c000008662036203TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM3_LM3S\cpu.c000002425562556TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.h00000023462373TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM3_LM3S\types.h000007267626840100000010000001 + TextEditor$WS_DIR$\..\blt_conf.h000007300TextEditor$WS_DIR$\..\main.c0000040303830381TextEditor$WS_DIR$\..\..\..\..\Source\backdoor.c000002429783026TextEditor$WS_DIR$\..\lib\uip\netdev.c000005838023802TextEditor$WS_DIR$\..\..\..\..\Source\net.c0000092450045000100000010000001 - iaridepm.enu1-2-2548501-2-237235319375035019826197954563500049443096-2546258238134375236111261979413690 + iaridepm.enu1-2-2446417-2-23102901937503502422618755410630007-2444215195134375235507261875409420 diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/bin/demoprog_ek_lm3s6965.out b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/bin/demoprog_ek_lm3s6965.out index 3e374e9e43dc377048cae9bd9fdaf901f4a666ab..4ee3ad78fc5838ba1fb9c424afbe85510e3df43b 100644 GIT binary patch literal 186480 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%0AR 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 bqAE|k21mA$KTZLTaMRHK2D319Na6k;$={w5 delta 17378 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 2 - 749031192 + 4184568424 Debug - $PROJ_DIR$\..\lib\inc\hw_comp.h $PROJ_DIR$\..\lib\inc\hw_epi.h $PROJ_DIR$\..\lib\inc\hw_ethernet.h - $PROJ_DIR$\..\time.h - $PROJ_DIR$\..\vectors.c - $PROJ_DIR$\..\obj\adc.pbi - $PROJ_DIR$\..\obj\watchdog.o - $PROJ_DIR$\..\obj\usb.o - $TOOLKIT_DIR$\lib\shb_l.a - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c - $PROJ_DIR$\..\obj\led.o - $PROJ_DIR$\..\timer.c - $PROJ_DIR$\..\obj\boot.o - $PROJ_DIR$\..\bin\demoprog_olimex_stm32p103.out - $PROJ_DIR$\..\bin\demoprog_olimex_stm32p103.srec - $PROJ_DIR$\..\obj\time.pbi - $PROJ_DIR$\..\obj\i2s.lst - $PROJ_DIR$\..\obj\irq.o - $PROJ_DIR$\..\obj\irq.pbi - $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c - $PROJ_DIR$\..\obj\time.o - $PROJ_DIR$\..\obj\cpu.lst - $PROJ_DIR$\..\obj\lm3s6965.pbd - $PROJ_DIR$\..\obj\main.o - $PROJ_DIR$\..\obj\comp.lst - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c - $PROJ_DIR$\..\obj\interrupt.lst - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c - $PROJ_DIR$\..\obj\main.pbi - $PROJ_DIR$\..\obj\led.pbi - $PROJ_DIR$\..\obj\stm32f10x_adc.o - $PROJ_DIR$\..\obj\misc.pbi - $PROJ_DIR$\..\obj\led.lst - $PROJ_DIR$\..\obj\system_stm32f10x.pbi - $PROJ_DIR$\..\obj\stm32f10x_wwdg.pbi - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c - $PROJ_DIR$\..\obj\stm32f10x_rcc.pbi - $PROJ_DIR$\..\obj\epi.o - $PROJ_DIR$\..\obj\stm32f10x_flash.pbi - $PROJ_DIR$\..\obj\timer.pbi - $PROJ_DIR$\..\obj\boot.lst - $PROJ_DIR$\..\obj\stm32f10x_fsmc.pbi - $PROJ_DIR$\..\obj\ssi.lst - $PROJ_DIR$\..\obj\stm32f10x_exti.pbi - $PROJ_DIR$\..\obj\stm32f10x_gpio.pbi - $PROJ_DIR$\..\obj\timer.lst - $PROJ_DIR$\..\obj\main.lst - $PROJ_DIR$\..\obj\stm32f10x_rtc.pbi - $PROJ_DIR$\..\obj\stm32f10x_usart.pbi - $TOOLKIT_DIR$\lib\m7M_tl.a - $PROJ_DIR$\..\obj\vectors.pbi - $PROJ_DIR$\..\obj\vectors.lst - $TOOLKIT_DIR$\lib\dl7M_tln.a - $PROJ_DIR$\..\obj\adc.lst - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c - $PROJ_DIR$\..\obj\cpu.o - $PROJ_DIR$\..\obj\usb.lst - $PROJ_DIR$\..\obj\udma.lst - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c - $PROJ_DIR$\..\obj\pwm.lst $PROJ_DIR$\..\lib\inc\hw_flash.h $PROJ_DIR$\..\lib\inc\hw_gpio.h $PROJ_DIR$\..\lib\inc\hw_hibernate.h @@ -87,6 +26,24 @@ $PROJ_DIR$\..\lib\inc\hw_udma.h $PROJ_DIR$\..\lib\inc\hw_usb.h $PROJ_DIR$\..\lib\inc\hw_watchdog.h + $PROJ_DIR$\..\lib\uip\clock-arch.c + $PROJ_DIR$\..\lib\uip\clock-arch.h + $PROJ_DIR$\..\lib\uip\netdev.c + $PROJ_DIR$\..\lib\uip\netdev.h + $PROJ_DIR$\..\lib\uip\uip-conf.h + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\clock.h + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip-fw.c + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip-fw.h + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip.c + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip.h + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arch.h + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arp.c + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arp.h + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_timer.c + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_timer.h + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uiplib.c + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uiplib.h + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uipopt.h $PROJ_DIR$\..\boot.c $PROJ_DIR$\..\boot.h $PROJ_DIR$\..\cstart.s @@ -96,9 +53,100 @@ $PROJ_DIR$\..\led.c $PROJ_DIR$\..\led.h $PROJ_DIR$\..\main.c + $PROJ_DIR$\..\net.c + $PROJ_DIR$\..\net.h $PROJ_DIR$\..\time.c - $PROJ_DIR$\..\lib\driverlib\cpu.c + $PROJ_DIR$\..\time.h + $PROJ_DIR$\..\vectors.c + $PROJ_DIR$\..\obj\misc.o + $PROJ_DIR$\..\obj\flash.lst + $PROJ_DIR$\..\obj\stm32f10x_dbgmcu.pbi + $PROJ_DIR$\..\obj\stm32f10x_cec.pbi + $PROJ_DIR$\..\obj\stm32f10x_cec.o + $PROJ_DIR$\..\obj\stm32f10x_i2c.pbi + $TOOLKIT_DIR$\lib\rt7M_tl.a + $PROJ_DIR$\..\obj\stm32f10x_gpio.o + $PROJ_DIR$\..\obj\stm32f10x_i2c.o + $PROJ_DIR$\..\obj\stm32f10x_iwdg.o + $PROJ_DIR$\..\obj\stm32f10x_pwr.o + $PROJ_DIR$\..\obj\stm32f10x_rcc.o + $PROJ_DIR$\..\obj\stm32f10x_rtc.o + $PROJ_DIR$\..\obj\stm32f10x_sdio.o + $PROJ_DIR$\..\obj\stm32f10x_spi.o + $PROJ_DIR$\..\obj\stm32f10x_tim.o + $PROJ_DIR$\..\obj\stm32f10x_usart.o + $PROJ_DIR$\..\obj\stm32f10x_wwdg.o + $PROJ_DIR$\..\obj\system_stm32f10x.o + $PROJ_DIR$\..\obj\core_cm3.pbi + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c + $PROJ_DIR$\..\obj\stm32f10x_tim.pbi + $PROJ_DIR$\..\obj\stm32f10x_spi.pbi + $PROJ_DIR$\..\obj\epi.pbi + $PROJ_DIR$\..\obj\ethernet.pbi + $PROJ_DIR$\..\obj\flash.pbi + $PROJ_DIR$\..\obj\gpio.pbi + $PROJ_DIR$\..\obj\hibernate.pbi + $PROJ_DIR$\..\obj\i2c.pbi + $PROJ_DIR$\..\obj\i2s.pbi + $PROJ_DIR$\..\obj\interrupt.pbi + $PROJ_DIR$\..\obj\mpu.pbi + $PROJ_DIR$\..\obj\pwm.pbi + $TOOLKIT_DIR$\inc\c\ysizet.h + $TOOLKIT_DIR$\inc\c\DLib_Product_string.h + $TOOLKIT_DIR$\inc\c\DLib_Threads.h + $TOOLKIT_DIR$\inc\c\DLib_Defaults.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\misc.c + $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c + $TOOLKIT_DIR$\inc\c\xencoding_limits.h + $TOOLKIT_DIR$\inc\c\DLib_Config_Normal.h + $TOOLKIT_DIR$\inc\c\DLib_Product.h + $TOOLKIT_DIR$\inc\c\string.h + $TOOLKIT_DIR$\inc\c\ycheck.h + $TOOLKIT_DIR$\inc\c\yvals.h + $PROJ_DIR$\..\obj\uiplib.pbi + $PROJ_DIR$\..\obj\uip_timer.pbi + $PROJ_DIR$\..\obj\uip_arp.pbi + $PROJ_DIR$\..\obj\uip-fw.pbi + $PROJ_DIR$\..\obj\uip.pbi + $PROJ_DIR$\..\obj\uiplib.o + $PROJ_DIR$\..\obj\uip_arp.o + $PROJ_DIR$\..\obj\uip_timer.o + $PROJ_DIR$\..\obj\uip-fw.o + $PROJ_DIR$\..\obj\uip.o + $PROJ_DIR$\..\obj\netdev.pbi + $PROJ_DIR$\..\obj\netdev.o + $PROJ_DIR$\..\obj\clock-arch.pbi + $PROJ_DIR$\..\obj\clock-arch.o + $PROJ_DIR$\..\obj\net.lst + $PROJ_DIR$\..\obj\netdev.lst + $PROJ_DIR$\..\obj\net.o + $PROJ_DIR$\..\obj\uip_timer.lst + $PROJ_DIR$\..\obj\clock-arch.lst + $PROJ_DIR$\..\obj\uip-fw.lst + $PROJ_DIR$\..\obj\uip.lst + $PROJ_DIR$\..\obj\net.pbi + $PROJ_DIR$\..\obj\uip_arp.lst + $PROJ_DIR$\..\obj\uiplib.lst + $PROJ_DIR$\..\obj\stm32f10x_exti.o + $PROJ_DIR$\..\obj\irq.lst + $PROJ_DIR$\..\obj\sysctl.lst + $PROJ_DIR$\..\obj\uart.lst + $PROJ_DIR$\..\obj\qei.lst + $PROJ_DIR$\..\obj\demoprog_ek_lm3s6965.map $PROJ_DIR$\..\lib\driverlib\comp.c + $PROJ_DIR$\..\lib\driverlib\cpu.c $PROJ_DIR$\..\lib\driverlib\adc.h $PROJ_DIR$\..\lib\driverlib\adc.c $PROJ_DIR$\..\lib\driverlib\comp.h @@ -143,14 +191,7 @@ $PROJ_DIR$\..\lib\driverlib\watchdog.c $PROJ_DIR$\..\lib\driverlib\watchdog.h $PROJ_DIR$\..\lib\inc\hw_adc.h - $PROJ_DIR$\..\obj\stm32f10x_dma.pbi - $PROJ_DIR$\..\obj\stm32f10x_flash.o - $PROJ_DIR$\..\obj\irq.lst - $PROJ_DIR$\..\obj\stm32f10x_exti.o - $PROJ_DIR$\..\obj\sysctl.lst - $PROJ_DIR$\..\obj\uart.lst - $PROJ_DIR$\..\obj\qei.lst - $PROJ_DIR$\..\obj\demoprog_ek_lm3s6965.map + $PROJ_DIR$\..\lib\inc\hw_comp.h $PROJ_DIR$\..\obj\gpio.lst $PROJ_DIR$\..\bin\demoprog_ek_lm3s6965.srec $PROJ_DIR$\..\obj\core_cm3.o @@ -205,264 +246,263 @@ $PROJ_DIR$\..\obj\cstart.o $PROJ_DIR$\..\obj\stm32f10x_crc.pbi $PROJ_DIR$\..\obj\stm32f10x_can.o + $PROJ_DIR$\..\obj\led.lst + $PROJ_DIR$\..\obj\watchdog.o + $PROJ_DIR$\..\obj\adc.pbi + $PROJ_DIR$\..\obj\usb.o + $PROJ_DIR$\..\obj\led.o + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c + $PROJ_DIR$\..\bin\demoprog_olimex_stm32p103.srec + $PROJ_DIR$\..\obj\boot.o + $TOOLKIT_DIR$\lib\shb_l.a + $PROJ_DIR$\..\bin\demoprog_olimex_stm32p103.out + $PROJ_DIR$\..\timer.c + $PROJ_DIR$\..\obj\time.pbi + $PROJ_DIR$\..\obj\i2s.lst + $PROJ_DIR$\..\obj\irq.o + $PROJ_DIR$\..\obj\irq.pbi + $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c + $PROJ_DIR$\..\obj\time.o + $PROJ_DIR$\..\obj\cpu.lst + $PROJ_DIR$\..\obj\lm3s6965.pbd + $PROJ_DIR$\..\obj\main.o + $PROJ_DIR$\..\obj\comp.lst + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c + $PROJ_DIR$\..\obj\interrupt.lst + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c + $PROJ_DIR$\..\obj\main.pbi + $PROJ_DIR$\..\obj\led.pbi + $PROJ_DIR$\..\obj\stm32f10x_adc.o + $PROJ_DIR$\..\obj\misc.pbi + $PROJ_DIR$\..\obj\system_stm32f10x.pbi + $PROJ_DIR$\..\obj\stm32f10x_wwdg.pbi + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c + $PROJ_DIR$\..\obj\stm32f10x_rcc.pbi + $PROJ_DIR$\..\obj\epi.o + $PROJ_DIR$\..\obj\stm32f10x_flash.pbi + $PROJ_DIR$\..\obj\timer.pbi + $PROJ_DIR$\..\obj\boot.lst + $PROJ_DIR$\..\obj\stm32f10x_fsmc.pbi + $PROJ_DIR$\..\obj\ssi.lst + $PROJ_DIR$\..\obj\stm32f10x_exti.pbi + $PROJ_DIR$\..\obj\stm32f10x_gpio.pbi + $PROJ_DIR$\..\obj\timer.lst + $PROJ_DIR$\..\obj\main.lst + $PROJ_DIR$\..\obj\stm32f10x_rtc.pbi + $PROJ_DIR$\..\obj\stm32f10x_usart.pbi + $TOOLKIT_DIR$\lib\m7M_tl.a + $PROJ_DIR$\..\obj\vectors.pbi + $PROJ_DIR$\..\obj\vectors.lst + $TOOLKIT_DIR$\lib\dl7M_tln.a + $PROJ_DIR$\..\obj\adc.lst + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c + $PROJ_DIR$\..\obj\cpu.o + $PROJ_DIR$\..\obj\usb.lst + $PROJ_DIR$\..\obj\udma.lst + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c + $PROJ_DIR$\..\obj\pwm.lst + $PROJ_DIR$\..\obj\stm32f10x_dma.pbi + $PROJ_DIR$\..\obj\stm32f10x_flash.o $PROJ_DIR$\..\obj\stm32f10x_can.pbi $PROJ_DIR$\..\obj\i2c.lst $PROJ_DIR$\..\obj\stm32f10x_bkp.o $PROJ_DIR$\..\obj\stm32f10x_adc.pbi $PROJ_DIR$\..\obj\stm32f10x_dac.pbi $PROJ_DIR$\..\obj\stm32f10x_bkp.pbi - $PROJ_DIR$\..\obj\misc.o - $PROJ_DIR$\..\obj\flash.lst - $PROJ_DIR$\..\obj\stm32f10x_dbgmcu.pbi - $PROJ_DIR$\..\obj\stm32f10x_cec.pbi - $PROJ_DIR$\..\obj\stm32f10x_cec.o - $PROJ_DIR$\..\obj\stm32f10x_i2c.pbi - $TOOLKIT_DIR$\lib\rt7M_tl.a - $PROJ_DIR$\..\obj\stm32f10x_gpio.o - $PROJ_DIR$\..\obj\stm32f10x_i2c.o - $PROJ_DIR$\..\obj\stm32f10x_iwdg.o - $PROJ_DIR$\..\obj\stm32f10x_pwr.o - $PROJ_DIR$\..\obj\stm32f10x_rcc.o - $PROJ_DIR$\..\obj\stm32f10x_rtc.o - $PROJ_DIR$\..\obj\stm32f10x_sdio.o - $PROJ_DIR$\..\obj\stm32f10x_spi.o - $PROJ_DIR$\..\obj\stm32f10x_tim.o - $PROJ_DIR$\..\obj\stm32f10x_usart.o - $PROJ_DIR$\..\obj\stm32f10x_wwdg.o - $PROJ_DIR$\..\obj\system_stm32f10x.o - $PROJ_DIR$\..\obj\core_cm3.pbi - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c - $PROJ_DIR$\..\obj\stm32f10x_tim.pbi - $PROJ_DIR$\..\obj\stm32f10x_spi.pbi - $PROJ_DIR$\..\obj\epi.pbi - $PROJ_DIR$\..\obj\ethernet.pbi - $PROJ_DIR$\..\obj\flash.pbi - $PROJ_DIR$\..\obj\gpio.pbi - $PROJ_DIR$\..\obj\hibernate.pbi - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\misc.c - $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c - $PROJ_DIR$\..\obj\i2c.pbi - $PROJ_DIR$\..\obj\i2s.pbi - $PROJ_DIR$\..\obj\interrupt.pbi - $PROJ_DIR$\..\obj\mpu.pbi - $PROJ_DIR$\..\obj\pwm.pbi [ROOT_NODE] ILINK - 195 144 + 236 138 - $PROJ_DIR$\..\vectors.c + $PROJ_DIR$\..\lib\uip\clock-arch.c ICCARM - 54 173 + 127 122 BICOMP - 53 + 121 ICCARM - 84 178 82 86 88 3 68 69 70 74 76 123 105 129 113 125 + 41 219 39 43 45 50 48 7 8 9 13 15 171 153 177 161 173 21 BICOMP - 84 178 82 86 88 3 68 69 70 74 76 123 105 129 113 125 + 41 219 39 43 45 50 48 7 8 9 13 15 171 153 177 161 173 21 - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c + $PROJ_DIR$\..\lib\uip\netdev.c ICCARM - 219 + 124 120 BICOMP - 239 + 119 + + + ICCARM + 41 219 39 43 45 50 48 7 8 9 13 15 171 153 177 161 173 29 37 24 32 1 149 151 + + + BICOMP + 41 219 39 43 45 50 48 7 8 9 13 15 171 153 177 161 173 29 37 24 32 1 149 151 + + - $PROJ_DIR$\..\timer.c + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip-fw.c ICCARM - 174 + 128 117 BICOMP - 42 + 112 - - - $PROJ_DIR$\..\bin\demoprog_olimex_stm32p103.out - + - OBJCOPY - 14 + ICCARM + 29 37 24 39 48 30 27 106 107 108 100 104 105 103 99 97 98 - + + BICOMP + 29 37 24 39 48 30 27 106 107 108 100 104 105 103 99 97 98 + + - $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip.c ICCARM - 223 + 129 118 BICOMP - 36 + 113 + + + ICCARM + 29 37 24 39 48 30 106 107 108 100 104 105 103 99 97 98 + + + BICOMP + 29 37 24 39 48 30 106 107 108 100 104 105 103 99 97 98 + + - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arp.c ICCARM - 217 + 131 115 BICOMP - 50 + 111 + + + ICCARM + 32 29 37 24 39 48 106 107 108 100 104 105 103 99 97 98 + + + BICOMP + 32 29 37 24 39 48 106 107 108 100 104 105 103 99 97 98 + + - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_timer.c ICCARM - 220 + 126 116 BICOMP - 238 + 110 + + + ICCARM + 25 21 34 + + + BICOMP + 25 21 34 + + - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uiplib.c ICCARM - 218 + 132 114 BICOMP - 177 + 109 - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c - + ICCARM - 221 + 29 37 24 39 48 36 BICOMP - 51 + 29 37 24 39 48 36 - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c - - - ICCARM - 222 - - - BICOMP - 37 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c - - - ICCARM - 198 - - - BICOMP - 199 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c - - - ICCARM - 33 - - - BICOMP - 202 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c - - - ICCARM - 201 - - - BICOMP - 204 - - + $PROJ_DIR$\..\boot.c ICCARM - 43 12 + 278 247 BICOMP - 175 + 216 ICCARM - 84 178 82 86 88 3 68 69 70 74 76 123 105 129 113 125 + 41 219 39 43 45 50 48 7 8 9 13 15 171 153 177 161 173 BICOMP - 84 178 82 86 88 3 68 69 70 74 76 123 105 129 113 125 + 41 219 39 43 45 50 48 7 8 9 13 15 171 153 177 161 173 @@ -471,7 +511,7 @@ AARM - 196 + 237 @@ -480,21 +520,21 @@ ICCARM - 139 17 + 134 253 BICOMP - 18 + 254 ICCARM - 84 178 82 86 88 3 68 69 70 74 76 123 105 129 113 125 + 41 219 39 43 45 50 48 7 8 9 13 15 171 153 177 161 173 BICOMP - 84 178 82 86 88 3 68 69 70 74 76 123 105 129 113 125 + 41 219 39 43 45 50 48 7 8 9 13 15 171 153 177 161 173 @@ -503,21 +543,21 @@ ICCARM - 35 10 + 240 244 BICOMP - 32 + 268 ICCARM - 84 178 82 86 88 3 68 69 70 74 76 123 105 129 113 125 + 41 219 39 43 45 50 48 7 8 9 13 15 171 153 177 161 173 BICOMP - 84 178 82 86 88 3 68 69 70 74 76 123 105 129 113 125 + 41 219 39 43 45 50 48 7 8 9 13 15 171 153 177 161 173 @@ -526,21 +566,44 @@ ICCARM - 49 24 + 284 260 BICOMP - 31 + 267 ICCARM - 84 178 82 86 88 3 68 69 70 74 76 123 105 129 113 125 + 41 219 39 43 45 50 48 7 8 9 13 15 171 153 177 161 173 BICOMP - 84 178 82 86 88 3 68 69 70 74 76 123 105 129 113 125 + 41 219 39 43 45 50 48 7 8 9 13 15 171 153 177 161 173 + + + + + $PROJ_DIR$\..\net.c + + + ICCARM + 123 125 + + + BICOMP + 130 + + + + + ICCARM + 41 219 39 43 45 50 48 7 8 9 13 15 171 153 177 161 173 23 29 37 24 32 + + + BICOMP + 41 219 39 43 45 50 48 7 8 9 13 15 171 153 177 161 173 23 29 37 24 32 @@ -549,306 +612,7 @@ ICCARM - 185 21 - - - BICOMP - 15 - - - - - ICCARM - 84 178 82 86 88 3 68 69 70 74 76 123 105 129 113 125 - - - BICOMP - 84 178 82 86 88 3 68 69 70 74 76 123 105 129 113 125 - - - - - $PROJ_DIR$\..\lib\driverlib\cpu.c - - - ICCARM - 22 58 - - - BICOMP - 193 - - - - - ICCARM - 96 - - - BICOMP - 96 - - - - - $PROJ_DIR$\..\lib\driverlib\comp.c - - - ICCARM - 25 184 - - - BICOMP - 192 - - - - - ICCARM - 0 68 69 76 95 97 113 - - - BICOMP - 0 68 69 76 95 97 113 - - - - - $PROJ_DIR$\..\lib\driverlib\adc.c - - - ICCARM - 56 183 - - - BICOMP - 5 - - - - - ICCARM - 136 68 69 76 93 97 113 - - - BICOMP - 136 68 69 76 93 97 113 - - - - - $PROJ_DIR$\..\lib\driverlib\epi.c - - - ICCARM - 148 40 - - - BICOMP - 240 - - - - - ICCARM - 1 68 69 76 97 99 113 - - - BICOMP - 1 68 69 76 97 99 113 - - - - - $PROJ_DIR$\..\lib\driverlib\ethernet.c - - - ICCARM - 152 180 - - - BICOMP - 241 - - - - - ICCARM - 2 68 69 76 97 101 123 113 - - - BICOMP - 2 68 69 76 97 101 123 113 - - - - - $PROJ_DIR$\..\lib\driverlib\flash.c - - - ICCARM - 206 187 - - - BICOMP - 242 - - - - - ICCARM - 63 68 74 76 97 103 113 - - - BICOMP - 63 68 74 76 97 103 113 - - - - - $PROJ_DIR$\..\lib\driverlib\gpio.c - - - ICCARM - 145 188 - - - BICOMP - 243 - - - - - ICCARM - 64 68 69 74 76 97 105 113 - - - BICOMP - 64 68 69 74 76 97 105 113 - - - - - $PROJ_DIR$\..\lib\driverlib\hibernate.c - - - ICCARM - 194 189 - - - BICOMP - 244 - - - - - ICCARM - 65 68 74 76 97 107 123 113 - - - BICOMP - 65 68 74 76 97 107 123 113 - - - - - $PROJ_DIR$\..\lib\driverlib\i2c.c - - - ICCARM - 200 190 - - - BICOMP - 247 - - - - - ICCARM - 66 68 69 74 76 97 109 123 113 - - - BICOMP - 66 68 69 74 76 97 109 123 113 - - - - - $PROJ_DIR$\..\lib\driverlib\i2s.c - - - ICCARM - 16 191 - - - BICOMP - 248 - - - - - ICCARM - 67 68 69 76 97 111 113 - - - BICOMP - 67 68 69 76 97 111 113 - - - - - $PROJ_DIR$\..\lib\driverlib\interrupt.c - - - ICCARM - 28 151 - - - BICOMP - 249 - - - - - ICCARM - 68 70 76 96 97 113 - - - BICOMP - 68 70 76 96 97 113 - - - - - $PROJ_DIR$\..\lib\driverlib\mpu.c - - - ICCARM - 182 160 - - - BICOMP - 250 - - - - - ICCARM - 68 70 76 97 113 115 - - - BICOMP - 68 70 76 97 113 115 - - - - - $PROJ_DIR$\..\lib\driverlib\pwm.c - - - ICCARM - 62 159 + 226 257 BICOMP @@ -858,233 +622,34 @@ ICCARM - 68 69 71 74 76 97 113 117 + 41 219 39 43 45 50 48 7 8 9 13 15 171 153 177 161 173 BICOMP - 68 69 71 74 76 97 113 117 + 41 219 39 43 45 50 48 7 8 9 13 15 171 153 177 161 173 - $PROJ_DIR$\..\lib\driverlib\qei.c + $PROJ_DIR$\..\vectors.c ICCARM - 143 158 + 289 214 BICOMP - 161 + 288 ICCARM - 68 69 72 76 97 113 119 - - - - - $PROJ_DIR$\..\lib\driverlib\ssi.c - - - ICCARM - 45 157 + 41 219 39 43 45 50 48 7 8 9 13 15 171 153 177 161 173 BICOMP - 162 - - - - - ICCARM - 68 69 73 76 97 113 121 123 - - - BICOMP - 68 69 73 76 97 113 121 123 - - - - - $PROJ_DIR$\..\lib\driverlib\sysctl.c - - - ICCARM - 141 156 - - - BICOMP - 163 - - - - - ICCARM - 68 70 74 76 96 97 113 123 - - - BICOMP - 68 70 74 76 96 97 113 123 - - - - - $PROJ_DIR$\..\lib\driverlib\systick.c - - - ICCARM - 181 153 - - - BICOMP - 164 - - - - - ICCARM - 68 70 76 97 113 125 - - - BICOMP - 68 70 76 97 113 125 - - - - - $PROJ_DIR$\..\lib\driverlib\timer.c - - - ICCARM - 48 174 - - - BICOMP - 42 - - - - - ICCARM - 68 69 75 76 97 113 127 - - - BICOMP - 68 69 75 76 97 113 127 - - - - - $PROJ_DIR$\..\lib\driverlib\uart.c - - - ICCARM - 142 155 - - - BICOMP - 165 - - - - - ICCARM - 68 69 74 76 77 97 113 129 123 - - - BICOMP - 68 69 74 76 77 97 113 129 123 - - - - - $PROJ_DIR$\..\lib\driverlib\udma.c - - - ICCARM - 60 154 - - - BICOMP - 166 - - - - - ICCARM - 76 78 97 113 131 - - - BICOMP - 76 78 97 113 131 - - - - - $PROJ_DIR$\..\lib\driverlib\usb.c - - - ICCARM - 59 7 - - - BICOMP - 167 - - - - - ICCARM - 68 69 76 79 97 113 131 133 - - - BICOMP - 68 69 76 79 97 113 131 133 - - - - - $PROJ_DIR$\..\lib\driverlib\watchdog.c - - - ICCARM - 186 6 - - - BICOMP - 168 - - - - - ICCARM - 68 69 76 80 97 113 135 - - - BICOMP - 68 69 76 80 97 113 135 - - - - - $PROJ_DIR$\..\bin\demoprog_ek_lm3s6965.out - - - ILINK - 144 - - - OBJCOPY - 146 - - - - - ILINK - 169 183 12 184 58 196 40 180 187 188 189 190 191 151 17 10 24 160 159 158 157 156 153 21 174 155 154 7 173 6 8 211 52 55 + 41 219 39 43 45 50 48 7 8 9 13 15 171 153 177 161 173 @@ -1093,11 +658,11 @@ ICCARM - 209 + 56 BICOMP - 208 + 55 @@ -1106,11 +671,11 @@ ICCARM - 149 + 190 BICOMP - 197 + 238 @@ -1119,11 +684,11 @@ ICCARM - 171 + 212 BICOMP - 203 + 304 @@ -1132,11 +697,11 @@ ICCARM - 170 + 211 BICOMP - 207 + 54 @@ -1145,11 +710,11 @@ ICCARM - 172 + 213 BICOMP - 137 + 298 @@ -1158,11 +723,11 @@ ICCARM - 140 + 133 BICOMP - 46 + 281 @@ -1171,11 +736,11 @@ ICCARM - 138 + 299 BICOMP - 41 + 276 @@ -1184,11 +749,11 @@ ICCARM - 150 + 191 BICOMP - 44 + 279 @@ -1197,11 +762,11 @@ ICCARM - 212 + 59 BICOMP - 47 + 282 @@ -1210,11 +775,11 @@ ICCARM - 213 + 60 BICOMP - 210 + 57 @@ -1223,11 +788,11 @@ ICCARM - 214 + 61 BICOMP - 179 + 220 @@ -1236,11 +801,11 @@ ICCARM - 215 + 62 BICOMP - 176 + 217 @@ -1249,11 +814,11 @@ ICCARM - 216 + 63 BICOMP - 39 + 274 @@ -1262,11 +827,11 @@ ICCARM - 205 + 52 BICOMP - 34 + 270 @@ -1275,11 +840,680 @@ ICCARM - 147 + 188 BICOMP - 224 + 71 + + + + + $PROJ_DIR$\..\lib\driverlib\comp.c + + + ICCARM + 261 225 + + + BICOMP + 233 + + + + + ICCARM + 185 7 8 15 143 145 161 + + + BICOMP + 185 7 8 15 143 145 161 + + + + + $PROJ_DIR$\..\lib\driverlib\cpu.c + + + ICCARM + 258 293 + + + BICOMP + 234 + + + + + ICCARM + 144 + + + BICOMP + 144 + + + + + $PROJ_DIR$\..\lib\driverlib\adc.c + + + ICCARM + 291 224 + + + BICOMP + 242 + + + + + ICCARM + 184 7 8 15 141 145 161 + + + BICOMP + 184 7 8 15 141 145 161 + + + + + $PROJ_DIR$\..\lib\driverlib\epi.c + + + ICCARM + 189 275 + + + BICOMP + 87 + + + + + ICCARM + 0 7 8 15 145 147 161 + + + BICOMP + 0 7 8 15 145 147 161 + + + + + $PROJ_DIR$\..\lib\driverlib\ethernet.c + + + ICCARM + 193 221 + + + BICOMP + 88 + + + + + ICCARM + 1 7 8 15 145 149 171 161 + + + BICOMP + 1 7 8 15 145 149 171 161 + + + + + $PROJ_DIR$\..\lib\driverlib\flash.c + + + ICCARM + 53 228 + + + BICOMP + 89 + + + + + ICCARM + 2 7 13 15 145 151 161 + + + + + $PROJ_DIR$\..\lib\driverlib\gpio.c + + + ICCARM + 186 229 + + + BICOMP + 90 + + + + + ICCARM + 3 7 8 13 15 145 153 161 + + + BICOMP + 3 7 8 13 15 145 153 161 + + + + + $PROJ_DIR$\..\lib\driverlib\hibernate.c + + + ICCARM + 235 230 + + + BICOMP + 91 + + + + + ICCARM + 4 7 13 15 145 155 171 161 + + + BICOMP + 4 7 13 15 145 155 171 161 + + + + + $PROJ_DIR$\..\lib\driverlib\i2c.c + + + ICCARM + 301 231 + + + BICOMP + 92 + + + + + ICCARM + 5 7 8 13 15 145 157 171 161 + + + BICOMP + 5 7 8 13 15 145 157 171 161 + + + + + $PROJ_DIR$\..\lib\driverlib\i2s.c + + + ICCARM + 252 232 + + + BICOMP + 93 + + + + + ICCARM + 6 7 8 15 145 159 161 + + + BICOMP + 6 7 8 15 145 159 161 + + + + + $PROJ_DIR$\..\lib\driverlib\interrupt.c + + + ICCARM + 264 192 + + + BICOMP + 94 + + + + + ICCARM + 7 9 15 144 145 161 + + + BICOMP + 7 9 15 144 145 161 + + + + + $PROJ_DIR$\..\lib\driverlib\mpu.c + + + ICCARM + 223 201 + + + BICOMP + 95 + + + + + ICCARM + 7 9 15 145 161 163 + + + BICOMP + 7 9 15 145 161 163 + + + + + $PROJ_DIR$\..\lib\driverlib\pwm.c + + + ICCARM + 297 200 + + + BICOMP + 96 + + + + + ICCARM + 7 8 10 13 15 145 161 165 + + + BICOMP + 7 8 10 13 15 145 161 165 + + + + + $PROJ_DIR$\..\lib\driverlib\qei.c + + + ICCARM + 137 199 + + + BICOMP + 202 + + + + + ICCARM + 7 8 11 15 145 161 167 + + + BICOMP + 7 8 11 15 145 161 167 + + + + + $PROJ_DIR$\..\lib\driverlib\ssi.c + + + ICCARM + 280 198 + + + BICOMP + 203 + + + + + ICCARM + 7 8 12 15 145 161 169 171 + + + BICOMP + 7 8 12 15 145 161 169 171 + + + + + $PROJ_DIR$\..\lib\driverlib\sysctl.c + + + ICCARM + 135 197 + + + BICOMP + 204 + + + + + ICCARM + 7 9 13 15 144 145 161 171 + + + + + $PROJ_DIR$\..\lib\driverlib\systick.c + + + ICCARM + 222 194 + + + BICOMP + 205 + + + + + ICCARM + 7 9 15 145 161 173 + + + BICOMP + 7 9 15 145 161 173 + + + + + $PROJ_DIR$\..\lib\driverlib\timer.c + + + ICCARM + 283 215 + + + BICOMP + 277 + + + + + ICCARM + 7 8 14 15 145 161 175 + + + BICOMP + 7 8 14 15 145 161 175 + + + + + $PROJ_DIR$\..\lib\driverlib\uart.c + + + ICCARM + 136 196 + + + BICOMP + 206 + + + + + ICCARM + 7 8 13 15 16 145 161 177 171 + + + BICOMP + 7 8 13 15 16 145 161 177 171 + + + + + $PROJ_DIR$\..\lib\driverlib\udma.c + + + ICCARM + 295 195 + + + BICOMP + 207 + + + + + ICCARM + 15 17 145 161 179 + + + BICOMP + 15 17 145 161 179 + + + + + $PROJ_DIR$\..\lib\driverlib\usb.c + + + ICCARM + 294 243 + + + BICOMP + 208 + + + + + ICCARM + 7 8 15 18 145 161 179 181 + + + BICOMP + 7 8 15 18 145 161 179 181 + + + + + $PROJ_DIR$\..\lib\driverlib\watchdog.c + + + ICCARM + 227 241 + + + BICOMP + 209 + + + + + ICCARM + 7 8 15 19 145 161 183 + + + BICOMP + 7 8 15 19 145 161 183 + + + + + $PROJ_DIR$\..\bin\demoprog_ek_lm3s6965.out + + + ILINK + 138 + + + OBJCOPY + 187 + + + + + ILINK + 210 224 247 122 225 293 237 275 221 228 229 230 231 232 192 253 244 260 201 125 120 200 199 198 197 194 257 215 196 195 117 118 115 116 114 243 214 241 248 58 287 290 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c + + + ICCARM + 66 + + + BICOMP + 86 + + + + + $PROJ_DIR$\..\bin\demoprog_olimex_stm32p103.out + + + OBJCOPY + 246 + + + + + $PROJ_DIR$\..\timer.c + + + ICCARM + 215 + + + BICOMP + 277 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c + + + ICCARM + 70 + + + BICOMP + 271 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c + + + ICCARM + 64 + + + BICOMP + 285 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c + + + ICCARM + 67 + + + BICOMP + 85 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c + + + ICCARM + 65 + + + BICOMP + 218 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c + + + ICCARM + 68 + + + BICOMP + 286 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c + + + ICCARM + 69 + + + BICOMP + 272 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c + + + ICCARM + 239 + + + BICOMP + 300 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c + + + ICCARM + 269 + + + BICOMP + 303 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c + + + ICCARM + 302 + + + BICOMP + 305 diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/ide/lm3s6965.ewp b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/ide/lm3s6965.ewp index 8325d94b..b4ef47a1 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/ide/lm3s6965.ewp +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/ide/lm3s6965.ewp @@ -302,6 +302,8 @@ $PROJ_DIR$\..\lib $PROJ_DIR$\..\lib\inc $PROJ_DIR$\..\lib\driverlib + $PROJ_DIR$\..\lib\uip + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip