mbed official
/
cmsis_rtos_mutex
Basic example showing the CMSIS-RTOS mutex API
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "mbed.h" 00002 #include "cmsis_os.h" 00003 00004 osMutexId stdio_mutex; 00005 osMutexDef(stdio_mutex); 00006 00007 void notify(const char* name, int state) { 00008 osMutexWait(stdio_mutex, osWaitForever); 00009 printf("%s: %d\n\r", name, state); 00010 osMutexRelease(stdio_mutex); 00011 } 00012 00013 void test_thread(void const *args) { 00014 while (true) { 00015 notify((const char*)args, 0); osDelay(1000); 00016 notify((const char*)args, 1); osDelay(1000); 00017 } 00018 } 00019 00020 void t2(void const *argument) {test_thread("Th 2");} 00021 osThreadDef(t2, osPriorityNormal, DEFAULT_STACK_SIZE); 00022 00023 void t3(void const *argument) {test_thread("Th 3");} 00024 osThreadDef(t3, osPriorityNormal, DEFAULT_STACK_SIZE); 00025 00026 int main() { 00027 stdio_mutex = osMutexCreate(osMutex(stdio_mutex)); 00028 00029 osThreadCreate(osThread(t2), NULL); 00030 osThreadCreate(osThread(t3), NULL); 00031 00032 test_thread((void *)"Th 1"); 00033 }
Generated on Tue Jul 12 2022 11:40:12 by 1.7.2