Tool/software:
Hi, I’m using printf to send data over the SCI interface. Following the suggestion in the post linked below, I simply overrode the write() function as shown:
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;
}
However, when I set printf_support = full, even simple printf() calls fail to print strings—only puts() still works.
Switching to printf_support = nufloat restores basic string output via printf(), I think maybe the issue related to stack or heap space. To test this, I’ve increased both the stack and heap to occupy the entire RAM section:


Compared to the recommended heap size of 0x400, this should be more than sufficient. However, it still doesn’t work. The stack usage is shown below:

The program stuck at this function:

When use nofloat mode, the size is much smaller:

Ultimately, my goal is to use printf to output floating‑point data. Any help would be greatly appreciated.