Build an RTX5 RTOS application with Keil μVision
Introduction
Create and setup Keil MDK project
Initialize the operating system
Create RTOS threads
Build and run the application
Using Event Recorder
Next Steps
Build an RTX5 RTOS application with Keil μVision
Implement the main RTOS thread (app_main), whose role is primarily to start and manage the other threads of the system.
In this example you shall create 3 threads. The number and naming of the threads is arbitrary.
Create app_main
Right click on the Source folder under the FVP target, and Add a new item. Select C file (.c), and create the app_main.c file with the contents below:
#include "cmsis_os2.h"
void thread1(void *);
void thread2(void *);
void thread3(void *);
void app_main (void *argument) {
osThreadNew(thread1, NULL, NULL); // Create thread1
osThreadNew(thread2, NULL, NULL); // Create thread2
osThreadNew(thread3, NULL, NULL); // Create thread3
}
Create threads
You can now implement the functionality of the threads themselves. Start with a simple example… each thread will say hello, and then pause for a period, forever.
Right click on the Source folder under the FVP target, and Add a new item. Select C file (.c), and create the threads.c file with contents below:
#include "cmsis_os2.h"
#include <stdio.h>
void __attribute__((noreturn)) thread1(void *argument){
for(;;){
printf("hello from thread 1\n");
osDelay(1000);
}
}
void __attribute__((noreturn)) thread2(void *argument){
for(;;){
printf("hello from thread 2\n");
osDelay(1000);
}
}
void __attribute__((noreturn)) thread3(void *argument){
for(;;){
printf("hello from thread 3\n");
osDelay(1000);
}
}