用户工具

站点工具


icore4t_41

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
icore4t_41 [2020/11/10 08:48]
zgf [四、 实验程序]
icore4t_41 [2020/11/10 08:55] (当前版本)
zgf [四、 实验程序]
行 157: 行 157:
 === 1. 主函数 === === 1. 主函数 ===
 <code c> <code c>
- //​LWIP初始化+//​LWIP初始化
 NETMPU_Config();​ NETMPU_Config();​
 lwip.initialize();​ lwip.initialize();​
行 182: 行 182:
 { {
   unsigned char retry = 0;   unsigned char retry = 0;
- Struct netif *Netif_Init_Flag;//​调用netif_add()函数时的返回值,用于判断网络初始化是否成功 + Struct netif *Netif_Init_Flag; ​ //​调用netif_add()函数时的返回值,用于判断网络初始化是否成功 
- struct ip_addr ipaddr; ​  //​ip地址 + struct ip_addr ipaddr; ​         //​ip地址 
- struct ip_addr netmask; ​ //​子网掩码 + struct ip_addr netmask; ​        ​//​子网掩码 
- struct ip_addr gw;       //​默认网关+ struct ip_addr gw;       //​默认网关
  
- while(lan8720.initialize()){ ​     ​//​初始化LAN8720,如果失败的话就重试5次+ while(lan8720.initialize()){ ​ //​初始化LAN8720,如果失败的话就重试5次
  retry++;  retry++;
  if(retry > 5){  if(retry > 5){
  retry = 0;  retry = 0;
    return 3;    return 3;
- } //​LAN8720初始化失败+                      ​//​LAN8720初始化失败
  }  }
- lwip_init();​ //​初始化LWIP内核 + lwip_init();​ //​初始化LWIP内核
  IP4_ADDR(&​ipaddr,​lan8720.ip[0],​lan8720.ip[1],​lan8720.ip[2],​lan8720.ip[3]);​  IP4_ADDR(&​ipaddr,​lan8720.ip[0],​lan8720.ip[1],​lan8720.ip[2],​lan8720.ip[3]);​
  IP4_ADDR(&​netmask,​lan8720.sub[0],​lan8720.sub[1] ,​lan8720.sub[2],​lan8720.sub[3]);​  IP4_ADDR(&​netmask,​lan8720.sub[0],​lan8720.sub[1] ,​lan8720.sub[2],​lan8720.sub[3]);​
  IP4_ADDR(&​gw,​lan8720.gw[0],​lan8720.gw[1],​lan8720.gw[2],​lan8720.gw[3]);​  IP4_ADDR(&​gw,​lan8720.gw[0],​lan8720.gw[1],​lan8720.gw[2],​lan8720.gw[3]);​
- Netif_Init_Flag=netif_add(&​lwip_netif,&​ipaddr,&​netmask,&​gw,​NULL,&​ethernetif_init,&​ethernet_input); ​//​向网卡列表中添加一个网口 +        //​向网卡列表中添加一个网口 
 + Netif_Init_Flag=netif_add(&​lwip_netif,&​ipaddr,&​netmask,&​gw,​NULL,&​ethernetif_init,&​ethernet_input); ​
  if(Netif_Init_Flag==NULL){  if(Netif_Init_Flag==NULL){
- return 4;         ​//​网卡添加失败 + return 4;             ​//​网卡添加失败 
- }else{ ​                ​//​网口添加成功后,设置netif为默认值,并且打开netif网口 + }else{ ​                       //​网口添加成功后,设置netif为默认值,并且打开netif网口 
- netif_set_default(&​lwip_netif);//​设置netif为默认网口 + netif_set_default(&​lwip_netif); ​     //​设置netif为默认网口 
- netif_set_up(&​lwip_netif);​  //​打开netif网口+ netif_set_up(&​lwip_netif); ​          ​//​打开netif网口
  }  }
   
- return 0;//​操作OK+ return 0;                     ​//操作OK
  
  
行 215: 行 216:
 { {
 struct ip_addr rmtipaddr; struct ip_addr rmtipaddr;
- eth_tcpc.tcpc_pcb = tcp_new();   ​//​该函数简单的调用tcp_alloc函数为一个谅解分配一个TCP控制块tcp_pcb。 +eth_tcpc.tcpc_pcb = tcp_new(); //​该函数简单的调用tcp_alloc函数为一个谅解分配一个TCP控制块tcp_pcb。 
-                                          //​tcp_alloc函数首先为新的tcp_pcb分配内存空间,若内存空间不足,则函数会释放出新的pcb空间。+                               ​//​tcp_alloc函数首先为新的tcp_pcb分配内存空间,若内存空间不足,则函数会释放出新的pcb空间。
 IP4_ADDR(&​rmtipaddr,​lan8720.pc_ip[0],​lan8720.pc_ip[1],​lan8720.pc_ip[2],​lan8720.pc_ip[3]);​ IP4_ADDR(&​rmtipaddr,​lan8720.pc_ip[0],​lan8720.pc_ip[1],​lan8720.pc_ip[2],​lan8720.pc_ip[3]);​
 udp_connect(eth_udp.udppcb,&​rmtipaddr,​PC_PORT);​  udp_connect(eth_udp.udppcb,&​rmtipaddr,​PC_PORT);​
icore4t_41.1604969320.txt.gz · 最后更改: 2020/11/10 08:48 由 zgf