基于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);

    }

}

  • 1
  • 2
  • 3
  • 下一页

相关内容