mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-10-14 00:37:44 -04:00
Added TraceRecorder also in IAR project for CORTEX_MPS2_QEMU_IAR_GCC demo (#1325)
* * Added TraceRecorder also in IAR project for demo CORTEX_MPS2_QEMU_IAR_GCC. * * Added TraceRecorder also in IAR project for demo CORTEX_MPS2_QEMU_IAR_GCC.
This commit is contained in:
parent
3d927557dc
commit
617657c57f
4 changed files with 200 additions and 8 deletions
|
@ -136,6 +136,8 @@
|
|||
#define configENABLE_BACKWARD_COMPATIBILITY 0
|
||||
|
||||
/* TODO TraceRecorder (Step 5): Include trcRecorder.h at the end of FreeRTOSConfig.h. */
|
||||
#include "trcRecorder.h"
|
||||
#ifndef __IASMARM__
|
||||
#include "trcRecorder.h"
|
||||
#endif
|
||||
|
||||
#endif /* FREERTOS_CONFIG_H */
|
||||
|
|
|
@ -15,27 +15,39 @@
|
|||
## Tracing with Percepio View
|
||||
This demo project includes Percepio TraceRecorder, configured for snapshot tracing with Percepio View or Tracealyzer.
|
||||
Percepio View is a free tracing tool from Percepio, providing the core features of Percepio Tracealyzer but limited to snapshot tracing.
|
||||
No license or registration is required. More information and download is found at [Percepio's product page for Percepio View](https://traceviewer.io/freertos-view).
|
||||
No license or registration is required. More information and download is found at [Percepio's product page for Percepio View](https://traceviewer.io/get-view?target=freertos).
|
||||
|
||||
### TraceRecorder Integration
|
||||
If you like to study how TraceRecorder is integrated, the steps for adding TraceRecorder are tagged with "TODO TraceRecorder" comments in the demo source code.
|
||||
This way, if using an Eclipse-based IDE, you can find a summary in the Tasks window by selecting Window -> Show View -> Tasks (or Other, if not listed).
|
||||
See also [the official getting-started guide](https://traceviewer.io/getting-started-freertos-view).
|
||||
|
||||
### Usage with GCC
|
||||
To save the TraceRecorder trace, start a debug session with GDB, for example using the provided Eclipse launch profile (should work in most Eclipse-based IDEs).
|
||||
### Usage with GDB
|
||||
To save the TraceRecorder trace, start a debug session with GDB.
|
||||
Halt the execution and the run the command below.
|
||||
This saves the trace as trace.bin in the build/gcc folder.
|
||||
Open the trace file in Percepio View or Tracealyzer.
|
||||
|
||||
If using an Eclipse-based IDE, run the following command in the "Debugger Console":
|
||||
```
|
||||
dump binary value trace.bin *RecorderDataPtr
|
||||
```
|
||||
Note that you can copy/paste this command into the Eclipse Debugger Console by using Ctrl-C, Ctrl-V.
|
||||
|
||||
If using VS Code, use the "Debug Console" and add "-exec" before the command:
|
||||
```
|
||||
-exec dump binary value trace.bin *RecorderDataPtr
|
||||
```
|
||||
|
||||
Note that you can typically copy/paste this command into the debug console.
|
||||
|
||||
|
||||
### Usage with IAR Embedded Workbench for Arm
|
||||
The IAR project is not yet updated for TraceRecorder (work in progress). However, you can easily extend the existing IAR project with TraceRecorder.
|
||||
Simply add the source files and include paths for TraceRecorder listed in build/gcc/Makefile. Build and run.
|
||||
To save the trace, please refer to the guides at [https://percepio.com/iar](https://percepio.com/iar).
|
||||
Launch the IAR debugger. With the default project configuration, this should connect to the QEMU GDB server.
|
||||
To save the trace, please refer to the "Snapshot Mode" guide at [https://percepio.com/iar](https://percepio.com/iar).
|
||||
In summary:
|
||||
- Download the IAR macro file [save_trace_buffer.mac](https://percepio.com/downloads/save_trace_buffer.mac) (click "save as")
|
||||
- Add the macro file in the project options -> Debugger -> Use Macro File(s).
|
||||
- Start debugging and open View -> Macros -> Debugger Macros.
|
||||
- Locate and run "save_trace_buffer". Open the resulting "trace.hex" in Percepio View or Tracealyzer.
|
||||
|
||||
|
||||
|
|
|
@ -357,6 +357,10 @@
|
|||
<state>$PROJ_DIR$\..\..\..\..\Source\include</state>
|
||||
<state>$PROJ_DIR$\..\..\CMSIS</state>
|
||||
<state>$PROJ_DIR$\..\..\..\..\Source\portable\IAR\ARM_CM3</state>
|
||||
<state>$PROJ_DIR$\..\..\TraceRecorderConfig</state>
|
||||
<state>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\include</state>
|
||||
<state>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\kernelports\FreeRTOS\include</state>
|
||||
<state>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\streamports\RingBuffer\include</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCStdIncCheck</name>
|
||||
|
@ -1260,6 +1264,93 @@
|
|||
<name>$PROJ_DIR$\startup_ewarm.c</name>
|
||||
</file>
|
||||
</group>
|
||||
<group>
|
||||
<name>TraceRecorder</name>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcAssert.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcCounter.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcDependency.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcDiagnostics.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcEntryTable.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcError.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcEvent.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcEventBuffer.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcExtension.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcHardwarePort.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcHeap.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcInternalEventBuffer.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcInterval.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcISR.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\kernelports\FreeRTOS\trcKernelPort.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcMultiCoreEventBuffer.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcObject.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcPrint.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcRunnable.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcSnapshotRecorder.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcStackMonitor.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcStateMachine.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcStaticBuffer.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcStreamingRecorder.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\streamports\RingBuffer\trcStreamPort.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcString.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcTask.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcTimestamp.c</name>
|
||||
</file>
|
||||
</group>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\FreeRTOSConfig.h</name>
|
||||
</file>
|
||||
|
|
|
@ -1631,6 +1631,93 @@
|
|||
<name>$PROJ_DIR$\startup_ewarm.c</name>
|
||||
</file>
|
||||
</group>
|
||||
<group>
|
||||
<name>TraceRecorder</name>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcAssert.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcCounter.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcDependency.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcDiagnostics.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcEntryTable.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcError.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcEvent.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcEventBuffer.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcExtension.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcHardwarePort.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcHeap.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcInternalEventBuffer.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcInterval.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcISR.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\kernelports\FreeRTOS\trcKernelPort.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcMultiCoreEventBuffer.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcObject.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcPrint.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcRunnable.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcSnapshotRecorder.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcStackMonitor.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcStateMachine.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcStaticBuffer.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcStreamingRecorder.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\streamports\RingBuffer\trcStreamPort.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcString.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcTask.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\trcTimestamp.c</name>
|
||||
</file>
|
||||
</group>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\FreeRTOSConfig.h</name>
|
||||
</file>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue