osMutexDef( Mutex ); osMutexId mutex; void Thread0( void * arg); void Thread1( void * arg); osThreadDef( Thread0, Thread0, osPriorityNormal, 512 ); osThreadDef( Thread1, Thread1, osPriorityAboveNormal, 512 ); void Thread0( void * arg) { while(1) { osMutexWait( mutex, osWaitForever ); osDelay( 10 ); osMutexRelease( mutex ); osDelay( 10 ); } } void Thread1( void * arg) { while(1) { osMutexWait( mutex, osWaitForever ); osDelay( 10 ); osMutexRelease( mutex ); osDelay( 10 ); } } int main( void ) { osKernelInitialize(); osThreadCreate( osThread(Thread0), (void *)100 ); osThreadCreate( osThread(Thread1), (void *)200 ); mutex = osMutexCreate( osMutex(Mutex) ); osKernelStart(); return 0; }