基于uCOS-II的UDP网络编程

本文详细介绍了在uCOS-II操作系统中进行UDP网络编程的步骤,包括启动任务、UDP服务例程任务的创建与实现,以及关键API函数如socket、bind、sendto、recvfrom和closesocket的使用方法。作者提供了完整的UDP服务例程代码,用于接收上位机数据,根据数据首字母决定是回传还是发送特定字符串。
摘要由CSDN通过智能技术生成

基于uCOS-IIUDP网络编程

---------------------------------------------------------

Author             :tiger-john
WebSite            :blog.csdn.net/tigerjb

Email               jibo.tiger@gmail.com

开发环境         硬件环境:LPC2200

                            操作系统:UC/OS-II操作系统

                            编译环境:ADS1.2

Update-Time   : 2011221日星期一

Tiger声明:本人鄙视直接复制本人文章而不加出处的个人或团体,

但不排斥别人转载tiger-john的文章,只是请您注明出处并和本人

联系或留言给我3Q

---------------------------------------------------------

一.    基于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

              {

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冀博

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值