Micrium Rtos - OSTimeDly not working
When you call OSTimeDly() with a nonzero value, it removes the task from the ready list and records the number of ticks in the task's control block (OS_TCB).  The task will not be made ready to run again until it's tick count gets decremented to zero.

The task's tick count gets decremented when OSTimeTick() executes.  OSTimeTick() should be called periodically at the tick rate.  Your port of the OS needs to provide the mechanism to call OSTimeTick() periodically.  Probably what you need to do is to setup a hardware timer to interrupt periodically at that tick rate.  Then the hardware timer's ISR should call OSTimeTick().