printf with Freertos using atollic lite

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.

printf with Freertos using atollic lite

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

printf with Freertos using atollic lite

I’ve overided the int _write_r(void *reent, int fd, char *ptr, size_t len) Atollic use the newlib

printf with Freertos using atollic lite

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

printf with Freertos using atollic lite

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);

printf with Freertos using atollic lite

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.

printf with Freertos using atollic lite

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.