printf with Freertos using atollic lite

tabulous2011 wrote on Wednesday, May 04, 2011:

printf causing an Hardfault exception when using with the Atollic freertos example. Has anyone got this working and if so how ? i.e how was the IO redirect done ?

If i create a new test project without freertos, i dont get the exception and printf outputs ok.

edwards3 wrote on Wednesday, May 04, 2011:

What mechanism do the attolic tools use to output printf text?

tabulous2011 wrote on Wednesday, May 04, 2011:

I’ve overided the

int _write_r(void *reent, int fd, char *ptr, size_t len)

Atollic use the newlib

edwards3 wrote on Wednesday, May 04, 2011:

But how is the output implemented? Where is the output going? A virtual com port, an ITM channel, where?

tabulous2011 wrote on Wednesday, May 04, 2011:

To Uart1, so using the calls

USART_SendData(USART1, (uint8_t) ch);

  /* Loop until the end of transmission */
  while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);

edwards3 wrote on Wednesday, May 04, 2011:

So, it looks like, your question is not really related to printf() but more to do with writing to a serial port.

I would check your stack usage all the same. If you are calling printf() with a small stack then it will probably overflow the stack. That might be all the problem is.

tabulous2011 wrote on Thursday, May 05, 2011:

that was my first thoughts but, after increasing the stack to 0x800 and the problem was still there, i’ve now ruled out the stack.