Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / 基于uCOS-II的UDP网络编程

一.    基于UCOS-II操作系统的UDP网络编程 1.UDP网络编程的组成部分?  启动任务:负责UDP的初始化,创建通信工具和轮训检测是否有数据报到来。?  UDP数据处理任务:负责UDP报文的处理?  UDP服务例程:实现数据的收发。二.    启动任务1. 启动任务的功能l  负责初始化UDP。l  创建UDP数据处理处理任务和UDP服务例程。l  轮训检测是否有数据到来。2.UDP初始化由那及部分组成  1>初始化网络端口地址通过调用SetNetPort()函数来设置主机IP地址网关地址,子网掩码和主机物理地址。SetNetPort();2>初始化RTL8019芯片通过调用InitNic()函数初始化RTL9019以太网芯片对RTL8019芯片的工作寄存器进行设置。InitNic(0); 3>初始化ARP函数通过调用Initial_arp()函数初始化ARP。Initial_arp();4>初始化UDP通过调用Udp_Initial函数初始化UDP。Udp_Initial();3.启动任务程序/********************************************************************** Function name:       TASK0** Descriptions:        创建任务TASK1(udp数据处理任务)、TASK2(udp服务例程),分配信号量** input parameters:    无** output parameters:   无** Returned value:      无********************************************************************/void Task0(void *pdata)  {    UBYTE iii;    #if OS_CRITICAL_METHOD == 3                              OS_CPU_SR  cpu_sr;       #endif       TargetInit();                 OSTaskCreate(Task1,(void *)0, &TaskStk1[1000 - 1],3);        OSTaskCreate(Task2,(void *)0, &TaskStk2[1000 - 1],4);        UDP_INIT();    SetNetPort();       InitNic(0);                   //RTL8019芯片初始化,在global.c中定义       Initial_arp();      Udp_Initial();  while(1)  {                             OSTimeDly(4);              do              {                iii=Rec_Packet();//监控是否有数据到来                             }              while(iii!=0);    }}