1 /*
2  * Copyright (c) 2022-2024, Xiaohua Semiconductor Co., Ltd.
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2024-12-30     CDT          first version
9  */
10 
11 /*
12  * 程序清单:ETH设备使用例程,例程导出了eth_webserver命令到控制终端
13  * 命令调用格式:eth_webserver
14  *
15  * ************************** 测试case 1 **************************
16  * 1)网线连接目标板和PC的网络端口,设置PC的对应网卡的IP地址,如下:
17  *    IPv4地址:192.168.1.10
18  *    子网掩码: 255.255.255.0
19  *    默认网关: 192.168.1.1
20  * 2)配置RTT工程
21  *    menuconfig:
22  *     RT-Thread Componets  --->  Network  ---->  LwIP  ---->  lwIP version(lwIP v2.1.2)
23  *                                                             Static IPv4 Address,按照如下配置IP:
24  *                                                                                  IP address      : 192.168.1.30
25  *                                                                                  Gateway address : 192.168.1.1
26  *                                                                                  Mask address    : 255.255.255.0
27  *                                                             Enable alloc ip address through DHCP,取消该选项
28  *     Hardware Drivers Config  --->  Onboard Peripheral Drivers  ---->  Enable Ethernet: ETH PHY USING RTL8201F
29  *                                                                                        ETH Communication USING MII
30  * 3)拨码开关J33拨到MII端,编译下载、运行代码
31  * 4)等待msh>
32  * 5)msh>窗口输入命令:ping 192.168.1.10,显示连接正常(60 bytes from 192.168.1.120 icmp_seq=0 ttl=128 time=1 ms)
33  * 6)msh>窗口输入命令:eth_webserver
34  * 7)PC打开浏览器,输入IP地址:192.168.1.30再按回车键,显示lwip的简介网页(lwIP - A Lightweight TCP/IP Stack),
35  *    表示成功访问目标板的HTTP服务器。
36  *
37  * ************************** 测试case 2 **************************
38  * 1)网线连接目标板和PC的网络端口,维持测试case 2配置
39  * 2)配置RTT工程,在测试case 1的基础上,使能Enable ETH PHY interrupt mode
40  *    menuconfig:
41  *     Hardware Drivers Config  --->  Onboard Peripheral Drivers  ---->  Enable ETH PHY interrupt mode: (16) ETH PHY Interrupt pin number
42  * 3)拨码开关J33拨到MII端,编译下载、运行代码
43  * 4)等待msh>
44  * 5)msh>窗口输入命令:ping 192.168.1.10,显示连接正常(60 bytes from 192.168.1.120 icmp_seq=0 ttl=128 time=1 ms)
45  * 6)msh>窗口输入命令:eth_webserver
46  * 7)PC打开浏览器,输入IP地址:192.168.1.30再按回车键,显示lwip的简介网页(lwIP - A Lightweight TCP/IP Stack),
47  *    表示成功访问目标板的HTTP服务器。
48  *
49  * ************************** 测试case 3 **************************
50  * 1)网线连接目标板和PC的网络端口,维持测试case 2配置
51  * 2)配置RTT工程,在测试case 2的基础上,ETH Communication USING MII改为ETH Communication USING RMII
52  *     Hardware Drivers Config  --->  Onboard Peripheral Drivers  ---->  Enable Ethernet: ETH Communication USING RMII
53  * 3)拨码开关J33拨到RMII端,编译下载、运行代码
54  * 4)等待msh>
55  * 5)msh>窗口输入命令:ping 192.168.1.10,显示连接正常(60 bytes from 192.168.1.120 icmp_seq=0 ttl=128 time=1 ms)
56  * 6)msh>窗口输入命令:eth_webserver
57  * 7)PC打开浏览器,输入IP地址:192.168.1.30再按回车键,显示lwip的简介网页(lwIP - A Lightweight TCP/IP Stack),
58  *    表示成功访问目标板的HTTP服务器。
59  */
60 
61 #include <rtthread.h>
62 
63 #if defined(BSP_USING_ETH) && defined(RT_USING_LWIP)
64 
65 extern void httpd_init(void);
66 
eth_webserver(void)67 void eth_webserver(void)
68 {
69     rt_kprintf("Initialize the httpd...... \r\n");
70     httpd_init();
71 }
72 MSH_CMD_EXPORT(eth_webserver, eth: start web server);
73 
74 #endif
75