RTOS example - using stdio_mutex controlling the access to printf(). Note that this is necessary only for Cortex-M0 MCU-s
main.cpp
- Committer:
- cspista
- Date:
- 2022-02-24
- Revision:
- 0:fe1656248d2b
File content as of revision 0:fe1656248d2b:
#include "mbed.h"
#include "rtos.h"
Serial pc(USBTX,USBRX); //UART via ST-Link
Mutex stdio_mutex;
void notify(const char* name, int state)
{
stdio_mutex.lock();
pc.printf("%s: %d\n\r", name, state);
stdio_mutex.unlock();
}
void test_thread(void const *args)
{
while (true) {
notify((const char*)args, 0);
Thread::wait(1000);
notify((const char*)args, 1);
Thread::wait(1000);
}
}
int main()
{
pc.baud(115200);
Thread t2(test_thread, (void *)"Th 2");
Thread t3(test_thread, (void *)"Th 3");
test_thread((void *)"Th 1");
}