Demo FunctionalityTwo tasks and a single queue are used to generate a simple execution pattern that can be viewed in the FreeRTOS+Trace graphical interface.
A low priority queue send task repeatedly sends a message to the queue. A higher priority queue receive task repeatedly attempts to read a message from the queue, blocking on the queue read operation when no messages are available. An explanation of the resultant execution pattern is provided below.
A trace monitoring task is also created that prints out a message when it determines that the status of the trace recorder has changed since it last executed.
It should be noted that, because the Windows simulator is being used, the timing information displayed while the application is running, and recorded in the trace log, have no meaningful units.
Building and executing the demo
Accessing the Command ConsoleThe command console uses a UDP socket on IP address 127.0.0.1 and port 5001 to receive command line input, and a UDP socket on the same IP address and port 5002 for output. A UDP console program, such as the free YAT utility, can be used as a UDP interface. Note that 127.0.0.1 is the loopback IP address, so a live network connection is not required.
The required YAT terminal settings
Creating a FreeRTOS+Trace RecordingTo create a trace recording:
Screen capture after the RTOS trace has been started and stopped from the UDP console
Viewing the Trace Recording in FreeRTOS+TraceTo open and view the trace recording:
Viewing the recorded RTOS trace in FreeRTOS+Trace with explanatory annotation
The image above has been annotated with some green numbers to highlight points of interest. Referring to the image above:
Going FurtherThis simple example has only demonstrated the basic functionality. The FreeRTOS+Trace download contains a much more comprehensive FreeRTOS Windows simulator project, along with pre-recorded example trace log files. Visit the Percepio Website for more information.
Copyright (C) 2004-2010 Richard Barry. Copyright (C) 2010-2016 Real Time Engineers Ltd.
Any and all data, files, source code, html content and documentation included in the FreeRTOSTM distribution or available on this site are the exclusive property of Real Time Engineers Ltd.. See the files license.txt (included in the distribution) and this copyright notice for more information. FreeRTOSTM and FreeRTOS.orgTM are trade marks of Real Time Engineers Ltd.