Update the FreeRTOS+Trace recorder and Win32 demo app.
parent
96218c34a1
commit
26152204a4
Binary file not shown.
@ -0,0 +1,126 @@
|
||||
|
||||
FreeRTOS+Trace - Uploading the trace data
|
||||
-----------------------------------------
|
||||
Percepio AB, Nov. 8, 2012
|
||||
|
||||
This document decribes how to upload the trace data from the target system to
|
||||
FreeRTOS+Trace. For information on how to integrate and enable the recorder
|
||||
library in your FreeRTOS project, see the FreeRTOS+Trace User Manual.
|
||||
|
||||
FreeRTOS+Trace uses your existing debugger to upload the trace data from the
|
||||
chip RAM. This is a plain RAM dump, that is done whenever you want to look at
|
||||
the trace buffer contents. This means it works with essentially with any debug
|
||||
probe on the market.
|
||||
|
||||
Note that hardware-generated trace is not required (or used by) FreeRTOS+Trace.
|
||||
We however plan to add support for that in future versions of FreeRTOS+Trace
|
||||
and other Tracealyzer products.
|
||||
|
||||
Built-in support for Segger J-Link/J-Trace and Atmel SAM-ICE
|
||||
------------------------------------------------------------
|
||||
FreeRTOS+Trace v2.3 supports Segger J-Link and J-Link compatible debuggers
|
||||
directly, without any debugger IDE involved. Using other debug probes is
|
||||
also possible, but requires some extra steps, described below.
|
||||
|
||||
If you have a Segger J-Link/J-Trace debug probe or another J-Link compatible
|
||||
debug probe, just select
|
||||
|
||||
"File" menu -> "Upload from <debug probe name>".
|
||||
|
||||
This opens a dialog where you get to enter the memory region where
|
||||
the recorder data structure is located. Normally you select the entire
|
||||
internal RAM according to the datasheet of your MCU, but the exact address
|
||||
can be found can by inspecting the "RecorderData" struct or the
|
||||
"RecorderDataPtr" pointer with your debugger.
|
||||
|
||||
Typical values are 0x0, 0x10000000 or 0x20000000 as start address
|
||||
and 0x10000 or 0x20000 as size (64 KB or 128 KB).
|
||||
|
||||
This makes FreeRTOS+Trace reads the chip RAM and locate the trace data.
|
||||
Note that this option is only available if a compatible debug probe is found.
|
||||
|
||||
J-Link compatible debug probes also include Atmel SAM-ICE and many built-in
|
||||
debug interfaces on demonstration/evaluation boards (where there is a USB
|
||||
connection directly to the board). Look for a Segger J-Link label on the board.
|
||||
|
||||
MemoryLogger extension in Atmel Studio 6
|
||||
----------------------------------------
|
||||
Atmel's new MemoryLogger extension provides a superb integration with
|
||||
FreeRTOS+Trace. Look for "MemoryLogger" in Atmel Gallery, available in
|
||||
Atmel Studio and at the Atmel website.
|
||||
|
||||
This extension automatically detects the path to FreeRTOS+Trace, if
|
||||
installed, and gives you a single-click upload/refresh. You can use it
|
||||
while debugging and optionally get an automatic refresh eash time the
|
||||
MCU is halted, e.g., on each breakpoint.
|
||||
|
||||
Using other development environments and debug probes
|
||||
-----------------------------------------------------
|
||||
Most debuggers are able to save the RAM contents to a file. FreeRTOS+Trace
|
||||
supports the following common formats:
|
||||
- Binary (.bin), supporting gdb, J-Link and Renesas HEW.
|
||||
- Intel Hex (.hex), supporting IAR Embedded Workbench and Atmel Studio (atprogram.exe)
|
||||
- MCH (.mch), supporting Microchip MPLAB.
|
||||
|
||||
When you store the RAM dump, you must also make sure to select the right region,
|
||||
i.e., start address and size. The recorder data is stored in a single data
|
||||
block, identified by the pointer RecorderDataPtr.
|
||||
It is not necessary to match the begin and end of the recorder data, as long as
|
||||
it is fully included by the dumped memory region. FreeRTOS+Trace automatically
|
||||
finds the trace data in the RAM dump, thanks to special signatures. For chips
|
||||
with on-chip RAM only, we therefore recommend to dump the entire RAM. This is
|
||||
usually very fast.
|
||||
For chips with larger amounts of (external) RAM, it is typically possible to
|
||||
dump a limited region where the data is typically found.
|
||||
|
||||
Using IAR Embedded Workbench for ARM, version 6.3
|
||||
-------------------------------------------------
|
||||
In the debugger view, when stopped on a breakpoint:
|
||||
- Select "Debug" menu, "Memory" submenu, "Save..." (keyboard shortcut: ALT,d,y,s)
|
||||
- In the Save dialog
|
||||
- Zone: Memory
|
||||
- Start Adress: 10000000 (for NXP LPC1766 in the demo project)
|
||||
- End Adress: 1000FFFF (for NXP LPC1766 in the demo project)
|
||||
- File format: Intel Extended
|
||||
- Filename: <name>.hex
|
||||
- Press "Save" button
|
||||
You can now open <name>.hex in FreeRTOS+Trace.
|
||||
|
||||
To find the right Start and End addresses, check the address of the symbol
|
||||
"RecorderData". The addresses does not need to match this symbol exactly, as
|
||||
long as the whole data is included.
|
||||
|
||||
Using Renesas High-performance Embedded Workshop v4.09
|
||||
------------------------------------------------------
|
||||
In the debugger view, when stopped on a breakpoint:
|
||||
- Select "Debug" menu, "Save Memory..." (keyboard shortcut: ALT,d,a)
|
||||
- In the Save dialog
|
||||
- Format: Binary
|
||||
- Filename: <name>.bin
|
||||
- Start Address: 00000000 (For RX62N in the demo project)
|
||||
- End Address: 0000FFFF (For RX62N in the demo project)
|
||||
- Access size: 1
|
||||
- Press "Save" button and open <name>.bin in FreeRTOS+Trace.
|
||||
|
||||
Using Microchip MPLAB v8.86
|
||||
------------------------------------------------------
|
||||
- Select "View" -> "File Registers". This shows you the memory contents.
|
||||
- Make sure "Hex" is selected in the bottom left (instead of "Symbolic"). Hex mode seems to be default.
|
||||
- Right click in the view and select "Export Table...".
|
||||
- In the dialog ("Export As"), make sure "Single Column Output" is selected (seems to be default).
|
||||
- Select start address 0x0000 and make sure the end address is beyond the RecorderData structure.
|
||||
The default values seems to be the whole RAM, so you probably don't need to change this.
|
||||
- Save as a .mch file and open this file in FreeRTOS+Trace v2.2.4 or later (support for the .mch format was added in v2.2.4).
|
||||
|
||||
Using STM32 ST-Link
|
||||
------------------------------------------------------
|
||||
- Start "ST-Link Utility"
|
||||
- Connect to the device and view the device memory.
|
||||
- Set the view to display the entire RAM, or at least the section containing the RecorderData structure.
|
||||
- Select "Save as" and choose binary (.bin) or Intel Hex (.hex) format.
|
||||
- Open the resulting file in FreeRTOS+Trace.
|
||||
|
||||
In case you have any question, contact support@percepio.com
|
||||
|
||||
Percepio AB
|
||||
www.percepio.com
|
@ -1,43 +1,53 @@
|
||||
THIS PRODUCT IS UNDER ACTIVE DEVELOPMENT, PLEASE SEE
|
||||
THE PERCEPIO WEBSITE FOR A COMPLETE LIST OF THE LATEST PORTS
|
||||
|
||||
|
||||
FreeRTOS+Trace Demo
|
||||
-------------------
|
||||
FreeRTOS+Trace Trace Recorder Library
|
||||
-------------------------------------
|
||||
Percepio AB
|
||||
www.percepio.se
|
||||
www.percepio.com
|
||||
|
||||
This directory contains the core trace recorder library used by FreeRTOS+Trace v2.3.
|
||||
|
||||
Ready-to-run demonstrations projects are found at www.percepio.com.
|
||||
|
||||
For information on how to integrate the recorder library in your FreeRTOS build, see
|
||||
the FreeRTOS+Trace User Manual, section 2.
|
||||
|
||||
For information on how to upload the trace data from your target system RAM to
|
||||
FreeRTOS+Trace, see "debugger trace upload.txt"
|
||||
|
||||
This package contains:
|
||||
/Demo/DemoAppl The demo application used in the included demo projects.
|
||||
/Demo/Eclipse-AT91SAM7 Demo project for Eclipse/GCC with Atmel AT91SAM7X256 as preconfigured target.
|
||||
/Demo/IAR - Cortex M3 Demo project for IAR Embedded Workbench for ARM, with NXP LPC1766 as preconfigured target.
|
||||
/Demo/Renesas RDK HEW - RX600 Demo project for Renesas HEW, with the RX62N as preconfigured target.
|
||||
/Demo/MSVC Win32 Demo project Microsoft Visual Studio, using the Win32 port of FreeRTOS.
|
||||
/FreeRTOS-v7.1.1 A subset of FreeRTOS v7.1.1 (the only change is that the Demo directory has been removed - it is quite large!).
|
||||
/TraceRecorderSrc The trace recorder library for FreeRTOS / FreeRTOS+Trace.
|
||||
NOTE: This trace recorder library requires FreeRTOS v7.3.0 or later.
|
||||
|
||||
Note that the individual Demo project directories are not self-contained.
|
||||
They refer to the FreeRTOS-v7.1.1, DemoAppl and TraceRecorderSrc directories.
|
||||
Files included
|
||||
--------------
|
||||
- trcConfig.h - The recorder's configuration file, check this!
|
||||
- trcUser.c / trcUser.h - The main API towards the application (trcUser.h in the only include necessary).
|
||||
- trcKernel.c / trcKernel.h - Internal routines for storing kernel events.
|
||||
- trcBase.c / trcBase.h - Internal routines for manipulating the data structures and calculating timestamps.
|
||||
- trcPort.c / trcPort.h - The port layer, abstracting the hardware (mainly the timer used for timestamping).
|
||||
- trcHooks.h - The interface between FreeRTOS and the recorder, containing trace macro defintions.
|
||||
- trcTypes.h - Type definitions used.
|
||||
|
||||
Hardware Timer Ports
|
||||
--------------------
|
||||
This release contains hardware timer ports for the following hardware architectures:
|
||||
|
||||
- ARM Cortex M3/M4 (all brands)
|
||||
- Atmel AT91SAM7X
|
||||
- Renesas RX600
|
||||
- ARM Cortex M3/M4 (all brands, such as Atmel SAM3/SAM4, NXP 17xx, 18xx, 43xx, STM32, Freescale Kinetis, ...)
|
||||
- Atmel AT91SAM7x
|
||||
- Atmel AT32UC3 (AVR32)
|
||||
- Renesas RX600 (e.g., RX62N)
|
||||
- Microchip dsPIC/PIC24
|
||||
|
||||
The package moreover contain several "unofficial" ports, provided by external contributors and not yet verified by Percepio AB.
|
||||
See trcPort.h for the details.
|
||||
These are defined in trcPort.h. This also contains several "unofficial" ports, provided by external contributors.
|
||||
By unofficial, it means that they are not yet verified by Percepio AB. Please refer to trcPort.h for detailed information.
|
||||
If you use an unofficial port and beleive it is incorrect, please let us know!
|
||||
|
||||
In case your hardware is not yet directly supported, developing a new port is quite easy.
|
||||
See trcPort.h for further information.
|
||||
In case your MCU is not yet supported directly, developing a new port is quite easy, just a matter of defining a few macros
|
||||
according to your specific MCU. See trcPort.h for further information.
|
||||
|
||||
In case you have any questions, do not hesitate to contact support@percepio.se
|
||||
In case you have any questions, do not hesitate to contact support@percepio.com
|
||||
|
||||
Percepio AB
|
||||
Köpmangatan 1A
|
||||
72215 Västerås
|
||||
Sweden
|
||||
|
||||
www.percepio.se
|
||||
www.percepio.com
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue