请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:LAUNCHXL2-RM57L 工具/软件:Code Composer Studio
您好!
为了进行调试,我想将 printf()与 SCI2结合使用。 为了使调试更易于使用,建议实施 sci_printf()函数:
函数 sci_printf()。 但是如果我尝试使用它,则会在 vsnprintf()部分使用"DataEntry"中断的控制器 crashs。 我尝试增加堆栈+堆、但没有区别。
这是我的主函数。
int sbcMain (void)
{
sciInit();
gioInit();
gioSetBit (gioPORTB、6、gioGetBit (gioPORTB、6)^ 1);
//工作
uint8* text ="sciDisplayTest";
sciDisplayText (sciREG1、text、sizeof (text));
//这是一个崩溃的地方... b DataEntry
SCI_printf ("测试%d"、42);
if (xTaskCreate (vTaskHeartbeat、"vTaskHeartbeat "、configMINIMAL_STACK_SIZE、
null、
1、&xTask1Handle)!= pdTRUE)
{
/*无法创建任务*/
while (1)
;
}
if (xTaskCreate (vTask1、"Task1"、configMINIMAL_STACK_SIZE、NULL、1、
&xTask2Handle)!= pdTRUE)
{
/*无法创建任务*/
while (1)
;
}
vTaskStartScheduler();
while (42)
;
返回0;
}
int sci_printf (const char *_format、...)
{
字符 str[128];
int length =-1;
va_list argList;
va_start (argList、_format);
//长度= snprintf (str、sizeof (str)、_format、argList);
长度= vsnprintf (str、 sizeof (str)、_format、argList);
VA_END (argList);
如果(长度> 0)
{
sciSend (sciREG1、(unsigned) length、(unsigned char*) str);
}
}
您能否为调试提供任何提示?