工具/软件:
大家好、 我使用 printf 通过 SCI 接口发送数据。 根据下面链接的帖子中的建议,我简单地推翻了 write () 函数,如下所示:
int write(int dev_fd, const char *buf, unsigned count) {
unsigned i;
/*-----------------------------------------------------------------------*/
/* Output character-by-character */
/*-----------------------------------------------------------------------*/
for (i = 0; i < count; i++) SCI_writeCharBlockingFIFO(mySCIA_BASE, buf[i]);
return count;
}
但是,当我设置时printf_support = full,即使是简单的printf()调用也无法打印字符串puts(),但仍然有效。
切换到printf_support = nufloat恢复基本的字符串输出通过printf(),我认为可能是与堆栈或堆空间有关的问题。 为了测试这一点、我增加了栈和堆以占用整个 RAM 部分:


与建议的堆大小 0x400 相比、这应该足够了。 但是、它仍然不起作用。 栈使用情况如下所示:

程序卡在这个函数上:

当使用 nofloat 模式时、大小会小得多:

最后、我的目标是使用printf输出浮点‑点数据。 如有任何帮助、将不胜感激。