I works for quite a while now with FreeRTOS, and I have made a design with an Atmel AT91SAM7X256. I had used for a starting point the lwIP_Demo_Rowley_ARM7 port, as I work with gcc on a Linux desktop.
I use several interrupts which interact with the OS by using the XX_from_ISR functions.
I use the following at91sam7x device : aic, emac, pwm, spi, timer, serial, dbgu, twi.
All was very friendly until I tried to use my new design without any developping device. I found then with some fears that if I disconnect my JTAG Olimex Arm-usb-ocd from my developping board, the system become very unstable. Sometimes it works for few seconds, sometimes it crash immediately.
Firstly, I check my task’s stack size, but it doesn’t seem to be undersized.
Secondly, I thought about some noise problem, or interrupt problems. I found there could be spurious interrupts and add a new interrupt handler to manage them. As I put a counter in it and as it has not solve my problem, I know now it must be something else.
As it is very difficult to analyse a problem which arise only when you haven’t debugging tools on the board, I am a little bit confuse.
Does anybody have some ideas on what I can check in my application. Any remarks or suggestions will be very useful for me.