工具/软件:TI-RTOS
希望这是一个简单的问题。 我尝试使用静态 IP 地址、但微控制器需要从 EEPROM 读取该地址。 当我尝试运行程序时,固件会在我将*LocalIPAddr 设置为包含 IP 地址的字符串后崩溃。 崩溃意味着它会编译和运行,但在运行时会出现问题,并使用 exit.c 中的 abort 函数终止。
具体而言,我使用此代码将 EEPROM 中的值转换为字符串,并将*LocalIPAddr 设置为该字符串。 在最后一行代码中,如果我将*addresssString 替换为"192.168.3.5",它就会起作用,因此我确信我只是在处理指针时犯了一个愚蠢的错误,或者我在缺少的格式中做了一些错误。
空 readIPAddr (空)
{
uint32_t temp[1];
字符地址[4];
字符地址 String[17];
EEPROMRead (temp、100、sizeof (temp));
地址[0]= temp[0]和255;
地址[1]=(temp[0]>> 8)和255;
地址[2]=(temp[0]>> 16)和255;
地址[3]=(temp[0]>> 24)和255;
sprintf (address 字符串、"%U.%U.%u"、address[3]、address[2]、address[1]、address[0]);
*LocalIPAddr =*addresssString;
TEMP[0]= TEMP[0];
}
readIPAddr 由堆栈线程开始挂钩调用、位于 TI-RTOS >产品> NDK >网络>堆栈挂钩函数下