deleting twice crashes the application

mkrug wrote on Saturday, March 01, 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 ?

Best Regards

adriancarpenter wrote on Saturday, March 01, 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.