Thread 中讨论的其他器件:SYSBIOS
大家好、
我所面临的这个问题与 https://e2e.ti.com/support/microcontrollers/other/f/908/t/766896有关、
使用闪存中的 MAC 地址
TI.SYSBIOS.family.ARM.m3/Hwi:第143行:E_ALREADYDefinited:Hwi 已定义:INTR# 56
00000.000 ExecStart:已打开
00000.000 DHCPOpen:NIMUIOCTL (NIMU_GET_DEVICE_MAC)失败、错误代码为-22
void NetStart(){
//debug ("NetStart Callback\r\n");
}
void netStop (){
//debug ("NetStop Callback\r\n");
}
void serviceReport (uint a、uint b、uint c、handle cfg){
//debug ("NetStop Callback\r\n");
}void serviceReport (uint a、uint b、uint c、uint c、handle cfg){//debug ('/////udeServiceReport\r\n\r\n
);}udeNet (npinuipeNet、'nudeNet、'nudeNet 连接
)
/*将我们的全局主机名添加到 hCfg (在所有已连接的域中声明)*/
CfgAddEntry (hCfg、CFGTAG _SYSINFO、CFGITEM_DHCP_HOSTNAME、0、
strlen (主机名)、
(uint8 *)主机名、0);
/*使用 DHCP 获取接口1上的 IP 地址*/
{
CI_SERVICE_DHCPc dhcpc;
uint8 dhcp_options[]=
{
DHCPPT_SUBNET_MASK、
};
/*如果由"IfIdx"指定,则指定 DHCP 服务打开*/
bzero (&dhcpc、sizeof (dhcpc));
dhcpc.cisargs.Mode = 1;
dhcpc.cisargs.IfIdx = 1;
dhcpc.cisargs.pCbSrv =&serviceReport;
dhcpc.param.pOptions = DHCP_OPTIONS;
dhcpc.param.len = 1;
CfgAddEntry (hCfg、CFGTAG 服务、CFGITEM_SERVICE_DHCPCLIENT、0、
sizeof (dhcpc)、(uint8 *)&dhcpc、0);
}
}
void configIpInitStatic (handle hCfg)
{
RemottaConfig * rc = getRemottaConfig ();
char * DomainName ="scientt.scom";
char ipAddress[20]、netmask[20]、gateway[20];
debug ("CONFIGURANDO static IP\r\n");
/*将我们的全局主机名添加到 hCfg (在所有已连接的域中声明)*/
CfgAddEntry (hCfg、CFGTAG _SYSINFO、CFGITEM_DHCP_HOSTNAME、0、
strlen (主机名)、
(uint8 *)主机名、0);
/*在接口1上手动配置 IP 地址*/
{
CI_IPNet NA;
CI_route RT;
/*设置手册 IP 地址*/
bzero (不适用、sizeof (不适用));
getStringAddressFromInt (RC->configData.ethParam.ipAddress、ipAddress);
getStringAddressFromInt (RC->configData.ethParam.networkMask,网络掩码);
na.ipaddr = inet_addr (ipAddress);
na.ipMask = inet_addr (netmask);
strcpy (na.Domain、DomainName);
NA.NetType = 0;
CfgAddEntry (hCfg、CFGTAG _IPNet、1、0、
sizeof (CI_IPNet)、(uint8 *)&nA、0);
/*
*添加默认网关。 因为它是默认值、所以
*目标地址和掩码都为零(我们继续操作
*和为清晰起见显示了分配)。
*
bzero (&RT、sizeof (RT));
rt.IPDestAddr = 0;
rt.IPDestMask = 0;
getStringAddressFromInt (RC->configData.ethParam.gateway、网关);
rt.IPGateAddr = inet_addr (网关);
CfgAddEntry (hCfg、CFGTAG _route、0、0、
sizeof (CI_route)、(uint8 *)&RT、0);
}
}
void configUdpInit (handle hCfg)
{
{
int receiveBufSize = 2048;
CfgAddEntry (hCfg、CFGTAG _IP、CFGITEM_IP_SOCKUDPRXLIMIT、
CFG_ADDMODE_UNIQUE、sizeof (uint)、(uint8 *)&receiveBufSize、0);
}
}
void configTcpInit(句柄 hCfg)
{
{
int transmitBufSize = 2048;
CfgAddEntry (hCfg、CFGTAG _IP、CFGITEM_IP_SOCKTCPTXBUF、
CFG_ADDMODE_UNIQUE、sizeof (uint)、(uint8 *)&transmitBufSize、0);
}
{
int receiveBufSize = 2048;
CfgAddEntry (hCfg、CFGTAG _IP、CFGITEM_IP_SOCKTCPRXBUF、
CFG_ADDMODE_UNIQUE、sizeof (uint)、(uint8 *)&receiveBufSize、0);
}
{
int receiveBufLimit=2048;
CfgAddEntry (hCfg、CFGTAG _IP、CFGITEM_IP_SOCKTCPRXLIMIT、
CFG_ADDMODE_UNIQUE、sizeof (uint)、(uint8 *)&receiveBufLimit、0);
}
}
extern void llTimerTick();
int NetworkConfig (void)
{
int ret;
handle hCfg;
RemottaConfig * rc = getRemottaConfig ();
Clock_Params startclockParams;
debug ("\r\nNetworkConfig Configuracion - Initialization\r\nNC_SystemOpen\r\n");
//
创建时钟周期= timclockpick.Params;//
创建时钟周期 configParams,NULL);
ret = NC_SystemOpen (NC_Priority_low,NC_OPMODE_INTERRUPT);
if (ret)
{
sprintf (_message,"NC_SystemOpen Failed (%d),"n";
debug (_message);
return -1;
}
hCfg = CfgNew ();
if
nc
(nc)
Configuration (nc);unt) configh (nc);配置为静态配置(nc);(nc)
/*添加 NDK 低优先级任务堆栈大小的配置设置。 *
int STACKSIZE = 1024;
CfgAddEntry (hCfg、CFGTAG _OS、CFGITEM_OS_TASKLOW、
CFG_ADDMODE_UNIQUE、sizeof (uint)、(uint8 *)&STACKSIZE、0);
/*添加 NDK 标准优先级任务堆栈大小的配置设置。 *
STACKSIZE = 1024;
CfgAddEntry (hCfg、CFGTAG _OS、CFGITEM_OS_TASKSTKNORM、
CFG_ADDMODE_UNIQUE、sizeof (uint)、(uint8 *)&STACKSIZE、0);
/*添加 NDK 高优先级任务堆栈大小的配置设置。 *
STACKSIZE = 1024;
CfgAddEntry (hCfg、CFGTAG _OS、CFGITEM_OS_TASKSTHIGH、
CFG_ADDMODE_UNIQUE、sizeof (uint)、(uint8 *)&STACKSIZE、0);
//
//使用此配置启动系统
//
//我们继续启动,直到函数返回小于1。 这允许
//我们有一个“reboot”命令。
//
debug ("NC_NetStart\r\n");
do
{
ret = NC_NetStart (hCfg、NetStart、netStop、openConnections);
}while (ret > 0);
sprintf (_message、"NC_NetStart retCode =%d\r\n"、
完成);r (_message);// Delete Configuration (
nc);close
(nc)–return (nc);(nc) debug (nc);turn (nc
空 startupTask (UArg0、UArg0 arg1){
// NetworkConfig()之前的代码
;
//
}之后的代码
提前通知 Tks
莱安德罗
