找回密码
 注册
关于网站域名变更的通知
查看: 346|回复: 1
打印 上一主题 下一主题

DSP-6678 --- 多核DSP图像处理(3)再来瞅瞅主核程序之TCP进程

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-10-8 14:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
StartNetworkTask进程是在cfg文件中创建的进程。主要用于接收上位机通过TCP传来的图片数据以及将处理结果传输给上位机。具体流程本节介绍。. p/ ]0 }1 [0 F: y

" V* a* S' O/ S3 s4 @; ^& m一、StartNetworkTask
* A8 H3 j* u, U2 U$ H  I+ u! U9 ]* V- a4 Z( q% a  |
1 TCP的配置
1 V% }! u) ], {  a" D1 ]5 k
9 F4 n! M5 f) y: o- y
  •     rc = NC_SystemOpen( NC_PRIORITY_LOW, NC_OPMODE_INTERRUPT );
  •     if( rc )
  •     {
  •             printf("NC_SystemOpen Failed (%d)\n",rc);
  •         for(;;);
  •     }
  •     // Create and build the system configuration from scratch.
  •     // Create a new configuration
  •     hCfg = CfgNew();
  •     if( !hCfg )
  •     {
  •         printf("Unable to create configuration\n");
  •         goto main_exit;
  •     }
  •     // THIS MUST BE THE ABSOLUTE FIRST THING DONE IN AN APPLICATION!!
  •     rc = NC_SystemOpen( NC_PRIORITY_LOW, NC_OPMODE_INTERRUPT );
  •     if( rc )
  •     {
  •         printf("NC_SystemOpen Failed (%d)\n",rc);
  •         for(;;);
  •     }
  •     // Create and build the system configuration from scratch.
  •     // Create a new configuration
  •     hCfg = CfgNew();
  •     if( !hCfg )
  •     {
  •         printf("Unable to create configuration\n");
  •         goto main_exit;
  •     }
  •     // We better validate the length of the supplied names
  •     if( strlen( DomainName ) >= CFG_DOMAIN_MAX ||
  •         strlen( HostName ) >= CFG_HOSTNAME_MAX )
  •     {
  •         printf("Names too long\n");
  •         goto main_exit;
  •     }
  •     // Add our global hostname to hCfg (to be claimed in all connected domains)
  •     CfgAddEntry( hCfg, CFGTAG_SYSINFO, CFGITEM_DHCP_HOSTNAME, 0,
  •                  strlen(HostName), (UINT8 *)HostName, 0 );
  •     // If the IP address is specified, manually configure IP and Gateway
  • #if defined(_SCBP6618X_) || defined(_EVMTCI6614_) || defined(DEVICE_K2H) || defined(DEVICE_K2K)
  •     /* SCBP6618x, EVMTCI6614, EVMK2H, EVMK2K always uses DHCP */
  •     if (0)
  • #else
  •     if (1)//(!platform_get_switch_state(1))
  • #endif
  •     {
  •         CI_IPNET NA;
  •         CI_ROUTE RT;
  •         IPN      IPTmp;
  •         // Setup manual IP address
  •         bzero( &NA, sizeof(NA) );
  •         NA.IPAddr  = inet_addr(LocalIPAddr); //设置IP
  •         NA.IPMask  = inet_addr(LocalIPMask); //设置掩码
  •         strcpy( NA.Domain, DomainName );
  •         NA.NetType = 0;
  •         // Add the address to inteRFace 1
  •         CfgAddEntry( hCfg, CFGTAG_IPNET, 1, 0, sizeof(CI_IPNET), (UINT8 *)&NA, 0 );
  •         // Add the default gateway. Since it is the default, the
  •         // destination address and mask are both zero (we go ahead
  •         // and show the assignment for clarity).
  •         bzero( &RT, sizeof(RT) );
  •         RT.IPDestAddr = 0;
  •         RT.IPDestMask = 0;
  •         RT.IPGateAddr = inet_addr(GatewayIP);
  •         // Add the route
  •         CfgAddEntry( hCfg, CFGTAG_ROUTE, 0, 0,sizeof(CI_ROUTE), (UINT8 *)&RT, 0 );
  •         // Manually add the DNS server when specified
  •         IPTmp = inet_addr(DNSServer);// "0.0.0.0"
  •         if( IPTmp )
  •             CfgAddEntry( hCfg, CFGTAG_SYSINFO, CFGITEM_DHCP_DOMAINNAMESERVER,
  •                          0, sizeof(IPTmp), (UINT8 *)&IPTmp, 0 );
  •     }
  •     // Else we specify DHCP
  •     else
  •     {
  •         CI_SERVICE_DHCPC dhcpc;
  •         // Specify DHCP Service on IF-1
  •         bzero( &dhcpc, sizeof(dhcpc) );
  •         dhcpc.cisargs.Mode   = CIS_FLG_IFIDXVALID;
  •         dhcpc.cisargs.IfIdx  = 1;
  •         dhcpc.cisargs.pCbSrv = &ServiceReport;
  •         CfgAddEntry( hCfg, CFGTAG_SERVICE, CFGITEM_SERVICE_DHCPCLIENT, 0,
  •                      sizeof(dhcpc), (UINT8 *)&dhcpc, 0 );
  •     }
  •     // Configure IPStack/OS Options
  •     // We don't want to see debug messages less than WARNINGS
  •     rc = DBG_ERROR;
  •     CfgAddEntry( hCfg, CFGTAG_OS, CFGITEM_OS_DBGPRINTLEVEL,
  •                  CFG_ADDMODE_UNIQUE, sizeof(uint), (UINT8 *)&rc, 0 );
  •     //
  •     // This code sets up the TCP and UDP buffer sizes
  •     // (Note 8192 is actually the default. This code is here to
  •     // illustrate how the buffer and limit sizes are configured.)
  •     //
  •     /* TCP Transmit buffer size */
  •     rc = 64000;
  •     CfgAddEntry( hCfg, CFGTAG_IP, CFGITEM_IP_SOCKTCPTXBUF,
  •                  CFG_ADDMODE_UNIQUE, sizeof(uint), (uint8_t *)&rc, 0 );
  •     /* TCP Receive buffer size (copy mode) */
  •     rc = 64000;
  •     CfgAddEntry( hCfg, CFGTAG_IP, CFGITEM_IP_SOCKTCPRXBUF,
  •                  CFG_ADDMODE_UNIQUE, sizeof(uint), (uint8_t *)&rc, 0 );
  •     /* TCP Receive limit (non-copy mode) */
  •     rc = 64000;
  •     CfgAddEntry( hCfg, CFGTAG_IP, CFGITEM_IP_SOCKTCPRXLIMIT,
  •                  CFG_ADDMODE_UNIQUE, sizeof(uint), (uint8_t *)&rc, 0 );
  •     // UDP Receive limit
  •     rc = 8192;
  •     CfgAddEntry( hCfg, CFGTAG_IP, CFGITEM_IP_SOCKUDPRXLIMIT,
  •                  CFG_ADDMODE_UNIQUE, sizeof(uint), (UINT8 *)&rc, 0 );3 |7 f8 K) H! u/ c! s

