How is "tiva-tm4c129.c' used in Tiva-C TivaWare?

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:

"/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,

Reply to
Robert Willy
Loading thread data ...

On Saturday, August 8, 2015 at 9:06:38 AM UTC-7, Robert Willy wrote:

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 * */

/** * 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 #include #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 #include #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' .....

Reply to
Robert Willy

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.