77范文网 - 专业文章范例文档资料分享平台

基于DSP的嵌入式Ethernet接入方案设计(2)

来源:网络收集 时间:2021-09-24 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

OSTaskStatHook();OSTimeTickHook();OSInitHookBegln();OSlnitHookEnd();OSTCBInitHook()。其中第一个函

数的编写较其它的函数来说复杂一些。OS_CPu—A.ASM文件中是四个用汇编语言写成的函数是移植过程中最难写的部分OSStartHighRdy();OSCtxSwO;OSIntCtxSw();OSTieklSR()。这些代码的编写可以参考树种的移植例子,也可以登录tJJC/OS—II的官方的网站www.uCOS—II.corn找出相关的移植代码,笔者在移植过程中参看了清华大学曾鸣的代码和在TMS320C62x上移植的代码。可参考文献[8】。

一38一

第口届京、津、沪、渝及全国城市有线电视技术碍讨会论文集

LwIP协议栈概述及移植要点

InstituteofComputer

LwlP(LishtWeight

IP

Protoc01)是瑞士计算机科学院(SwedishScience)的Adam

Dunkels等开发的一套用于嵌入式系统的开放源代码TCP/1P协议栈。1wIP既可以移植到操作系统上,又可以在无操作系统的情况下独立的运行。LwIP实现的重点是在保持TCP/IP协议主要功能的基础上减少对RAM的占用,一般它只需要几十K的RAM和40K左右的ROM就可以运行,这使LwIP适台在低端嵌入式系统中使用。LwIP的特性如下:

(1)支持多网络接口下的IP转发(2)支持ICMP协议

(3)包括实验性扩展的UDP(用户数据报协议)

(4)包括阻塞控制,RTr估算和快速恢复和转发的TCP(传输控制协议)(5)提供专门的内部回调接口(RawxPi)用于提高应用程序性能(6)可选择的Berkeley接121API(多线程情况下)(7)在最新的版本中支持PPP

(8)新版本中增加了IPfragment的支持(9)支持DHCP协议,动态分配IP地址

6,1

与操作系统相关部分

在include文件夹里有建立两个文件夹arch和netff,在netif文件夹里写一个与laa9118if.e文件对应的头

文件langll8if.h,进行函数的声明。在ayeh里有5个头文件,分别是ec.h作系统的头文件OS_CPU.H的定义是~样的。如下:

typedef

unsignedcharu8t;

init.hlib.h

perf.hsys_arch.h。

在cc.h中是一些与编译器有关的数据信息的定义,如数据的长度,字的高低位顺序等。这与在移植斗C/OS-II操

typedeftypedoftypedef

signedchar

sS_t;

t;

unsignedshortul6signed

shortint

sl6_t;

typedef

typedef

unsigned

signedint

u32j;

s32_t;

在lib_arch.c文件中IMP协议栈中用到了8个外部函数,这些函数通常与用户使用的系统或编译器有关。

因此留给用户自己实现。如下:

u16_thtons(u16_tn);u16._tntohs(u16_tn);u32__thtonl(u32_3n);u32jntohl(u32jn);

intint

//16位数据高低字节交换

//32位数据大小头对调

strlen(eonstchar}sIr);//返回字符串长度

stmcmp(coastchar*strl,constchar+str2,intlea);∥字符串比较bcopy(eonstvoid*sFe,void*dest,intlen);

void

∥内存数据块之间的互相拷贝

voidbzero(void*data,intn);//内存中指定长度的数据块清零

在sys_arch.e文件中的内容是与操作系统相关的一些结构和函数,主要分四个部分(1)sys_sem_t信号量

IMP中需要使用信号量通信,所以在sys_arch中应实现信号量结构体和处理函数:

算口届京、津、沪、瀹反全国城市有线电视技术研讨会论文集

struct

一39一

sys_sem_t

sys_sem_new((sys__senl_free()sys..8em—signal()

//创建一个信号量结构//释放一个信号量结构

//发送信号量

sys_arch_sere_wait()//请求信号量

由于v.C/OSII已经实现了信号量0S_EVENT的各种操作,并且功能和LwlP上面几个函数的目的功能是完全一样的,所以只要把trC/OSII的函数重新包装成上面的函数,就可以直接使用了。

(2)sys_mbox_t消息

1wlP使用消息队列来缓冲、传递数据撮文,因此要在sys_arch中实现消息队列结构sys_mbox_t,以及相应的

操作函数:

sys_mbox_new()sys_mbox_free()sys_nrbox_post()sys_arch_mbox_fetch()

∥创建一个消息队列

//释放一个消息队列

//向消息队列发送消息

//从消息队列中获取消息

tmC/OSII同样实现了消息队列结构OSQ及其操作,但是v..C/OSII没有对消息队列中的消息进行管理,因此不能直接使用,必须在IJJC/OSII的基础上重新实现。为了实现对消息的管理,我们定义了以下结构:

typedefstruct

OS_EVENT*pQ;

void*pvQEntries[MAX_QUEUE_ENTRIES];

lsys_mbox_t;

在以上结构中,包括OS__EVENT类型的队列指针(PQ)和队列内的消息(pvQEntries)igg部分,对队列本身的管理利用斗C/OSII自己的OSQ操作完成,然后使用I^C/OSII中的内存管理模块实现对消息的创建、使用、删除回收,两部分综合起来形成了LwlP的消息队列功能。

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说医药卫生基于DSP的嵌入式Ethernet接入方案设计(2)在线全文阅读。

基于DSP的嵌入式Ethernet接入方案设计(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/yiyao/1250284.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: