新闻中心

EEPW首页>嵌入式系统>设计应用> IPv6的嵌入式设计与实现

IPv6的嵌入式设计与实现

作者: 时间:2009-11-05 来源:网络 收藏

(2) 消息队列
消息队列用于给任务发消息。通过内核提供的服务、任务或中断服务子程序可以将一条消息(该消息的指针)放入消息队列。同样,一个或多个任务可以通过内核服务从消息队列中得到消息。发送和接收消息的任务约定,传递的消息实际上是传递的指针指向的内容。通常,先进入消息队列的消息先传给任务[5],也就是说,任务先得到的是最先进入消息队列的消息,即先进先出原则(FIFO)。然而,uC/OS-II也允许使用后进先出方式(LIFO)。当一个以上的任务要从消息队列接收消息时,每个消息队列有一张等待消息任务的等待列表。如果消息队列中没有消息,即消息队列是空,等待消息的任务就被挂起并放入等待消息任务列表中,直到有消息到来。通常,内核允许等待消息的任务定义等待超时的时间。如果限定时间内,任务没有收到消息,该任务就进入就绪态并开始运行,同时返回出错代码,指出出现等待超时错误。一旦一则消息放入消息队列,该消息将传给等待消息的任务中优先级最高的那个任务,或是最先进入等待消息任务列表的任务。
2.3 库函数的
协议栈中用到了6 个外部函数,这些函数通常与用户使用的系统或编译器有关。返回字符串长度、字符串比较、内存数据块之间的互相拷贝和内存中指定长度的数据块清零,4 个函数已由ADS1.2 中的运行时库提供,不需要再编写。因为网络数据采用的是大端数据存储[6] , 而LPC2210 是工作在小端,所以,在存取网络数据时要进行字节的交换。下面两个简单的函数需要: uintl6 swapw( uintl6 n); //16位数据高低字节交换
{ return(((n<<8)0xff00)}((n>>8)0x00ff)); } uint32 swapl(uint32 n);//32 位数据大小头对调{ return(((n << 24 0xff000000L) ) ((n +8) 0x00ff0000L) ( ( n >> 8 ) 0x0000ff00L) ( ( n >> 2 4 )0x000000ffL)); }
3 结束语
该文详细描述了在系统中如何协议栈,使得在资源有限的系统中实现协议栈具有可能, 随着IPv6 技术及技术的不断发展,可以用微型网关、微型路由器实现嵌入式网与互联网的通信,并最终使IPv6 技术应用于工业控制、家庭网络等各个领域.
本文作者创新点: 。通过分析IEEE 802.15.4 和IPv6 协议,在保证实现网络基本功能的前提下,着重研究了如何对复杂的TCP/IPv6 协议栈进行精简,并提出了一套可行的方案,此方案能够适应嵌入式系统的需要,然后用软件实现嵌入式系统中的精简的TCP/IPv6 协议栈,模块之间能够互相通信。

本文引用地址://m.amcfsurvey.com/article/152302.htm

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