从Cfgdemo项目来分析协议栈的启动14290.docx
《从Cfgdemo项目来分析协议栈的启动14290.docx》由会员分享,可在线阅读,更多相关《从Cfgdemo项目来分析协议栈的启动14290.docx(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、从Cfgdemo项目来分析协议栈的启动项目中静态创建的任务有两个:一个是空闲任务,一个是StackTest任务,main函数是空的。任务StackTest的优先级(5)比空闲任务高。整个程序的初始化部分执行完之后,就会执行StackTest任务,从而执行StackTest()函数。StackkTesst()函函数首先先调用了了NC_SysstemmOpeen()函函数,来来完成协协议栈系系统的初初始化工工作。必必须注意意的是:在使用用协议栈栈之前必必须最先先调用该该函数。接接下来调调用函数数CfggNeww()来来创建一一个配置置(Coonfiigurratiion)并并获得该该配置的的句柄,
2、接接下来的的工作就就是在配配置中增增添配置置项(CConffiguurattionn Enntryy),增增添配置置选项是是通过调调用CffgAdddEnntryy()函函数实现现的。该该项目中中首先增增添的配配置项为为Hosst nnamee:从CFGDDEMOO项目来来分析协协议栈的的启动接着增添的的配置项项为Teelneet服务务,那么么协议栈栈系统在在启动之之后会启启动Teelneet服务务(创建建了一个个名为ttelnnetdd的任务务):接着通过过调用eefs_creeateefille()创创建5个个文件,其其名字分分别为:inddex.htmml、ttibuug.ggif、cc
3、fgsstarrt.ccgi、ccfgppasss.cggi ccfgddonee.cggi;这这5个文文件中,前前两个文文件的数数据分别别存放在在数组DDEFAAULTT、TTIBUUG中,而而后三个个文件实实际是ccgi程程序,这这三个ccgi程程序分别别完成来来之客户户端的命命令请求求:Viiew connfigguraatioon、CChannge passswoord、SSubmmit connfigguraatioon,与与之同时时,它们们动态修修改并发发送了两两个网页页并COONFIIG、UUSERRMSGG。接着增增添的配配置项为为HTTTP服务务,那么么协议栈栈启动之之后会启
4、启动Htttp服服务(创创建一个个名为hhttpp seerveer的任任务) 接着着的增添添的配置置项为CCFGIITEMM_OSS_DBBGPRRINTTLEVVEL,来来选择打打印的信信息内容容:接下来调用用函数CCfgSSavee()来来获取配配置的大大小并讲讲配置数数据存入入一个缓缓存中去去,并释释放配置置。 接下来来调用函函数NeetBooot()来来启动协协议栈。这这个函数数是NDDK的用用户自己己写的一一个函数数,在这这个函数数中,调调用了协协议栈启启动函数数NC_NettStaart(),这这个函数数属于NNetwworkk Coontrrol APII,该函函数的源源代码可
5、可以在tiNDKKsrrcnnetcctrllneetcttrl.c中找找到。其其函数接接口如下下:NetBooot()在在调用NNC_NNetSStarrt()之之前调用用CfggNeww()来来创建一一个新的的空的配配置,然然后再调调用CffgLooad()来来把之前前存入缓缓冲区中中的配置置好的配配置数据据载入新新的配置置中去,并并把它作作为参数数传入NNC_NNetSStarrt()中中去,接接着就调调用NCC_NeetSttartt()启启动协议议栈。 NC_NettStaart()函函数首先先调用了了4个硬硬件抽象象层(HHAL)的的四个初初始化函函数,由由它们来来完成底底层硬件件
6、的初始始化(具具体细节节过程等等待进一一步研究究):接着该函数数调用CCfgSSetDDefaaultt()把把传入NNC_NNetSStarrt()函函数中构构建好的的配置设设置为默默认配置置。由于于编程方方法上的的需要,协协议栈就就使用配配置是统统一为一一个配置置句柄指指向的配配置。这这样CffgSeetDeefauult()的的本质就就是把该该配置句句柄指向向传入NNC_NNetSStarrt()函函数中构构建好的的配置。 接着把把传入NNC_NNetSStarrt()函函数的三三个函数数指针赋赋值给三三个全局局变量,以以方便后后面适当当的时候候调用:接着调用协协议栈的的核心AAPI函函
7、数ExxecOOpenn()来来初始化化协议栈栈的exxecuutivve(自自己意会会这个概概念)。 接着动动态创建建一个名名为CoonfiigBooot的的任务,其其优先级级为155(最高高),其其执行的的函数是是NS_BoootTaask()。由由于DSSP/BBIOSS是占先先式实时时OS,所所以一旦旦任务高高优先级级的任务务创建,OOS内核核的调度度模块就就会自动动切换到到高优先先级的任任务执行行。很显显然,接接下来执执行的是是函数NNS_BBoottTassk()。这这个函数数的源码码在ttiNNDKsrccneetcttrl neetsrrv.cc中可以以找到。NS_BoootT
8、Taskk()函函数首先先调用CCfgSSetSServvicee()来来Sett Seerviice CalllBaack Funntioons forr Evveryy Coonfiigurratiion Tagg,其意意思是为为每个CConffiguurattionn Taag设置置一个回回调函数数,其目目的是为为了在修修改完配配置之后后能及时时更新协协议栈系系统,也也就是使使协议栈栈系统随随着配置置的改变变而实时时地改变变。 回调函函数的接接口定义义如下:在NDK的的协议栈栈中,CConffiguurattionn Taag共有有如下88个:其中需要配配置回调调函数的的有如下下几个:C
9、FGGTAGG_OSS、CFFGTAAG_IIP、CCFGTTAG_SERRVICCE、CCFGTTAG_IPNNET、CCFGTTAG_ROUUTE,它它们的回回调函数数分别为为:SPPConnfigg()、SSPCoonfiig()、SSPSeerviice()、SSPIppNett()、SSPRooutee(),这这些回调调函数的的实现源源代码都都在ttiNNDKsrccneetcttrl neetsrrv.cc可以找找到。下面分析以以下SPPConnfigg()函函数是怎怎样实现现实时更更新系统统的:SSPCoonfiig()函函数是作作为CFFGTAAG_OOS、CCFGTTAG_I
10、P的的回调函函数的,所所以它必必须负责责处理增增添CFFGTAAG_OOS、CCFGTTAG_IP两两种类型型的Coonfiigurratiion Enttry时时的系统统实时更更新工作作。系统统在调CCfgAAddEEntrry函数数来增添添一个CCFGTTAG_OS、CCFGTTAG_IP类类型的配配置项后后(注意意:CffgAdddEnntryy只把配配置数据据添加到到配置中中去),会会调用与与该种配配置类型型捆绑的的的回调调函数SSPCoonfiig(CCfgSSetSServvicee函数来来完成捆捆绑工作作的),SSPCoonfiig函数数调用CCfgEEntrryInnfo来来获
11、取该该配置项项的数据据缓冲区区的指针针并存放放在变量量pi中,接接着更具具Connfigguraatioon TTag的的类型来来获取具具体需要要修改的的系统配配置参数数结构体体;CFFGTAAG_OOS OSEENVCCFG _osscfgg、osscfggcoppy / CCFGTTAG_IP IPPCONNFIGG _iipcffg、iipcffgcoopy,这这两个都都是全局局变量,它它们的数数据结构构类型如如下:/ Coonfiigurratiion Strructtureetypeddef strructt _iipcoonfiig uinnt IIcmppDoRRediirecc
12、t; / Upddatee RttTabble on ICMMP rrediirecct (1=YYes) uinnt IIcmppTtll; / TTTL ffor ICMMP mmesssagees RRFC117000 saays 64 uinnt IIcmppTtllEchho;TTL ffor ICMMP eechoo RFFC17700 sayys 664 uinnt IIpInndexx; / IPP Sttartt Inndexx uinnt IIpFoorwaardiing; / IPP Foorwaardiing (1 = EEnabbledd) uinnt IIpNaat
13、Ennablle; / IPP NAAT EEnabble (1 = YYes) uinnt IIpFiilteerEnnablle; / IP Fillterringg Ennablle (1 = Yees) uinnt IIpReeasmmMaxxTimme; / Maxx reeasssembbly timme iin ssecoondssuint IpRReassmMaaxSiize; / Maax rreasssemmblyy paackeet ssizee uinnt IIpDiireccteddBCaast; / Loook ffor dirrectted BCaast IP a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Cfgdemo 项目 分析 协议 启动 14290
限制150内