[DSP]

TMS320C665x基础19:SYSBIOS-NDK

[复制链接]
350|3
手机看帖
扫描二维码
随时随地手机跟帖
zhangmangui|  楼主 | 2020-10-26 22:33 | 显示全部楼层 |阅读模式
最后,就是通过NC_NetStart()函数来开启网络了。
这个函数会根据前面几篇中的配置过程与配置的参数启动NDK网络,同时它会创建以下三个回调函数:
网络启动时只运行一次的函数,创建自己的应用程序线程:
void (*NetStart)()
网络被关闭时只运行一次的函数,删除创建的应用程序线程:
void (*NetStop)()
当IP地址改变时运行的函数:
void (*NetiP)(IPN,uint,uint)

程序实现如下:

  • do
  •     {
  •         rc = NC_NetStart(hCfg, NetworkOpen, NetworkClose, NetworkIPAddr);
  •     } while(rc > 0);


复制代码


启动函数NetworkOpen中用TaskCreate函数创建了4个网络应用进程的。

  •     hEcho = TaskCreate(echosrv, "EchoSrv", OS_TASKPRINORM, 0x1400, 0, 0, 0);
  •     hData = TaskCreate(datasrv, "DataSrv", OS_TASKPRINORM, 0x1400, 0, 0, 0);
  •     hNull = TaskCreate(nullsrv, "NullSrv", OS_TASKPRINORM, 0x1400, 0, 0, 0);
  •     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文件夹。

4cded8d7971519f293a5313b80a87bae.jpg
而NetworkClose函数,关闭这四个服务,并删除任务。
  • void NetworkClose()
  • {
  •         // 关闭会话
  •     fdCloseSession(hOob);
  •     fdCloseSession(hNull);
  •     fdCloseSession(hData);
  •     fdCloseSession(hEcho);
  •     // 关闭控制台
  •     ConsoleClose();
  •     // 删除任务
  •     TaskSetPri(TaskSelf(), NC_PRIORITY_LOW);
  •     TaskDestroy(hOob);
  •     TaskDestroy(hNull);
  •     TaskDestroy(hData);
  •     TaskDestroy(hEcho);
  • }

复制代码
NetworkIPAddr()函数用来同步网络任务,该网络任务需要在执行前设置一个本地IP地址。
这个函数有三个参数分别为:
IPAddr           增加或者移除的IP地址
      IFIndex          外设接口获取或者移除IP地址的标识
      fAdd             增加一个IP地址时设为1,移除IP地址时设为0



经过上面的配置,就将NDK的网络启动起来了。现在可以进行测试了。
这里使用了DHCP进行IP自动分配。
e8d9d98b999792ad5c9a60e854313fc1.jpg 在浏览器中打开192.168.1.117可以看到之前帖子里新建的网页界面。





使用特权

评论回复

相关帖子

抹茶妹妹| | 2020-10-31 22:43 | 显示全部楼层
非常感谢楼主分享

使用特权

评论回复
抹茶妹妹| | 2020-10-31 22:43 | 显示全部楼层
void NetworkClose()
{
        // 关闭会话
    fdCloseSession(hOob);
    fdCloseSession(hNull);
    fdCloseSession(hData);
    fdCloseSession(hEcho);
    // 关闭控制台
    ConsoleClose();
    // 删除任务
    TaskSetPri(TaskSelf(), NC_PRIORITY_LOW);
    TaskDestroy(hOob);
    TaskDestroy(hNull);
    TaskDestroy(hData);
    TaskDestroy(hEcho);
}

使用特权

评论回复
抹茶妹妹| | 2020-10-31 22:44 | 显示全部楼层
DHCP进行IP自动分配。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:欢迎进入【TI DSP 论坛】 & 【DSP 技术】           TI忠诚粉丝!

934

主题

26373

帖子

585

粉丝