尊敬的 SupporTeam:
直列式
标准::字符串格式 LogString (const char*格式,...)
{
CONST Int32 ZERO = 0;
std::string strLog ="格式化错误!\n";
va_list args;
va_start (args、format);
char formatMsg[GCProtocol::MAX_LOG_MSG_STRING_SIZE];
int32结果= vsnprintf (formatedMsg、
GCProtocol::MAX_LOG_MSG_STRING_SIZE、
格式、
args);
if (零<结果)
{
strLog = formatMsg;
}
va_end (args);/* TICS !OAL#015允许为空进行记录*/
返回 strLog;
}
我们使用上述函数进行 var arg 格式化
在这种情况下,A2D 值在边界处波动,并使用%f 值(以 cm 为单位的位置,例如10.2)记录 InRange 和 outRange。 我们从两个任务中定期读取 A2D 计数值;由于波动、我们看到 InRange 和 outRange 定期获取日志。 在这种情况下、我们观察到堆栈溢出、如果我们删除了记录%f 值、则可以正常工作。 我们还有很多其他实例、我们使用%f 进行记录、但我们看不到任何问题。
BTW、我们不直接从 Tiva C 基板进行日志记录;我们的记录器实用程序会将字符串发送到支持日志记录的主板。
CCS - 901
编译器版本- TI v18.12.1.LTS
tirtos_tivac_2_16_00_08
有线索吗?
谢谢你。
Abhijit