微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > DSP学习交流 > 基础(十五):SYSBIOS-NDK(2)

基础(十五):SYSBIOS-NDK(2)

时间:10-02 整理:3721RD 点击:

上一篇讲了对NDK的初始化与一些基本的配置,这一次讲一下静态IP 配置。

IP地址最长是使用16个字节(包括数字与标点),如:192.168.100.100.

所以要先定义存储IP地址的数组:

char IPAddr[16];

除此之后,还有网关与子网掩码,也是最长16个字节(包括数字与标点),定义对应的缓存。

char IPMask[16];

char IPGateway[16];

这几个值都在通过串口进行的配置,具体的程序如下:


  1.             char IPAddr[16];
  2.         platform_write("\r\nInput IP address(Example 10.0.5.2)\n");
  3.         platform_uart_read(PLATFORM_UART0, IPAddr);

  4.             char IPMask[16];
  5.         platform_write("\r\nInput subnet mask(Example 255.255.255.0)\n");
  6.         platform_uart_read(PLATFORM_UART0, IPMask);

  7.             char IPGateway[16];
  8.         platform_write("\r\nInput default gateway(Example 10.0.5.1)\n");
  9.         platform_uart_read(PLATFORM_UART0, IPGateway);

复制代码


在此之前,有两个结构体要说一下,它们分别是CI_IPNET 与 CI_ROUTE 。

CI_IPNET结构体成员为:



其中NetType有三个值可以配置:



CI_ROUTE结构体为网关路由结构体,其成员有:



首先先通过bzero函数,将两个结构体清零。

通过inet_addr函数,将之前定义的IPAddr、IPMask、赋值给CI_IPNET 结构体,通过strcpy 函数将DomainName赋值给CI_IPNET的最后一个成员Domain[CFG_DOMAIN_MAX]。

相对于CI_ROUTE结构体赋值也是类似的,最后将两个结构体赋值完成后,将这两个结构体添加到上一篇的HANDLE句柄中。


  1. CfgAddEntry(hCfg, CFGTAG_IPNET, 1, 0, sizeof(CI_IPNET), (UINT8 *)&NA, 0);
  2. CfgAddEntry(hCfg, CFGTAG_ROUTE, 0, 0, sizeof(CI_ROUTE), (UINT8 *)&RT, 0);
  3. CfgAddEntry(hCfg, CFGTAG_SYSINFO, CFGITEM_DHCP_DOMAINNAMESERVER, 0, sizeof(IPTmp), (UINT8 *)&IPTmp, 0);

复制代码


还要配置 DNS 服务器,前面已经定义了DNS为:


char *DNSServer    = "114.114.114.114";

  1. CfgAddEntry(hCfg, CFGTAG_SYSINFO, CFGITEM_DHCP_DOMAINNAMESERVER, 0, sizeof(IPTmp), (UINT8 *)&IPTmp, 0);

复制代码


这样NDK的静态IP就配置好了。

由于这几篇都是NDK的讲解与使用方法的说明,在NDK的最后一篇将把所有的源码与二进制文件上传。



Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top