请教:msp430(iar)工程加入FreeRTOS相关代码后printf函数无法打印。
本帖最后由 擦鞋匠 于 2021-1-21 18:44 编辑如题:
我使用msp430 + iar。
描述:
未使用FreeRTOS,printf函数正常输出。以下就是我的重定向函数:
int putchar(int ch)
{
if (ch == '\n') {
UCA1TXBUF = 0x0d;
while (!(UCA1IFG & UCTXIFG));
}
UCA1TXBUF = ch;
while (!(UCA1IFG & UCTXIFG));
return (ch);
}
使用FreeRTOS后,printf函数无法打印。
备注1:由于我的printf函数仅在一个任务中使用(仅在该任务中使用printf函数,并且printf重定向所使用的串口也没有用作其它用途),因此我没有对printf函数以及其资源进行资源保护。
备注2:在任务中调用printf函数添加临界区保护也没有任何作用,相关代码如下:
portENTER_CRITICAL();
printf("test\r\n");
portEXIT_CRITICAL();
请各位大神帮忙分析下:为什么printf函数不能打印?不胜感激! 直接串口输出呢 ronic 发表于 2021-1-21 19:09
直接串口输出呢
不放在任务中,在OS调度开启之前,pintf函数工作正常(这就类似于未使用OS)。 任务栈的 size。
页:
[1]