+ U( [$ Y5 S! C/ }: N$ s4 d( _+ i; @. M* H- j7 S
                    
  • do
  •     {
  •             //                       调用起始函数      调用结束函数            调用IP地址设置函数
  •         rc = NC_NetStart( hCfg, NetworkOpen, NetworkClose, NetworkIPAddr );
  •     } while( rc > 0 );
  • ; C. d. W& D6 w) ~* H6 S
  r" S1 p( m; M$ b5 }" j* R! h4 T

& R9 Q) ^# w, Y' ^1 s! S# Q2 |) h        //                       调用起始函数      调用结束函数            调用IP地址设置函数

6 J" r3 t* Y' Z  |  s6 }7 g+ D
        rc = NC_NetStart( hCfg, NetworkOpen, NetworkClose, NetworkIPAddr );# |- t1 V* b' W+ F" x5 P
    } while( rc > 0 );
' V2 s6 x0 G$ W  {/ ^: X% c) x
9 C, C; D6 m2 C2 O6 _
游客,如果您要查看本帖隐藏内容请回复

. X) O0 B( X; n2 l, u& h) ]
4 L' g- d2 S- |6 j; [( [( b: \- [) c7 e, v, j

6 g0 m1 @( P8 }, N" `+ T# J. T$ m' F2 F

该用户从未签到

2#
发表于 2019-10-8 17:31 | 只看该作者
来瞅瞅主核程序之TCP进程。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-25 00:27 , Processed in 0.140625 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表