infineon4engineers Facebook

infineon@google+ Google+

infineon@linkedin linkedin

infineon4engi@twitter twitter

infineon@youtube youtube

+ Reply to Thread
Results 1 to 2 of 2

Thread: XMC4500 read IP Address before Flash Ethernet initialization

  1. #1
    New Member New Member kyalpani is on a distinguished road
    Join Date
    May 2019

    XMC4500 read IP Address before Flash Ethernet initialization


    Currently the IP Address of the ethernet interface is hardcoded in the lwip header files.

    Is it possible to circumvent this during Dave_init() so that the IP address can be read from Flash or a register or SD Card?

    Thank you in advance


  2. #2

    Infineon Employee
    Infineon Employee
    jferreira will become famous soon enough
    Join Date
    Oct 2012

    You could use the netif status callback.
    In the callback you could before starting your network applications, do the following

    /* The status callback will be called anytime the interface is brought up and down.
       For example, if you would like to log the IP address chosen by DHCP when it has got one,
       and know when this address changes, then you can use the status callback hook.
       The function being called is netif_status_callback */
    void netif_status_cb(struct netif *netif)
    #if LWIP_DHCP
      if (dhcp_supplied_address(netif) > 0)
          /* Initialize echo server */
      if (netif_is_up(netif))
    #define IP_ADDR0_0 (192U)
    #define IP_ADDR1_0 (168U)
    #define IP_ADDR2_0 (0U)
    #define IP_ADDR3_0 (11U)
    /*IPv4 subnet mask*/
    /*Static IPv4 address*/
    #define NETMASK_ADDR0_0 (255U)
    #define NETMASK_ADDR1_0 (255U)
    #define NETMASK_ADDR2_0 (255U)
    #define NETMASK_ADDR3_0 (0U)
    /*IPv4 gateway address*/
    /*Static IPv4 address*/
    #define GW_ADDR0_0 (192U)
    #define GW_ADDR1_0 (168U)
    #define GW_ADDR2_0 (0U)
    #define GW_ADDR3_0 (10U)
      ip_addr_t ipaddr;
      ip_addr_t netmask;
      ip_addr_t gw;
      IP4_ADDR(&ipaddr, IP_ADDR0_0, IP_ADDR1_0, IP_ADDR2_0, IP_ADDR3_0);
      IP4_ADDR(&gw, GW_ADDR0_0, GW_ADDR1_0, GW_ADDR2_0, GW_ADDR3_0);
      netif_set_addr(ETH_LWIP_0.xnetif, &ipaddr, &netmask, &gw);
        /* Initialize echo server */
    The views expressed here are my personal opinions, have not been reviewed or authorized by Infineon and do not necessarily represent the views of Infineon.

+ Reply to Thread

All content and materials on this site are provided “as is“. Infineon makes no warranties or representations with regard to this content and these materials of any kind, whether express or implied, including without limitation, warranties or representations of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. No license, whether express or implied, is granted by Infineon. Use of the information on this site may require a license from a third party, or a license from Infineon.

Infineon accepts no liability for the content and materials on this site being accurate, complete or up- to-date or for the contents of external links. Infineon distances itself expressly from the contents of the linked pages, over the structure of which Infineon has no control.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Usage Terms of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Usage Terms of this site. Infineon reserves the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.