This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F280049C: Can't use printf when set printf_support = full

Part Number: TMS320F280049C


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.