首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
IPv6的嵌入式设计与实现
来源:本站整理  作者:佚名  2009-11-05 08:50:40




(2) 消息队列
消息队列用于给任务发消息。通过内核提供的服务、任务或中断服务子程序可以将一条消息(该消息的指针)放入消息队列。同样,一个或多个任务可以通过内核服务从消息队列中得到消息。发送和接收消息的任务约定,传递的消息实际上是传递的指针指向的内容。通常,先进入消息队列的消息先传给任务[5],也就是说,任务先得到的是最先进入消息队列的消息,即先进先出原则(FIFO)。然而,uC/OS-II也允许使用后进先出方式(LIFO)。当一个以上的任务要从消息队列接收消息时,每个消息队列有一张等待消息任务的等待列表。如果消息队列中没有消息,即消息队列是空,等待消息的任务就被挂起并放入等待消息任务列表中,直到有消息到来。通常,内核允许等待消息的任务定义等待超时的时间。如果限定时间内,任务没有收到消息,该任务就进入就绪态并开始运行,同时返回出错代码,指出出现等待超时错误。一旦一则消息放入消息队列,该消息将传给等待消息的任务中优先级最高的那个任务,或是最先进入等待消息任务列表的任务。
2.3 库函数的实现
IPv6 协议栈中用到了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 协议栈具有可能, 随着IPv6 技术及嵌入式技术的不断发展,可以用微型网关、微型路由器实现嵌入式网与互联网的通信,并最终使IPv6 技术应用于工业控制、家庭网络等各个领域.
本文作者创新点: 。通过分析IEEE 802.15.4 和IPv6 协议,在保证实现网络基本功能的前提下,着重研究了如何对复杂的TCP/IPv6 协议栈进行精简,并提出了一套可行的方案,此方案能够适应嵌入式系统的需要,然后用软件实现嵌入式系统中的精简的TCP/IPv6 协议栈,模块之间能够互相通信。

上一页  [1] [2] [3]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:161,179.70000 毫秒