Hi, I have a Tiva-C 1294 LaunchPad. Now I am familiarizing the lwIP project. It is found that the Ethernet relevant initial functions are included in file: "<TivaWare_Directory>/third_party/lwip-1.4.1/ports/tiva-tm4c129/netif/tiva-tm4c129.c" But I don't find where and how this file is used in lwIP after looking through the example project: 'enet_lwip' Could you give me some help on this? Thanks,
How is "tiva-tm4c129.c' used in Tiva-C TivaWare?
Started by ●August 8, 2015
Reply by ●August 8, 20152015-08-08
On Saturday, August 8, 2015 at 9:06:38 AM UTC-7, Robert Willy wrote:> Hi, > > I have a Tiva-C 1294 LaunchPad. Now I am familiarizing the lwIP project. It is found that the Ethernet relevant initial functions are included in file: > > "<TivaWare_Directory>/third_party/lwip-1.4.1/ports/tiva-tm4c129/netif/tiva-tm4c129.c" > > > > But I don't find where and how this file is used in lwIP after looking through the example project: 'enet_lwip' > > Could you give me some help on this? > > > > Thanks,I would like to add these info to the question. There is a library file at: C:\ti\TivaWare_C_Series-2.1.1.71\driverlib\ccs\Debug\driverlib.lib There are some driver .c and .h files. emac looks like relevant. They are at: C:\ti\TivaWare_C_Series-2.1.1.71\driverlib\emac.c C:\ti\TivaWare_C_Series-2.1.1.71\driverlib\emac.h I also want to post the beginning part of the tiva-tm4c129.c. Hopefully you experienced engineers can find something from it. Thanks, /** * @file - tivaif.c * lwIP Ethernet interface for Stellaris LM4F Devices * */ /** * Copyright (c) 2001-2004 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. 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 PARTICui32AR 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 lwIP TCP/IP stack. * * Author: Adam Dunkels <adam@sics.se> * */ /** * Copyright (c) 2008-2012 Texas Instruments Incorporated * * This file is derived from the ``ethernetif.c'' skeleton Ethernet network * interface driver for lwIP. * */ #include "lwip/opt.h" #include "lwip/def.h" #include "lwip/mem.h" #include "lwip/pbuf.h" #include "lwip/sys.h" #include <lwip/stats.h> #include <lwip/snmp.h> #include "lwip/tcpip.h" #include "netif/etharp.h" #include "netif/ppp_oe.h" #include "netif/tivaif.h" /** * Sanity Check: This interface driver will NOT work if the following defines * are incorrect. * */ #if (PBUF_LINK_HLEN != 16) #error "PBUF_LINK_HLEN must be 16 for this interface driver!" #endif #if (ETH_PAD_SIZE != 0) #error "ETH_PAD_SIZE must be 0 for this interface driver!" #endif #if (!SYS_LIGHTWEIGHT_PROT) #error "SYS_LIGHTWEIGHT_PROT must be enabled for this interface driver!" #endif /** * Set the physical address of the PHY we will be using if this is not * specified in lwipopts.h. We assume 0 for the internal PHY. */ #ifndef PHY_PHYS_ADDR #define PHY_PHYS_ADDR 0 #endif #if 0 #ifndef EMAC_PHY_CONFIG #define EMAC_PHY_CONFIG (EMAC_PHY_TYPE_INTERNAL | EMAC_PHY_INT_MDIX_EN | \ EMAC_PHY_AN_100B_T_FULL_DUPLEX) #endif #endif /** * If necessary, set the defaui32t number of transmit and receive DMA descriptors * used by the Ethernet MAC. * */ #ifndef NUM_RX_DESCRIPTORS #define NUM_RX_DESCRIPTORS 4 #endif #ifndef NUM_TX_DESCRIPTORS #define NUM_TX_DESCRIPTORS 8 #endif /** * Setup processing for PTP (IEEE-1588). * */ #if LWIP_PTPD extern uint32_t g_ui32SysClk; extern uint32_t g_ui32PTPTickRate; extern void lwIPHostGetTime(u32_t *time_s, u32_t *time_ns); #endif /** * Stellaris DriverLib Header Files required for this interface driver. * */ #include <stdint.h> #include <stdbool.h> #include "inc/hw_emac.h" #include "inc/hw_ints.h" #include "inc/hw_memmap.h" #include "inc/hw_types.h" #include "driverlib/emac.h" #include "driverlib/interrupt.h" #include "driverlib/sysctl.h" /* Define those to better describe your network interface. */ #define IFNAME0 't' #define IFNAME1 'i' .....







