【创龙TMS320C665x开发板试用】基础(十九):SYSBIOS-NDK(6)

最后,就是通过NC_NetStart()函数来开启网络了。
这个函数会根据前面几篇中的配置过程与配置的参数启动NDK网络,同时它会创建以下三个回调函数:
网络启动时只运行一次的函数,创建自己的应用程序线程:
void (*NetStart)()
网络被关闭时只运行一次的函数,删除创建的应用程序线程:
void (*NetStop)()
当IP地址改变时运行的函数:
void (*NetiP)(IPN,uint,uint)
 
程序实现如下:
  1. do
  2.     {
  3.         rc = NC_NetStart(hCfg, NetworkOpen, NetworkClose, NetworkIPAddr);
  4.     } while(rc > 0);
  5.  
复制代码
启动函数NetworkOpen中用TaskCreate函数创建了4个网络应用进程的。
  1.     hEcho = TaskCreate(echosrv, "EchoSrv", OS_TASKPRINORM, 0x1400, 0, 0, 0);
  2.     hData = TaskCreate(datasrv, "DataSrv", OS_TASKPRINORM, 0x1400, 0, 0, 0);
  3.     hNull = TaskCreate(nullsrv, "NullSrv", OS_TASKPRINORM, 0x1400, 0, 0, 0);
  4.     hOob  = TaskCreate(oobsrv,   "OobSrv", OS_TASKPRINORM, 0x1000, 0, 0, 0);
复制代码
函数中的进程EchoSrv、DataSrv、NullSrv、OobSrv在ndk的安装目录中可以找到,对应的路径为:ndk_2_21_02_43\packages\ti\ndk\tools\servers文件夹。


 
而NetworkClose函数,关闭这四个服务,并删除任务。
 
  1. void NetworkClose()
  2. {
  3.         // 关闭会话
  4.     fdCloseSession(hOob);
  5.     fdCloseSession(hNull);
  6.     fdCloseSession(hData);
  7.     fdCloseSession(hEcho);
  8.  
  9.     // 关闭控制台
  10.     ConsoleClose();
  11.  
  12.     // 删除任务
  13.     TaskSetPri(TaskSelf(), NC_PRIORITY_LOW);
  14.  
  15.     TaskDestroy(hOob);
  16.     TaskDestroy(hNull);
  17.     TaskDestroy(hData);
  18.     TaskDestroy(hEcho);
  19. }
复制代码
 
NetworkIPAddr()函数用来同步网络任务,该网络任务需要在执行前设置一个本地IP地址。
这个函数有三个参数分别为:
IPAddr           增加或者移除的IP地址
       IFIndex          外设 接口获取或者移除IP地址的标识
      fAdd             增加一个IP地址时设为1,移除IP地址时设为0
 
 
 
经过上面的配置,就将NDK的网络启动起来了。现在可以进行 测试了。
这里使用了DHCP进行IP自动分配。
 
在浏览器中打开192.168.1.117可以看到之前帖子里新建的网页界面。

 
中的内容是一样的。不再赘述。
至此NDK中主要的几种服务的使用就完成了。
下面是工程源文件:
  NDK.rar  (5.54 MB, 下载次数: 35)
发布了0 篇原创文章 · 获赞 123 · 访问量 88万+

猜你喜欢

转载自blog.csdn.net/kunkliu/article/details/104353534