第1页共8页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共8页从Cfgdemo项目来分析协议栈的启动项目中静态创建的任务有两个:一个是空闲任务,一个是StackTest任务,main函数是空的
任务StackTest的优先级(5)比空闲任务高
整个程序的初始化部分执行完之后,就会执行StackTest任务,从而执行StackTest()函数
StackTest()函数首先调用了NC_SystemOpen()函数,来完成协议栈系统的初始化工作
必须注意的是:在使用协议栈之前必须最先调用该函数
接下来调用函数CfgNew()来创建一个配置(Configuration)并获得该配置的句柄,接下来的工作就是在配置中增添配置项(ConfigurationEntry),增添配置选项是通过调用CfgAddEntry()函数实现的
该项目中首先增添的配置项为Hostname:从CFGDEMO项目来分析协议栈的启动接着增添的配置项为Telnet服务,那么协议栈系统在启动之后会启动Telnet服务(创建了一个名为telnetd的任务):接着通过调用efs_createfile()创建5个文件,其名字分别为:index
html、tibug
gif、cfgstart
cgi、cfgpass
cgicfgdone
cgi;这5个文件中,前两个文件的数据分别存放在数组DEFAULT[]、TIBUG[]中,而后三个文件实际是cgi程序,这三个cgi程序分别完成来之客户端的命令请求:Viewconfiguration、Changepassword、Submitconfiguration,与之同时,它们动态修改并发送了两个网页并CONFIG、USERMSG
接着增添的配置项为HTTP服务,那么协议栈启动之后会启动Http服务(创建一个名为httpserver的任务)第2页共8页