deleting twice crashes the application
Posted by mkrug
on March 1, 2008
in my application serveral tasks could delete one task (say: taks_to_delete). Additionally I have quite a high interrupt load that starts (unblock) most of my tasks. So the following could happen
1.) a tasks issues the command vTaskDelete(task_to_delete_handle)
2.) before the command gets completed a interrupt occurs that will unblock a high priority task
3.) this task also issues the command vTaskDelete(task_to_delete_handle)
In that cases it seems to me that my application crashes. I assume it happens when vTaskDelete() call try's to delete a task that is not existing anymore. So far I had no idea how to verify my assumption. So here are my questions:
a) Is there a possibility to 'survive' a vTaskDelete() call that try's to delete a tasks that is not existing anymore ?
b) is there a possibility to check which RTOS API-call causes the system crash ?
RE: deleting twice crashes the application
Posted by Adrian Carpenter
on March 1, 2008
If you're using an ARM processor and "by crash" you've ended up in an abort handler, then r14 gives the address that caused the abort. You can then work back (using your map file) to what caused the abort.
Copyright (C) 2004-2010 Richard Barry. Copyright (C) 2010-2016 Real Time Engineers Ltd.
Any and all data, files, source code, html content and documentation included in the FreeRTOSTM distribution or available on this site are the exclusive property of Real Time Engineers Ltd..
See the files license.txt (included in the distribution) and this copyright notice for more information. FreeRTOSTM and FreeRTOS.orgTM are trade marks of Real Time Engineers Ltd.