ndk 的emac_TMS320C6678 MAC address error出错,请问是不是因为两个核的NDK所使用的EMAC channel 相同造成的呢?...
本帖最后由 一只耳朵怪 于 2018-5-22 15:23 编辑
您好,
首先非常感谢您的回答。我所碰到的问题是MAC address 出错,是不是因为两个核的NDK所使用的EMAC channel 相同造成的呢?另外,我在NDK USER'S GUIDE 和 NDK software programmer's reference guide 两篇文档中好像没发现有设置EMAC channel 的API 呀。我把我的代码和错误信息贴在下面,还想麻烦您看一下,指出问题所在。
使用的核为 CORE_0 和 CORE_1 ,两个核单独启动 即: Ipc.procSync = Ipc.ProcSync_NONE; // in file.cfg
错误信息如下:
[C66xx_0] EVM in StaticIP mode at 192.168.0.218
[C66xx_0] QMSS successfully initialized
[C66xx_0] CPPI successfully initialized
[C66xx_0] PASS successfully initialized
[C66xx_0] Ethernet subsystem successfully initialized
[C66xx_0] eventId : 48 and vectId : 7
[C66xx_0] Registration of the EMAC Successful, waiting for link up ..
[C66xx_0] run in daemon
[C66xx_0] receive :
[C66xx_1] QMSS successfully initialized
[C66xx_1] CPPI successfully initialized
[C66xx_1] PASS successfully initialized
[C66xx_1] Ethernet subsystem successfully initialized
[C66xx_1] eventId : 48 and vectId : 7
[C66xx_1] Timeout waiting for reply from PA to Pa_addMac command
[C66xx_1] Add_MACAddress faiLED
[C66xx_1] Error: Unable to register the EMAC
CORE_0 网络配置代码:
int RunUDP_sever()
[
HANDLE hCfg;
CI_IPNET NA;
IPN IPTmp;
int nStatus, nRecv;
char *HostName = "UDP_SEVER_0";
char *DomainName = "demo0.net"; /* Not used when using DHCP */
char *DNSServer = "0.0.0.0"; /* Used when set to anything but zero */
nStatus = NC_SystemOpen( NC_PRIORITY_LOW, NC_OPMODE_INTERRUPT );
IF(nStatus != NC_OPEN_SUCCESS)
[
#ifdef UDP_SEVER_debug
printf("NC_SystemOpen Failed (%d)\n",nStatus);
#endif
goto close_n_exit;
]
hCfg = CfgNew();
if( !hCfg )
[
#ifdef UDP_SEVER_DEBUG
printf("Unable to create configuration\n");
#endif
goto close_n_exit;
]
/* Validate the length of the supplied names */
if( strlen( DomainName ) >= CFG_DOMAIN_MAX ||
strlen( HostName ) >= CFG_HOSTNAME_MAX )
[
#ifdef UDP_SEVER_DEBUG
printf("Domain or Host Name too long\n");
#endif
goto close_n_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 );
/* Setup an IP address to this EVM */
bzero( &NA, sizeof(NA) );
NA.IPAddr = inet_addr("192.168.0.218");
NA.IPMask = inet_addr("255.255.255.0");
strcpy( NA.Domain, DomainName );
/* Add the address to inteRFace 1 */
CfgAddEntry( hCfg, CFGTAG_IPNET, 1, 0, sizeof(CI_IPNET), (UINT8 *)&NA, 0 );
/* Manually add the DNS server when specified */
IPTmp = inet_addr(DNSServer);
if( IPTmp )
CfgAddEntry( hCfg, CFGTAG_SYSINFO, CFGITEM_DHCP_DOMAINNAMESERVER, 0, sizeof(IPTmp), (UINT8 *)&IPTmp, 0 );
/* Set debug message level */
nStatus = DBG_WARN;
CfgAddEntry( hCfg, CFGTAG_OS, CFGITEM_OS_DBGPRINTLEVEL, CFG_ADDMODE_UNIQUE, sizeof(uint), (UINT8 *)&nStatus, 0 );
// UDP Receive limit
nRecv = 8192;
CfgAddEntry( hCfg, CFGTAG_IP, CFGITEM_IP_SOCKUDPRXLIMIT,
CFG_ADDMODE_UNIQUE, sizeof(uint), (UINT8 *)&nRecv, 0 );
do
[
nStatus = NC_NetStart( hCfg, NetworkOpen, NetworkClose, NetworkIPAddr );
] while( nStatus > 0 );
#ifdef UDP_SEVER_DEBUG
platform_write ("Shutting things down\n");
#endif
close_n_exit:
CfgFree( hCfg );
NC_SystemClose();
return 0;
]
static HANDLE hDaemon=0;
static void NetworkOpen()
[
hDaemon = DaemonNew( SOCK_DGRAM, 0, 1062, RecvImg, OS_TASKPRIHIGH, OS_TASKSTKNORM, 0, 1 );//7//OS_TASKPRINORM
]
CORE_1网络配置代码:
int UDP_Sever()
[
HANDLE hCfg;
CI_IPNET NA;
IPN IPTmp;
int nStatus, nRecv;
char *HostName = "UDP_SEVER";
char *DomainName = "demo.net"; /* Not used when using DHCP */
char *DNSServer = "0.0.0.0"; /* Used when set to anything but zero */
nStatus = NC_SystemOpen( NC_PRIORITY_LOW, NC_OPMODE_INTERRUPT );
if(nStatus != NC_OPEN_SUCCESS)
[
#ifdef UDP_SEVER_DEBUG
printf("NC_SystemOpen Failed (%d)\n",nStatus);
#endif
goto close_n_exit;
]
hCfg = CfgNew();
if( !hCfg )
[
#ifdef UDP_SEVER_DEBUG
printf("Unable to create configuration\n");
#endif
goto close_n_exit;
]
/* Validate the length of the supplied names */
if( strlen( DomainName ) >= CFG_DOMAIN_MAX ||
strlen( HostName ) >= CFG_HOSTNAME_MAX )
[
#ifdef UDP_SEVER_DEBUG
printf("Domain or Host Name too long\n");
#endif
goto close_n_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 );
/* Setup an IP address to this EVM */
bzero( &NA, sizeof(NA) );
NA.IPAddr = inet_addr("192.168.0.217");
NA.IPMask = inet_addr("255.255.255.0");
strcpy( NA.Domain, DomainName );
/* Add the address to interface 1 */
CfgAddEntry( hCfg, CFGTAG_IPNET, 1, 0, sizeof(CI_IPNET), (UINT8 *)&NA, 0 );
/* Manually add the DNS server when specified */
IPTmp = inet_addr(DNSServer);
if( IPTmp )
CfgAddEntry( hCfg, CFGTAG_SYSINFO, CFGITEM_DHCP_DOMAINNAMESERVER, 0, sizeof(IPTmp), (UINT8 *)&IPTmp, 0 );
/* Set debug message level */
nStatus = DBG_WARN;
CfgAddEntry( hCfg, CFGTAG_OS, CFGITEM_OS_DBGPRINTLEVEL, CFG_ADDMODE_UNIQUE, sizeof(uint), (UINT8 *)&nStatus, 0 );
// UDP Receive limit
nRecv = 8192;
CfgAddEntry( hCfg, CFGTAG_IP, CFGITEM_IP_SOCKUDPRXLIMIT,
CFG_ADDMODE_UNIQUE, sizeof(uint), (UINT8 *)&nRecv, 0 );
do
[
nStatus = NC_NetStart( hCfg, NetworkOpen, NetworkClose, NetworkIPAddr );
] while( nStatus > 0 );
#ifdef UDP_SEVER_DEBUG
platform_write ("Shutting things down\n");
#endif
close_n_exit:
CfgFree( hCfg );
NC_SystemClose();
return 0;
]
static HANDLE hDaemon=0;
static void NetworkOpen()
[
// Create our local server
hHello = DaemonNew( SOCK_DGRAM, 0, 7, dtask_udp_hello, OS_TASKPRINORM, OS_TASKSTKNORM, 0, 1 );
]
0
ndk 的emac_TMS320C6678 MAC address error出错,请问是不是因为两个核的NDK所使用的EMAC channel 相同造成的呢?...相关推荐
- Mac Proxy error: Could not proxy request
Android开发的Vue学习之路 提示:记录一些学习的知识路径,以及过程中遇到的问题 文章目录 Android开发的Vue学习之路 一.问题记录 1.Mac Proxy error: Could n ...
- macbook 重装系统服务器数据出错,苹果ARM版Mac重装系统出错?这有一份官方解决方案...
原标题:苹果ARM版Mac重装系统出错?这有一份官方解决方案 [CNMO新闻]今年11月,苹果正式发布搭载Apple M1芯片的Mac.该产品亮相后,有网友发现新款Mac在重装系统时会出现" ...
- 什么是MAC地址及作用管理教程——What is the MAC address and role management tutorial
如果你是通过校园网或小区接入Internet,那么一定听说过MAC地址.什么是MAC地址,MAC地址在这种局域网环境中究竟起到什么作用?下面就来介绍一下MAC地址的知识,MAC地址和IP地址的区别以及 ...
- 修改MAC ADDRESS
一.简单的修改方法 其实不论 98 还是 2000 ,自身都已经提供了更改网卡地址的功能,只是平时大家都没上这方面想,因此没有注意到而以,很简单的哦 ..... 现在我们先来看看 WIN2000 .在 ...
- diffrences between ARP table and MAC address table
ARP table is layer3 address to layer2 address mapping MAC address table is a layer2 address to inter ...
- mac address 的一些操作
1.如何描述 MAC地址 最常用的有两种: 1.字符串 char *addr="52:54:00:29:e4:4b"; // 长度17,有效值都是16进制表示的 2.数组 /* M ...
- 解决:Mac brew Error: Your CLT does not support macOS 11.2
解决:Mac brew Error: Your CLT does not support macOS 11.2. 文章目录 解决:Mac brew Error: Your CLT does not s ...
- Ubiquiti MAC Address Changer 3.0 Crack
Ubiquiti MAC Address Changer,目前mac address changer的版本有很多,本次发布的是V3版本,这是一款功能非常强大的修改网卡mac地址软件,基本上所有的网卡M ...
- tmac v6设置中文_Technitium MAC Address Changer(mac地址修改器) 免费版v6.0.7
Technitium MAC Address Changer是一款用于更改变换机器MAC地址的软件.此软件能分析你的网络连接状态和使用的MAC地址,通过软件能将本机真实的MAC地址进行伪装,保护你的机 ...
最新文章
- 层次聚类算法原理总结
- [编程题]字符串最后一个单词的长度
- 2行代码实现小程序分享到朋友圈功能
- 共享寒冬中的常青树,2 次获得阿里投资的衣二三“欲隐藏”的数据真相 | 深度案例...
- 商汤科技2020年校园招聘丨以你所AI,创无界未来
- Markdown 基础学习
- KVM中断虚拟化(一)
- android系统优化(18)--系统性能优化第5季
- Java基础:Map
- win10和深度linux双系统,深度系统(deepin)与win10双系统切换设置
- / ./ ../相对路径详细解释
- gcd算法以及exgcd
- 聊天机器人之知识图谱 Freebase 简介
- 软考系统集成项目管理工程师模拟题
- VR全景如何应用在家装中?体验真实的家装效果
- 学生成绩预测模型_华中农大学子在美国大学生数学建模竞赛中获佳绩
- 【管卡婆技术服务支持】
- html认识时间游戏,认识时间教学设计
- Voice API for mobile 移动应用开发可用的API
- NQI一站式服务平台,质量基础设施一站式服务系统开发方案