You are now ready to build and run the application.
The method and capabilities of Keil MDK and Arm Development Studio are quite different. Refer to the appropriate section below.
Save all files, and click build (F7) the example.
Click Debug (Ctrl+F5) to launch the FVP, and put the IDE into debug mode.
View > Watch Windows > RTX RTOS) to observe the RTOS features.View > Serial Windows > Debug (printf)) to observe the printf output.Click Run (F5) to start the application, and after a short time, click Stop.
Observe in the RTX RTOS view that the threads have been created. Two other threads, osRtxIdleThread and osRtxTimerThread will also be created.

However no output is seen in the printf viewer. This is because semihosting is not supported. You will learn how to address this in the next section.
Exit the debug session (Ctrl+F5).
Save all files, then right-click on the project, and select Build Project.
A .axf file will be generated in the Configuration Name folder.
You must now create a Debug Configuration:
File > New > Model Connection.MPS2_Cortex-M4 from the selection of FVPs Installed with Arm DS.Files tab, browse for your .axf image.Debugger tab, select Debug from symbol (main)OS Awareness tab, select Keil CMSIS-RTOS RTX from the pull-down.Apply to save all settings, then click Debug.Debug Control pane.When debugging, use the OS Data view to observe RTOS information. Open from the Window > Show View menu. Use the pull down to select different categories.

For thread aware debug, right-click on the debug connection in the Debug Control view, and select Display threads.

You will see the printf() output in Target Console pane.
hello from thread 1
hello from thread 2
hello from thread 3
hello from thread 1
hello from thread 2
...