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
...