查看: 1480|回复: 0

DSP6678 NDK网络配置(UDP)要点

[复制链接]

该用户从未签到

发表于 2020-11-16 19:45:29 | 显示全部楼层 |阅读模式
分享到:

1、如果要使用NDK,那你所建立的ccs工程必须是跑sys/bios的工程。
2、如果想看6678的网络demo,那么其demo路径为:C:\ti\mcsdk_2_01_02_06\examples\ndk\helloWorld
3、DSP的本地IP主要在helloworld.c中的以下代码段设置

   

  1. char *HostName    = "tidsp";
  2.     char *LocalIPAddr = "192.168.2.100";   
  3.     char *LocalIPMask = "255.255.255.0";    // Not used when using DHCP
  4.     char *GatewayIP   = "192.168.2.101";    // Not used when using DHCP
  5.     char *DomainName  = "demo.net";         // Not used when using DHCP
  6.     char *DNSServer   = "0.0.0.0";          // Used when set to anything but zero
复制代码

a4、设置DHCP还是静态IP,主要体现在helloworld.c中的以下代码段:

    // If the IP address is specified, manually configure IP and Gateway

  1. <p style="line-height: 28px;"><font color="rgb(51, 51, 51)"><font face="" "="">#if defined(_SCBP6618X_) || defined(_EVMTCI6614_) || defined(DEVICE_K2H) || defined(DEVICE_K2K)
  2.     /* SCBP6618x, EVMTCI6614, EVMK2H, EVMK2K always uses DHCP */
  3.     if (0)
  4. #else
  5.     if (!platform_get_switch_state(1))
  6. #endif
  7.     {
  8.         CI_IPNET NA;
  9.         CI_ROUTE RT;
  10.         IPN      IPTmp;</font></font></p><p style="line-height: 28px;"><font color="rgb(51, 51, 51)"><font face="" "="">        // Setup manual IP address
  11.         bzero( &NA, sizeof(NA) );
  12.         NA.IPAddr  = inet_addr(LocalIPAddr);
  13.         NA.IPMask  = inet_addr(LocalIPMask);
  14.         strcpy( NA.Domain, DomainName );
  15.         NA.NetType = 0;</font></font></p><p style="line-height: 28px;"><font color="rgb(51, 51, 51)"><font face="" "="">        // Add the address to interface 1
  16.         CfgAddEntry( hCfg, CFGTAG_IPNET, 1, 0,
  17.                            sizeof(CI_IPNET), (UINT8 *)&NA, 0 );</font></font></p><p style="line-height: 28px;"><font color="rgb(51, 51, 51)"><font face="" "="">        // Add the default gateway. Since it is the default, the
  18.         // destination address and mask are both zero (we go ahead
  19.         // and show the assignment for clarity).
  20.         bzero( &RT, sizeof(RT) );
  21.         RT.IPDestAddr = 0;
  22.         RT.IPDestMask = 0;
  23.         RT.IPGateAddr = inet_addr(GatewayIP);</font></font></p><p style="line-height: 28px;"><font color="rgb(51, 51, 51)"><font face="" "="">        // Add the route
  24.         CfgAddEntry( hCfg, CFGTAG_ROUTE, 0, 0,
  25.                            sizeof(CI_ROUTE), (UINT8 *)&RT, 0 );</font></font></p><p style="line-height: 28px;"><font color="rgb(51, 51, 51)"><font face="" "="">        // Manually add the DNS server when specified
  26.         IPTmp = inet_addr(DNSServer);
  27.         if( IPTmp )
  28.             CfgAddEntry( hCfg, CFGTAG_SYSINFO, CFGITEM_DHCP_DOMAINNAMESERVER,
  29.                          0, sizeof(IPTmp), (UINT8 *)&IPTmp, 0 );
  30.     }
  31.     // Else we specify DHCP
  32.     else
  33.     {
  34.         CI_SERVICE_DHCPC dhcpc;</font></font></p><p style="line-height: 28px;"><font color="rgb(51, 51, 51)"><font face="" "="">        // Specify DHCP Service on IF-1
  35.         bzero( &dhcpc, sizeof(dhcpc) );
  36.         dhcpc.cisargs.Mode   = CIS_FLG_IFIDXVALID;
  37.         dhcpc.cisargs.IfIdx  = 1;
  38.         dhcpc.cisargs.pCbSrv = &ServiceReport;
  39.         CfgAddEntry( hCfg, CFGTAG_SERVICE, CFGITEM_SERVICE_DHCPCLIENT, 0,
  40.                      sizeof(dhcpc), (UINT8 *)&dhcpc, 0 );
  41.     }</font></font></p><p style="line-height: 28px;"><font color="rgb(51, 51, 51)"><font face="" "="">其中switch_state是拨码开</font></font></p>
复制代码

关,有的开发板上直接是固定的,官方板上该开关可以拨动。

5、可以在以下代码段创建socket进程,用来传输数据:

  1. <p style="line-height: 28px;"><font color="rgb(51, 51, 51)"><font face="" "="">static void NetworkOpen()
  2. {</font></font></p><p style="line-height: 28px;"><font color="rgb(51, 51, 51)"><font face="" "="">    // Create our local server
  3. //     下面这个函数的第三个参数是接收进程的端口设定
  4. //    hHello = DaemonNew( SOCK_DGRAM, 0, 7, dtask_udp_hello,
  5. //            OS_TASKPRINORM, OS_TASKSTKNORM, 0, 1 );
  6.        hSend =  TaskCreate ( dtask_udp_hello, "UDP_Send", OS_TASKPRIHIGH,
  7.                                     OS_TASKSTKNORM, 0, 0, 0 );
  8.     hSend = TaskCreate ( task_sendto_PC, "UDP_Send", OS_TASKPRINORM,
  9.                         OS_TASKSTKNORM, 0, 0, 0 );
  10. // 当然也可以创建接收进程啦
  11. }</font></font></p>
复制代码

注意:必须在发送/接收进程执行任务完成之后执行fdCloseSession(TaskSelf());否则影响堆栈分配
6、至于task_sendto_PC怎么写,那就是socket编程的事情啦!


回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条



手机版|小黑屋|与非网

GMT+8, 2024-11-22 04:01 , Processed in 0.120090 second(s), 15 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.