银杏科技有限公司旗下技术文档发布平台 | |||
技术支持电话 | 0379-69926675-801 | ||
技术支持邮件 | Gingko@vip.163.com | ||
版本 | 日期 | 作者 | 修改内容 |
---|---|---|---|
V1.0 | 2020-07-08 | gingko | 初次建立 |
int main(void) { system_clock.initialize(); //系统时钟初始化 led.initialize(); //LED初始化 adc.initialize(); //ADC初始化 delay.initialize(216); //延时初始化 my_malloc.initialize(SRAMIN); //动态内存初始化 usart6.initialize(115200); //串口波特设置 usart6.printf("\033[1;32;40m"); //设置终端字体为绿色 usart6.printf("\r\nHello, I am iCore4!\r\n\r\n"); //串口信息输出 OSInit(); //UCOS初始化 while(lwip.initialize()) //lwip初始化 { LED_RED_ON; usart6.printf("\r\nETH initialize error!\r\n\r\n");//ETH初始化失败 } tcp_client.initialize(); OSTaskCreate(start_task,(void*)0,(OS_STK*)&START_TASK_STK[START_STK_SIZE-1],START_TASK_PRIO); OSStart(); //开启UCOS }
void start_task(void *pdata) { OS_CPU_SR cpu_sr; pdata = pdata ; OSStatInit(); //初始化任务统计 OS_ENTER_CRITICAL(); //关中断 #if LWIP_DHCP lwip_comm_dhcp_creat(); //创建DHCP任务 #if LWIP_DNS my_dns.initialize(); //创建DNS任务 #endif #endif //创建LED任务 OSTaskCreate(led_task,(void*)0,(OS_STK*)&LED_TASK_STK[LED_STK_SIZE-1],LED_TASK_PRIO); //显示任务 OSTaskCreate(display_task,(void*)0,(OS_STK*)&DISPLAY_TASK_STK[DISPLAY_STK_SIZE-1],DISPLAY_TASK_PRIO); OSTaskSuspend(OS_PRIO_SELF); //挂起start_task任务 OS_EXIT_CRITICAL(); //开中断 }
void my_mem_init(u8 memx) { //内存状态表数据清零 mymemset(mallco_dev.memmap[memx],0,memtblsize[memx]*4); //内存管理初始化OK mallco_dev.memrdy[memx]=1; }
u8 lwip_comm_init(void) { OS_CPU_SR cpu_sr; struct netif *Netif_Init_Flag; //调用netif_add()函数时的返回值,用于判断网络初始化是否成功 struct ip_addr ipaddr; //ip地址 struct ip_addr netmask; //子网掩码 struct ip_addr gw; //默认网关 if(lan8720.memory_malloc())return 1; //内存申请失败 if(lwip_comm_mem_malloc())return 1; //内存申请失败 if(lan8720.initialize())return 2; //初始化LAN8720失败 tcpip_init(NULL,NULL); //初始化tcpip内核该函数内会创建tcpip_thread内核任务 lwip_comm_default_ip_set(&lwipdev); //设置默认IP信息 #if LWIP_DHCP //使用动态IP ipaddr.addr = 0; netmask.addr = 0; gw.addr = 0; #else //使用静态IP IP4_ADDR(&ipaddr,lwipdev.ip[0],lwipdev.ip[1],lwipdev.ip[2],lwipdev.ip[3]); IP4_ADDR(&netmask,lwipdev.netmask[0],lwipdev.netmask[1],lwipdev.netmask[2],lwipdev.netmask[3]); IP4_ADDR(&gw,lwipdev.gateway[0],lwipdev.gateway[1],lwipdev.gateway[2],lwipdev.gateway[3]); usart6.printf("网卡enμ的MAC地址为:.......%d.%d.%d.%d.%d.%d\r\n",lwipdev.mac[0],lwipdev.mac[1], lwipdev.mac[2],lwipdev.mac[3],lwipdev.mac[4],lwipdev.mac[5]); usart6.printf("静态IP地址·.........%d.%d.%d.%d\r\n",lwipdev.ip[0],lwipdev.ip[1],lwipdev.ip[2], lwipdev.ip[3]); usart6.printf("子网掩码..........%d.%d.%d.%d\r\n",lwipdev.netmask[0],lwipdev.netmask[1], lwipdev.netmask[2],lwipdev.netmask[3]); usart6.printf("默认网关........%d.%d.%d.%d\r\n", lwipdev.gateway[0],lwipdev.gateway[1], lwipdev.gateway[2],lwipdev.gateway[3]); #endif Netif_Init_Flag=netif_add(&lwip_netif,&ipaddr,&netmask,&gw,NULL,ðernetif_init, &tcpip_input);//向网卡列表中添加一个网口 #if LWIP_DNS dns_init(); #endif if(Netif_Init_Flag==NULL)return 3;//网卡添加失败 else//网口添加成功后,设置netif为默认值,并且打开netif网口 { netif_set_default(&lwip_netif); //设置netif 为默认网口 netif_set_up(&lwip_netif); //打开netif网口 } return 0;//操作OK. }
INT8U tcp_client_init(void) { INT8U res; OS_CPU_SR cpu_sr; OS_ENTER_CRITICAL(); //关中断 res = OSTaskCreate(tcp_client_thread,(void*)0,(OS_STK*)&TCPCLIENT_TASK_STK [TCPCLIENT_STK_SIZE-1],TCPCLIENT_PRIO); //创建TCP客户端线程 OS_EXIT_CRITICAL(); //开中断 return res; }
双击TCPUDPDebug102_Setup.exe,点击下一步,在这里安装路径我们默认即可,点击安装,然后Finish。