Code crashes when a task runs continuously...

anonymous wrote on Tuesday, January 15, 2013:

Does this sound familiar to anyone, and does anyone have any ideas on where to start?
My code runs fine for hours without issues, but if I set one task to run continuously the code crashes within 15 seconds. (it varies from 1-20).  The hard fault handler says that it is from the FreeRTOS code, but it varies which section.   I realize I didn’t give much information, but I’m not sure where to start. Any advice would be great.

Thanks
Sam

rtel wrote on Tuesday, January 15, 2013:

Please always ensure to say which port you are using.

What do you mean by “running continuously”?  Do you mean without ever blocking?  If so, what is the task’s priority.

Have you been through the My Application Does Not Run, What Could Be Wrong FAQ?

Regards.

anonymous wrote on Tuesday, January 15, 2013:

Hi Richard,

I’m using Version 6.1.1
It’s the default compiler for uVision 4 from Keil.
It’s on a STM32F207 (ArmCortex M3)

I just determined that if I comment out a section of code which contains snprintf and strncat’s the code runs without crashing. It appears that if a context switch happened during this code, the device would crash.  I will investigate further, and let you know if I cannot figure it out.

for (i = 0; i < 8; i++) {
   snprintf(m2String,M2STRING_LENGTH,"%X\t",gpi_ext_bytes_);
   strncat(mString,m2String,MSTRING_LENGTH - strlen(mString));   
}

Thanks for your quick reply,
Sam

_

anonymous wrote on Tuesday, January 15, 2013:

Ah, looks like I was going past the bounds of a string array. I see my bug in the strncat function.   Sorry to blame the RTOS!   

Just weird that I never had a problem except when I had a task that didn’t block.  *shrug*   I hope I didn’t waist anyone’s time. 

Sam