Different task priorities are possible in FreeRTOS. Therefore, the netX peripheral driver needs to operate as a subordinate component. That's why it is strongly recommended using the FreeRTOS mutex implementation for the netX peripheral driver instead of the original mutex implementation. Another benefit of using the FreeRTOS mutex is, that it supports concepts such as priority inheritance.
Since FreeRTOS supports dynamic and static memory management, there are basically two options: a dynamic mutex or a static mutex. Currently, only the dynamic mutex is supported (therefore we need a heap structure).
Dynamic Mutex Implementation
...