List of tips on what to check when it hangs
I am quite new to FreeRTOS and often find myself doing some changes to my code, only to find it doesnt work anymore…. recognise this? Especially if you change more than just a few lines of code….
So, heres my personal check-list when that happens. Please post also your tips here!
Crash solving for FreeRTOS, AT91SAM7A3-EK and IAR EWARM:
* try to reboot the Eval card
* no bounds check : added too much text to a string (than allocated)?
* no auto size heap: added too much vars for the task heap size?
* some task blocking long times, and locking itself?
* some task in a non-blocking wait, locking other lower tasks?
* vars in a function are only initialised once
…
* increase total heap size if added more tasks, queues, semaphores
* check task prios – someone locking the others?
* check irq levels – someone taking over?
* check rtos tick rate, runing too fast/slow?
* try reboot jtag
* try reboot iar ewarm
* constant meant to be float is defined without decimal point
* connected peripheral cant keep up (115200kbps serial port for example)
* queuSendFromIsr must always start with taskwoken=pdFALSE
* any ISR running too much/fast/wild? pwm… adc… dbgu/usart…
* check the A3 errata section in the datasheet
* could be a bug in an example file, in FreeRTOS or the A3 chip, check the web
List of tips on what to check when it hangs
one more…
* try running in non-debug mode
List of tips on what to check when it hangs
Some of these (variable initialization, etc) are C related rather than FreeRTOS but maybe some others could form part of a check list in the FAQ section?
List of tips on what to check when it hangs
Yes, that would be a good idea. Especially if we get more people contributing and someone really good at this sorting, selecting and explaining…
I do think its quite important to have the non RTOS stuff too…. The most common C errors and also HW related stuff like trying reboot the card, and compiler related like trying non-debug mode. Also to show that not everything is RTOS blame…;-) It could be divided into sections, like RTOS, C/Asm, Compiler/GUI, HW, Misc etc for a complete "FreeRTOS Developers checklist"….
What would be nice is an ordered list, listing the most common problems first (roughly), like rebooting the HW that I have to do all the time… but then the different sections fall…
Perhaps:
1. Try rebot your HW (HW)
2. Higher prio task blocking (RTOS)
3. Variable initialization (C/Asm)
4. xxxx x x x x x x (HW: IAR + AT91)
5. …..
/PM