Idle Task restrictions

HI, I plan to use Idle Task for different house keeping activities. The first think I plan to implement is de-fragmentation of the external SPI Flash. For this purpose I need to initiate sector erase operation. Flash is used by a number of tasks and arbitration is done with mutex. My question is if I can use mutex from Idle Task. I understand I can’t wait on mutex from Idle Task but can i query/acquire the mutex with xTicksToWait=0. If Idle Task takes the semaphore won’t in cause to dead lock once another higher priority task will attempt to take it and will block on it? What restrictions should be considered at all in Idle Task? I understand I can’t just treat it as a task with lowest possible priority? Thanks.

Idle Task restrictions

Taking a semaphore with a block time of 0 is fine. Best to use a mutex rather than a standard semaphore because doing so will temporarily raise the priority of the idle task should a higher priority task attempt to take the same mutex. Regards.