1、功能说明
    本工程为有操作系统（FreeRTOS）的DHCP示例。通过DHCP为开发板动态分配IP地址。

2、使用环境

    软件环境：
        KEIL MDK-ARM 5.34.0
        IAR EWARM 8.50.1
    
    芯片支持：
        N32H730  
        N32H735   
        N32H735EC
        N32H760
        N32H762
        N32H765
        N32H765EC
        N32H785
        N32H785EC
        N32H787

3、使用说明
    
    系统配置：
        1、时钟源：HSI+PLL
        2、时钟频率：M7：600MHz，M4：300MHz
        3、打印：PA9 - baud rate 115200

    以太网配置：
        1、PHY接口：GMII
        2、引脚分配：
            ETH1_MDC <-----> PC1
            ETH1_MDIO <-----> PA2
            ETH1_GMII_RXDV <-----> PA7
            ETH1_GMII_TXD0 <-----> PG13
            ETH1_GMII_TXD1 <-----> PG12
            ETH1_GMII_TXD2 <-----> PE3
            ETH1_GMII_TXD3 <-----> PE2
            ETH1_GMII_TXD4 <-----> PI4
            ETH1_GMII_TXD5 <-----> PI5
            ETH1_GMII_TXD6 <-----> PI6
            ETH1_GMII_TXD7 <-----> PI7
            ETH1_GMII_TXEN <-----> PG11
            ETH1_GMII_RXD0 <-----> PC4
            ETH1_GMII_RXD1 <-----> PC5
            ETH1_GMII_RXD2 <-----> PH6
            ETH1_GMII_RXD3 <-----> PH7
            ETH1_GMII_RXD4 <-----> PE12
            ETH1_GMII_RXD5 <-----> PE13
            ETH1_GMII_RXD6 <-----> PE14
            ETH1_GMII_RXD7 <-----> PE15
            ETH1_GMII_RXCLK <-----> PA1
            ETH1_GMII_COL <-----> PH3
            ETH1_GMII_CRS <-----> PA0
            ETH1_GMII_RXER <-----> PB10
            ETH1_GMII_TXER <-----> PB2
            ETH1_GMII_TXCLK <-----> PC3
            ETH1_GMII_GTXCLK <-----> PF5
            ETH1_CLK125 <-----> PD10

    使用方法：
        1、电脑和开发板均用网线连接路由
        2、编译后下载程序运行，串口将打印IP地址、子网掩码、网关等信息
        3、在电脑端使用ping命令以及打印信息中的IP地址，测试网络是否畅通

4、注意事项
    1、您使用的PHY芯片可能与demo默认选择的不一样，请在bsp_eth.h中切换或添加其他PHY的定义；请注意PHY_ADDR，PHY地址值必须与硬件设计保持一致
    2、使用DHCP功能动态分配IP地址时，必须确保LWIP_DHCP已定义为1（在lwipopts.h文件修改定义）
    3、开发板、PC机均需要连接到路由器或具有DHCP功能的交换机，才能完成本示例的测试


1. Function description
    This project is an example of DHCP with an OS (FreeRTOS). Dynamically assign an IP address to the development board via DHCP.

2. Development environment

    Software environment:
        KEIL MDK-ARM 5.34.0
        IAR EWARM 8.50.1
    
    Supported chips:
        N32H730  
        N32H735   
        N32H735EC
        N32H760
        N32H762
        N32H765
        N32H765EC
        N32H785
        N32H785EC
        N32H787

3. How to use
    
    System configuration:
        1, clock source: HSI + PLL
        2, clock frequency: M7: 600MHz, M4: 300MHz
        3, print: PA9 - baud rate 115200

    Ethernet configuration:
        1, PHY interface: GMII
        2, Pin assignment:
            ETH1_MDC <-----> PC1
            ETH1_MDIO <-----> PA2
            ETH1_GMII_RXDV <-----> PA7
            ETH1_GMII_TXD0 <-----> PG13
            ETH1_GMII_TXD1 <-----> PG12
            ETH1_GMII_TXD2 <-----> PE3
            ETH1_GMII_TXD3 <-----> PE2
            ETH1_GMII_TXD4 <-----> PI4
            ETH1_GMII_TXD5 <-----> PI5
            ETH1_GMII_TXD6 <-----> PI6
            ETH1_GMII_TXD7 <-----> PI7
            ETH1_GMII_TXEN <-----> PG11
            ETH1_GMII_RXD0 <-----> PC4
            ETH1_GMII_RXD1 <-----> PC5
            ETH1_GMII_RXD2 <-----> PH6
            ETH1_GMII_RXD3 <-----> PH7
            ETH1_GMII_RXD4 <-----> PE12
            ETH1_GMII_RXD5 <-----> PE13
            ETH1_GMII_RXD6 <-----> PE14
            ETH1_GMII_RXD7 <-----> PE15
            ETH1_GMII_RXCLK <-----> PA1
            ETH1_GMII_COL <-----> PH3
            ETH1_GMII_CRS <-----> PA0
            ETH1_GMII_RXER <-----> PB10
            ETH1_GMII_TXER <-----> PB2
            ETH1_GMII_TXCLK <-----> PC3
            ETH1_GMII_GTXCLK <-----> PF5
            ETH1_CLK125 <-----> PD10

    Usage:
        1, Computer and development board are connected to the route with a network cable.
        2, Compile and download the program to run, the serial port will print the IP address, Netmask, Gateway and other information.
        3, Use the ping command on the computer side and the IP address in the printout to test if the network is open.

4. Attention
    1, The PHY chip you are using may differ from the default selection in this demo. Please switch or add definitions for other PHYs in bsp_eth.h. Note that the PHY_ADDR value must match the hardware design.
    2, When using the DHCP function to dynamically assign IP addresses, you must ensure that LWIP_DHCP has been defined as 1 (change the definition in the lwipopts.h file)
    3, Both the development board and the PC need to be connected to a router or a switch with DHCP functionality to complete the tests in this example

