mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-12-23 11:09:28 -05:00
* * Pull Request for Percepio Tracealyzer Recorder v4.3.11 * Update Tracealyzer demo config file. Co-authored-by: Erik Tamlin <erik.tamlin@percepio.com>
This commit is contained in:
parent
70dcbe4527
commit
d248555de5
38 changed files with 16058 additions and 13440 deletions
|
|
@ -0,0 +1,170 @@
|
|||
/*******************************************************************************
|
||||
* Trace Recorder Library for Tracealyzer v4.2.0
|
||||
* Percepio AB, www.percepio.com
|
||||
*
|
||||
* aws_secure_socket.tzext.h
|
||||
*
|
||||
* An example of a Tracealyzer extension for tracing API calls, in this case
|
||||
* for tracing selected functions in Amazon FreeRTOS/aws_secure_sockets.
|
||||
* See trcExtensions.h for information on how to use this.
|
||||
*
|
||||
* To create your own extension, first make sure to read the documentation
|
||||
* in trcExtensions.h. Then, to create an extension header file like this
|
||||
* one, you need to provide:
|
||||
*
|
||||
* - Extension Definitions - name and event codes of the extensions.
|
||||
*
|
||||
* - Trace Wrappers - calls the original function and traces the event.
|
||||
*
|
||||
* - Function Redefinitions - changes the function calls to the trace wrappers.
|
||||
*
|
||||
* See the below comments for details about these definitions. Note that you
|
||||
* also need a matching .xml file for Tracealyzer to understand the data.
|
||||
* See trcExtensions.h for further information.
|
||||
*
|
||||
* Terms of Use
|
||||
* This file is part of the trace recorder library (RECORDER), which is the
|
||||
* intellectual property of Percepio AB (PERCEPIO) and provided under a
|
||||
* license as follows.
|
||||
* The RECORDER may be used free of charge for the purpose of recording data
|
||||
* intended for analysis in PERCEPIO products. It may not be used or modified
|
||||
* for other purposes without explicit permission from PERCEPIO.
|
||||
* You may distribute the RECORDER in its original source code form, assuming
|
||||
* this text (terms of use, disclaimer, copyright notice) is unchanged. You are
|
||||
* allowed to distribute the RECORDER with minor modifications intended for
|
||||
* configuration or porting of the RECORDER, e.g., to allow using it on a
|
||||
* specific processor, processor family or with a specific communication
|
||||
* interface. Any such modifications should be documented directly below
|
||||
* this comment block.
|
||||
*
|
||||
* Disclaimer
|
||||
* The RECORDER is being delivered to you AS IS and PERCEPIO makes no warranty
|
||||
* as to its use or performance. PERCEPIO does not and cannot warrant the
|
||||
* performance or results you may obtain by using the RECORDER or documentation.
|
||||
* PERCEPIO make no warranties, express or implied, as to noninfringement of
|
||||
* third party rights, merchantability, or fitness for any particular purpose.
|
||||
* In no event will PERCEPIO, its technology partners, or distributors be liable
|
||||
* to you for any consequential, incidental or special damages, including any
|
||||
* lost profits or lost savings, even if a representative of PERCEPIO has been
|
||||
* advised of the possibility of such damages, or for any claim by any third
|
||||
* party. Some jurisdictions do not allow the exclusion or limitation of
|
||||
* incidental, consequential or special damages, or the exclusion of implied
|
||||
* warranties or limitations on how long an implied warranty may last, so the
|
||||
* above limitations may not apply to you.
|
||||
*
|
||||
* Tabs are used for indent in this file (1 tab = 4 spaces)
|
||||
*
|
||||
* Copyright Percepio AB, 2018.
|
||||
* www.percepio.com
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef _AWS_SECURE_SOCKETS_TZEXT_H
|
||||
#define _AWS_SECURE_SOCKETS_TZEXT_H
|
||||
|
||||
/***** Extension Definitions *****/
|
||||
|
||||
/******************************************************************************
|
||||
* <EXTENSIONPREFIX>_NAME
|
||||
* The name of the extension as a string constant. This name is used by the
|
||||
* Tracealyzer host application to find the right XML file for interpreting
|
||||
* the events. Assuming the extension name is "aws_secure_sockets", Tracealyzer
|
||||
* will look for an XML file named "aws_secure_sockets-<VERSION>.xml", first in
|
||||
* the folder of the current trace file, next in the Tracealyzer 4/cfg folder.
|
||||
* For the VERSION part, see the TRC_EXT_<ExtName>_VERSION macros below.
|
||||
*
|
||||
* Note: The extension name displayed in Tracealyzer is defined in the XML file
|
||||
* in the EventGroup element (e.g. <EventGroup name="SOCKETS">)
|
||||
*
|
||||
*****************************************************************************/
|
||||
#define TRC_EXT_SOCKETS_NAME "aws_secure_sockets"
|
||||
|
||||
/******************************************************************************
|
||||
* <EXTENSIONPREFIX>_VERSION_MAJOR
|
||||
* <EXTENSIONPREFIX>_VERSION_MINOR
|
||||
* <EXTENSIONPREFIX>_VERSION_PATCH
|
||||
*
|
||||
* The version code of the extension (MAJOR.MINOR.PATCH)
|
||||
*
|
||||
* If you increment the version code when modifying an extension, you can still
|
||||
* show old traces recorded using an earlier version of the extension.
|
||||
*
|
||||
* Assuming the extension name is "aws_secure_sockets", and the below version
|
||||
* codes are 1 (MAJOR), 2 (MINOR), 3 (PATCH), Tracealyzer will assume the
|
||||
* corresponding XML file is named "aws_secure_sockets-v1.2.3.xml". So if then
|
||||
* view a trace recorded with extension version 1.2.2, those traces will look
|
||||
* for "aws_secure_sockets-v1.2.2.xml" instead.
|
||||
*
|
||||
* Note that major and minor are stored as 8 bit values, while patch is stored
|
||||
* using 16 bits. They are treated as unsigned integers, so the maximum values
|
||||
* are 256, 256 and 65535.
|
||||
*****************************************************************************/
|
||||
#define TRC_EXT_SOCKETS_VERSION_MAJOR 1
|
||||
|
||||
#define TRC_EXT_SOCKETS_VERSION_MINOR 0
|
||||
|
||||
#define TRC_EXT_SOCKETS_VERSION_PATCH 0
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
* <EXTENSIONPREFIX>_<EVENTCODE>
|
||||
* The event codes used in the trace wrapper functions. Important that these
|
||||
* are relative to <PREFIX>_FIRST.
|
||||
*****************************************************************************/
|
||||
#define EVENTCODE_SOCKETS_Connect (TRC_EXT_BASECODE + 0)
|
||||
|
||||
#define EVENTCODE_SOCKETS_Send (TRC_EXT_BASECODE + 1)
|
||||
|
||||
#define EVENTCODE_SOCKETS_Recv (TRC_EXT_BASECODE + 2)
|
||||
|
||||
/******************************************************************************
|
||||
* <EXTENSIONPREFIX>_COUNT
|
||||
* The number of event codes used by this extension. Should be at least 1.
|
||||
* Tracealyzer allows for events codes up to 4095.
|
||||
*****************************************************************************/
|
||||
#define TRC_EXT_SOCKETS_COUNT 2
|
||||
|
||||
|
||||
/***** Trace Wrappers *****/
|
||||
|
||||
#include "aws_secure_sockets.h" /* Including the original header file, so that custom data types are understood. */
|
||||
|
||||
static inline int32_t SOCKETS_Connect__trace( Socket_t xSocket, SocketsSockaddr_t * pxAddress, Socklen_t xAddressLength )
|
||||
{
|
||||
int32_t ret = SOCKETS_Connect(xSocket, pxAddress, xAddressLength);
|
||||
|
||||
// Note: The host-side xml file assumes that ret == 0 means OK, otherwise timeout/error.
|
||||
prvTraceStoreEvent3(EVENTCODE_SOCKETS_Connect, (uint32_t)xSocket, (uint32_t)pxAddress->ulAddress, (uint32_t)ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static inline int32_t SOCKETS_Send__trace( Socket_t xSocket, const void * pvBuffer, size_t xDataLength, uint32_t ulFlags )
|
||||
{
|
||||
int32_t ret = SOCKETS_Send(xSocket, pvBuffer, xDataLength, ulFlags);
|
||||
|
||||
// Note: The host-side xml file assumes that ret == 0 means OK, otherwise timeout/error.
|
||||
prvTraceStoreEvent2(EVENTCODE_SOCKETS_Send, (uint32_t)xSocket, (uint32_t)ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
static inline int32_t SOCKETS_Recv__trace( Socket_t xSocket, void * pvBuffer, size_t xBufferLength, uint32_t ulFlags )
|
||||
{
|
||||
int32_t ret = SOCKETS_Recv(xSocket, pvBuffer, xBufferLength, ulFlags);
|
||||
|
||||
// Note: The host-side xml file assumes that ret == 0 means OK, otherwise timeout/error.
|
||||
prvTraceStoreEvent2(EVENTCODE_SOCKETS_Recv, (uint32_t)xSocket, (uint32_t)ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/***** Function Redefinitions *****/
|
||||
|
||||
#define SOCKETS_Connect SOCKETS_Connect__trace
|
||||
|
||||
#define SOCKETS_Send SOCKETS_Send__trace
|
||||
|
||||
#define SOCKETS_Recv SOCKETS_Recv__trace
|
||||
|
||||
#endif /* _AWS_SECURE_SOCKETS_TZEXT_H */
|
||||
|
|
@ -0,0 +1,169 @@
|
|||
/*******************************************************************************
|
||||
* Trace Recorder Library for Tracealyzer v4.2.0
|
||||
* Percepio AB, www.percepio.com
|
||||
*
|
||||
* aws_secure_socket.tzext.h
|
||||
*
|
||||
* An example of a Tracealyzer extension for tracing API calls, in this case
|
||||
* for tracing selected functions in Amazon FreeRTOS/aws_wifi.
|
||||
* See trcExtensions.h for information on how to use this.
|
||||
*
|
||||
* To create your own extension, first make sure to read the documentation
|
||||
* in trcExtensions.h. Then, to create an extension header file like this
|
||||
* one, you need to provide:
|
||||
*
|
||||
* - Extension Definitions - name and event codes of the extensions.
|
||||
*
|
||||
* - Trace Wrappers - calls the original function and traces the event.
|
||||
*
|
||||
* - Function Redefinitions - changes the function calls to the trace wrappers.
|
||||
*
|
||||
* See the below comments for details about these definitions. Note that you
|
||||
* also need a matching .xml file for Tracealyzer to understand the data.
|
||||
* See trcExtensions.h for further information.
|
||||
*
|
||||
* Terms of Use
|
||||
* This file is part of the trace recorder library (RECORDER), which is the
|
||||
* intellectual property of Percepio AB (PERCEPIO) and provided under a
|
||||
* license as follows.
|
||||
* The RECORDER may be used free of charge for the purpose of recording data
|
||||
* intended for analysis in PERCEPIO products. It may not be used or modified
|
||||
* for other purposes without explicit permission from PERCEPIO.
|
||||
* You may distribute the RECORDER in its original source code form, assuming
|
||||
* this text (terms of use, disclaimer, copyright notice) is unchanged. You are
|
||||
* allowed to distribute the RECORDER with minor modifications intended for
|
||||
* configuration or porting of the RECORDER, e.g., to allow using it on a
|
||||
* specific processor, processor family or with a specific communication
|
||||
* interface. Any such modifications should be documented directly below
|
||||
* this comment block.
|
||||
*
|
||||
* Disclaimer
|
||||
* The RECORDER is being delivered to you AS IS and PERCEPIO makes no warranty
|
||||
* as to its use or performance. PERCEPIO does not and cannot warrant the
|
||||
* performance or results you may obtain by using the RECORDER or documentation.
|
||||
* PERCEPIO make no warranties, express or implied, as to noninfringement of
|
||||
* third party rights, merchantability, or fitness for any particular purpose.
|
||||
* In no event will PERCEPIO, its technology partners, or distributors be liable
|
||||
* to you for any consequential, incidental or special damages, including any
|
||||
* lost profits or lost savings, even if a representative of PERCEPIO has been
|
||||
* advised of the possibility of such damages, or for any claim by any third
|
||||
* party. Some jurisdictions do not allow the exclusion or limitation of
|
||||
* incidental, consequential or special damages, or the exclusion of implied
|
||||
* warranties or limitations on how long an implied warranty may last, so the
|
||||
* above limitations may not apply to you.
|
||||
*
|
||||
* Tabs are used for indent in this file (1 tab = 4 spaces)
|
||||
*
|
||||
* Copyright Percepio AB, 2018.
|
||||
* www.percepio.com
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef _AWS_WIFI_TZEXT_H
|
||||
#define _AWS_WIFI_TZEXT_H
|
||||
|
||||
/***** Extension Definitions (must use the same prefix!) *****/
|
||||
|
||||
/******************************************************************************
|
||||
* <EXTENSIONPREFIX>_NAME
|
||||
* The name of the extension as a string constant. This name is used by the
|
||||
* Tracealyzer host application to find the right XML file for interpreting
|
||||
* the events. Assuming the extension name is "aws_secure_sockets", Tracealyzer
|
||||
* will look for an XML file named "aws_secure_sockets-<VERSION>.xml", first in
|
||||
* the folder of the current trace file, next in the Tracealyzer 4/cfg folder.
|
||||
* For the VERSION part, see the TRC_EXT_<ExtName>_VERSION macros below.
|
||||
*
|
||||
* Note: The extension name displayed in Tracealyzer is defined in the XML file
|
||||
* in the EventGroup element (e.g. <EventGroup name="SOCKETS">)
|
||||
*
|
||||
*****************************************************************************/
|
||||
#define TRC_EXT_WIFI_NAME "aws_wifi"
|
||||
|
||||
/******************************************************************************
|
||||
* <EXTENSIONPREFIX>_VERSION_MAJOR
|
||||
* <EXTENSIONPREFIX>_VERSION_MINOR
|
||||
* <EXTENSIONPREFIX>_VERSION_PATCH
|
||||
*
|
||||
* The version code of the extension (MAJOR.MINOR.PATCH)
|
||||
*
|
||||
* If you increment the version code when modifying an extension, you can still
|
||||
* show old traces recorded using an earlier version of the extension.
|
||||
*
|
||||
* Assuming the extension name is "aws_secure_sockets", and the below version
|
||||
* codes are 1 (MAJOR), 2 (MINOR), 3 (PATCH), Tracealyzer will assume the
|
||||
* corresponding XML file is named "aws_secure_sockets-v1.2.3.xml". So if then
|
||||
* view a trace recorded with extension version 1.2.2, those traces will look
|
||||
* for "aws_secure_sockets-v1.2.2.xml" instead.
|
||||
*
|
||||
* Note that major and minor are stored as 8 bit values, while patch is stored
|
||||
* using 16 bits. They are treated as unsigned integers, so the maximum values
|
||||
* are 256, 256 and 65535.
|
||||
*****************************************************************************/
|
||||
#define TRC_EXT_WIFI_VERSION_MAJOR 1
|
||||
|
||||
#define TRC_EXT_WIFI_VERSION_MINOR 0
|
||||
|
||||
#define TRC_EXT_WIFI_VERSION_PATCH 0
|
||||
|
||||
/******************************************************************************
|
||||
* <EXTENSIONPREFIX>_<EVENTCODE>
|
||||
* The event codes used in the trace wrapper functions. Important that these
|
||||
* are relative to <PREFIX>_FIRST.
|
||||
*****************************************************************************/
|
||||
#define EVENTCODE_WIFI_On (TRC_EXT_BASECODE + 0)
|
||||
|
||||
#define EVENTCODE_WIFI_Off (TRC_EXT_BASECODE + 1)
|
||||
|
||||
#define EVENTCODE_WIFI_ConnectAP (TRC_EXT_BASECODE + 2)
|
||||
|
||||
/******************************************************************************
|
||||
* <EXTENSIONPREFIX>_COUNT
|
||||
* The number of event codes used by this extension. Should be at least 1.
|
||||
* Tracealyzer allows for events codes up to 4095.
|
||||
*****************************************************************************/
|
||||
#define TRC_EXT_WIFI_COUNT 3
|
||||
|
||||
|
||||
/***** Trace Wrappers *****/
|
||||
|
||||
#include "aws_wifi.h" /* Including the original header file, so that custom data types are understood. */
|
||||
|
||||
static inline WIFIReturnCode_t WIFI_On__trace( void )
|
||||
{
|
||||
WIFIReturnCode_t ret = WIFI_On();
|
||||
|
||||
// Note: The host-side xml file assumes that ret == 0 means OK, otherwise timeout/error.
|
||||
prvTraceStoreEvent1(EVENTCODE_WIFI_On, (uint32_t)ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static inline WIFIReturnCode_t WIFI_Off__trace( void )
|
||||
{
|
||||
WIFIReturnCode_t ret = WIFI_Off();
|
||||
|
||||
// Note: The host-side xml file assumes that ret == 0 means OK, otherwise timeout/error.
|
||||
prvTraceStoreEvent1(EVENTCODE_WIFI_Off, (uint32_t)ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static inline WIFIReturnCode_t WIFI_ConnectAP__trace( const WIFINetworkParams_t * const pxNetworkParams )
|
||||
{
|
||||
WIFIReturnCode_t ret = WIFI_ConnectAP(pxNetworkParams);
|
||||
|
||||
// Note: The host-side xml file assumes that ret == 0 means OK, otherwise timeout/error.
|
||||
|
||||
prvTraceStoreStringEvent(2, EVENTCODE_WIFI_ConnectAP, pxNetworkParams->pcSSID, pxNetworkParams->xSecurity, ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/***** Function Redefinitions *****/
|
||||
|
||||
#define WIFI_On WIFI_On__trace
|
||||
|
||||
#define WIFI_Off WIFI_Off__trace
|
||||
|
||||
#define WIFI_ConnectAP WIFI_ConnectAP__trace
|
||||
|
||||
#endif /* _AWS_SECURE_SOCKETS2_TZEXT_H */
|
||||
422
FreeRTOS-Plus/Source/FreeRTOS-Plus-Trace/Include/trcExtensions.h
Normal file
422
FreeRTOS-Plus/Source/FreeRTOS-Plus-Trace/Include/trcExtensions.h
Normal file
|
|
@ -0,0 +1,422 @@
|
|||
/*******************************************************************************
|
||||
* Trace Recorder Library for Tracealyzer v4.3.11
|
||||
* Percepio AB, www.percepio.com
|
||||
*
|
||||
* trcExtensions.h
|
||||
*
|
||||
* The extension interface of the recorder library, allowing for tracing
|
||||
* function calls to any API without modifications. All that is needed is a
|
||||
* single #include line in the .c files calling the API.
|
||||
*
|
||||
* This can be used to provide more detailed traces, including calls to e.g.
|
||||
* middleware, drivers or important APIs in your application code. This can be
|
||||
* applied selectively to specified functions and may include selected
|
||||
* parameters as well as the return value.
|
||||
*
|
||||
* Unlike the "User Event" concept, an extension is intended for systematic use
|
||||
* and can benefit from all powerful features in Tracealyzer via host-side XML
|
||||
* files that configure how Tracealyzer should interpret each event.
|
||||
*
|
||||
* Extensions are self-contained and easy to integrate, which makes them
|
||||
* convenient for distribution. Software vendors can thus develop such
|
||||
* extensions and provide trace support for their users.
|
||||
*
|
||||
* An extension consists of two files:
|
||||
*
|
||||
* - An extension header file (e.g. "api.tzext.h") - this defines how to
|
||||
* trace the API function calls.
|
||||
*
|
||||
* - An XML file for the Tracealyzer application (e.g. "api-v1.0.0.xml").
|
||||
* This needs to match the tracing setup in your extension header file.
|
||||
*
|
||||
*
|
||||
* USAGE
|
||||
*
|
||||
* This description assumes you already have the extension files for the APIs you
|
||||
* like to trace. To include them, follow these steps:
|
||||
*
|
||||
* 1. Update trcExtensions.h with respect to:
|
||||
*
|
||||
* 1.1. TRC_CFG_EXTENSION_COUNT: The number of extensions to enable (max 4).
|
||||
*
|
||||
* 1.2. The name(s) of the extension header file(s) to include.
|
||||
*
|
||||
* 1.3. The Extension Prefix, i.e., the first part of the definition names
|
||||
* used in each header file.
|
||||
*
|
||||
* 2. Add #include "trcExtensions.h" in all .c files calling the API:
|
||||
*
|
||||
* #include ...
|
||||
* #include "api.h" // The API you like to trace
|
||||
* #include ...
|
||||
* #include "trcExtensions.h"
|
||||
*
|
||||
* We recommend to put this as the LAST #include statement.
|
||||
*
|
||||
* HOWEVER, don't include "trcExtensions.h" in the .c files containing the
|
||||
* functions you intend to trace. The compiler will then complain about
|
||||
* multiple definitions of the trace wrapper function.
|
||||
*
|
||||
* 3. Copy the extension XML file to the "Tracealyzer 4/cfg" folder.
|
||||
* On Windows this is typically
|
||||
*
|
||||
* C:\Program Files\Percepio\Tracealyzer 4\cfg
|
||||
*
|
||||
*
|
||||
* HOW IT WORKS
|
||||
*
|
||||
* By including "trcExtensions.h" in your .c files, the preprocessor will
|
||||
* redefine all calls of the functions specified in the extension header file.
|
||||
* Calls to those functions will now instead call the "trace wrapper functions"
|
||||
* defined in the extension header. The trace wrapper functions then call the
|
||||
* original function as well as the trace recorder library.
|
||||
*
|
||||
* call foo(a) ----> foo__trace(a) -----> foo(a)
|
||||
* -----> trace recorder library
|
||||
*
|
||||
* Note that the trace wrapper function should have the same declaration as the
|
||||
* original function (apart from the name) and also returns any return value
|
||||
* back to the original caller. So functionally this is completely transparent.
|
||||
*
|
||||
* This works also for calls via function pointers, as the assignments of the
|
||||
* function pointers will be affected, so the function pointers will point to
|
||||
* the trace wrapper function.
|
||||
*
|
||||
* It even works when calling binary libraries, since only the calling code
|
||||
* is modified, not the API itself.
|
||||
*
|
||||
* Extensions include a version code (Major.Minor.Patch), which is registered
|
||||
* in the trace and also part of the XML file name. This way, Tracealyzer
|
||||
* automatically finds the matching XML file, even if you open a old trace
|
||||
* recorded using a earlier version of the extension (e.g. if the API has
|
||||
* changed).
|
||||
*
|
||||
* LIMITATIONS
|
||||
*
|
||||
* The main limitation of this automatic approach is that it only allows for
|
||||
* tracing call between different .c files. Moreover, you can't trace multiple
|
||||
* APIs with calls between them. This since the calling file must include
|
||||
* trcExtensions.h, while the called file must NOT include this.
|
||||
*
|
||||
* It is however possible to get around this limitation. You need to add
|
||||
* #undef lines for each affected function to locally disable the redefinition,
|
||||
* and modify each function call to instead call the trace wrapper function.
|
||||
*
|
||||
* #include "trcExtensions.h"
|
||||
* #undef foo
|
||||
* ...
|
||||
* void foo(int a)
|
||||
* {
|
||||
* ...
|
||||
* }
|
||||
* ...
|
||||
* foo__trace(a); // in another function - call foo and trace it
|
||||
*
|
||||
* These changes can remain in your code if you like, as the trace wrappers
|
||||
* works even if the recorder is disabled.
|
||||
*
|
||||
* MAKING YOUR OWN EXTENSIONS
|
||||
*
|
||||
* Examples are found in the extensions directory. We recommend that you start
|
||||
* by looking at aws_secure_sockets files (.h and .xml) that provides a basic
|
||||
* example. The aws_wifi files provides a more advanced example.
|
||||
* The header files include detailed documentation about how to design them,
|
||||
*
|
||||
* The XML files should have the same name as specified in the NAME property
|
||||
* in the header file, followed by the version, i.e.
|
||||
*
|
||||
* <NAME>-v<VERSION_MAJOR>.<<VERSION_MINOR>.<VERSION_PATCH>.xml
|
||||
*
|
||||
* Documentation for the XML file format is not yet available, but is under
|
||||
* development.
|
||||
*
|
||||
*
|
||||
* Terms of Use
|
||||
* This file is part of the trace recorder library (RECORDER), which is the
|
||||
* intellectual property of Percepio AB (PERCEPIO) and provided under a
|
||||
* license as follows.
|
||||
* The RECORDER may be used free of charge for the purpose of recording data
|
||||
* intended for analysis in PERCEPIO products. It may not be used or modified
|
||||
* for other purposes without explicit permission from PERCEPIO.
|
||||
* You may distribute the RECORDER in its original source code form, assuming
|
||||
* this text (terms of use, disclaimer, copyright notice) is unchanged. You are
|
||||
* allowed to distribute the RECORDER with minor modifications intended for
|
||||
* configuration or porting of the RECORDER, e.g., to allow using it on a
|
||||
* specific processor, processor family or with a specific communication
|
||||
* interface. Any such modifications should be documented directly below
|
||||
* this comment block.
|
||||
*
|
||||
* Disclaimer
|
||||
* The RECORDER is being delivered to you AS IS and PERCEPIO makes no warranty
|
||||
* as to its use or performance. PERCEPIO does not and cannot warrant the
|
||||
* performance or results you may obtain by using the RECORDER or documentation.
|
||||
* PERCEPIO make no warranties, express or implied, as to noninfringement of
|
||||
* third party rights, merchantability, or fitness for any particular purpose.
|
||||
* In no event will PERCEPIO, its technology partners, or distributors be liable
|
||||
* to you for any consequential, incidental or special damages, including any
|
||||
* lost profits or lost savings, even if a representative of PERCEPIO has been
|
||||
* advised of the possibility of such damages, or for any claim by any third
|
||||
* party. Some jurisdictions do not allow the exclusion or limitation of
|
||||
* incidental, consequential or special damages, or the exclusion of implied
|
||||
* warranties or limitations on how long an implied warranty may last, so the
|
||||
* above limitations may not apply to you.
|
||||
*
|
||||
* Tabs are used for indent in this file (1 tab = 4 spaces)
|
||||
*
|
||||
* Copyright Percepio AB, 2018.
|
||||
* www.percepio.com
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef TRCEXTENSIONS_H_
|
||||
#define TRCEXTENSIONS_H_
|
||||
|
||||
#include "trcRecorder.h"
|
||||
|
||||
/******************************************************************************
|
||||
* TRC_CFG_EXTENSION_COUNT
|
||||
*
|
||||
* Defines the number of extensions included in the trace. Maximum 4 extensions
|
||||
* can be included.
|
||||
*
|
||||
* Default value is 0 (extension support disabled).
|
||||
*
|
||||
*****************************************************************************/
|
||||
#define TRC_CFG_EXTENSION_COUNT 0
|
||||
|
||||
/******************************************************************************
|
||||
* TRC_CFG_EXT_MAX_NAME_LEN
|
||||
*
|
||||
* Defines the maximum length of extension name(s), i.e. the <EXTENSION>_NAME
|
||||
* macro(s) in trcExtensions.h.
|
||||
*
|
||||
* This value should will by rounded up to the nearest multiple of 4, and must
|
||||
* not be zero. To disable extension support, see TRC_CFG_EXTENSION_COUNT.
|
||||
*
|
||||
* It is important that this setting is large enough so extension names are
|
||||
* not truncated, otherwise the host-side Tracealyzer application won't be able
|
||||
* to find the corresponding XML file.
|
||||
*
|
||||
* You may adjust this to reduce memory usage, or increase it to allow for
|
||||
* longer extension names.
|
||||
*
|
||||
* Default value is 20.
|
||||
*****************************************************************************/
|
||||
#define TRC_CFG_EXT_MAX_NAME_LEN 20
|
||||
|
||||
/******************************************************************************
|
||||
* TRC_EXTENSION_EVENTCODE_BASE
|
||||
*
|
||||
* The first event code used for the Extension system. This will be the first
|
||||
* event code of the first extension, and other event codes are relative to
|
||||
* this. This can be modified but this is normally not required.
|
||||
*****************************************************************************/
|
||||
#define TRC_EXTENSION_EVENTCODE_BASE 256
|
||||
|
||||
/*** Included Extensions ******************************************************
|
||||
*
|
||||
* Below you specify what extensions to include. For each
|
||||
* extension you must define:
|
||||
*
|
||||
* - HEADER: The header file that defines the trace extension.
|
||||
*
|
||||
* - EXTENSION_PREFIX: The first part of the HEADER definition names.
|
||||
*
|
||||
*****************************************************************************/
|
||||
#define TRC_EXT1_HEADER "aws_secure_sockets.tzext.h"
|
||||
#define TRC_EXT1_PREFIX TRC_EXT_SOCKETS
|
||||
|
||||
#define TRC_EXT2_HEADER "aws_wifi.tzext.h"
|
||||
#define TRC_EXT2_PREFIX TRC_EXT_WIFI
|
||||
|
||||
#define TRC_EXT3_HEADER "Here you specify the header file for Extensions 3."
|
||||
#define TRC_EXT3_PREFIX NOT_DEFINED
|
||||
|
||||
#define TRC_EXT4_HEADER "Here you specify the header file for Extensions 4."
|
||||
#define TRC_EXT4_PREFIX NOT_DEFINED
|
||||
|
||||
/*** Don't modify below ******************************************************/
|
||||
|
||||
#define ROUNDUP4(n) (4*((n+3)/4))
|
||||
|
||||
typedef struct{
|
||||
uint16_t firstEventCode;
|
||||
uint16_t lastEventCode;
|
||||
uint16_t patchVersion;
|
||||
uint8_t minorVersion;
|
||||
uint8_t majorVersion;
|
||||
char name[ROUNDUP4(TRC_CFG_EXT_MAX_NAME_LEN)];
|
||||
} PSFExtensionEntryType;
|
||||
|
||||
typedef struct{
|
||||
uint16_t extensionEntryCount;
|
||||
uint16_t baseEventCode;
|
||||
#if (TRC_CFG_EXTENSION_COUNT > 0)
|
||||
uint8_t extensionEntryNameMaxLength;
|
||||
uint8_t extensionEntrySize;
|
||||
PSFExtensionEntryType extension[TRC_CFG_EXTENSION_COUNT];
|
||||
#endif
|
||||
} PSFExtensionInfoType;
|
||||
|
||||
|
||||
extern PSFExtensionInfoType PSFExtensionInfo;
|
||||
|
||||
#define CAT(a, ...) PRIMITIVE_CAT(a, __VA_ARGS__)
|
||||
#define PRIMITIVE_CAT(a, ...) a ## __VA_ARGS__
|
||||
|
||||
#define TRC_EXT_BASECODE (PSFExtensionInfo.extension[TRC_EXT_NUMBER-1].firstEventCode)
|
||||
|
||||
#if (TRC_CFG_EXTENSION_COUNT >= 1)
|
||||
#ifdef TRC_EXT1_HEADER
|
||||
#define TRC_EXT_NUMBER 1
|
||||
#include TRC_EXT1_HEADER
|
||||
#undef TRC_EXT_NUMBER
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if (TRC_CFG_EXTENSION_COUNT >= 2)
|
||||
#ifdef TRC_EXT2_HEADER
|
||||
#define TRC_EXT_NUMBER 2
|
||||
#include TRC_EXT2_HEADER
|
||||
#undef TRC_EXT_NUMBER
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if (TRC_CFG_EXTENSION_COUNT >= 3)
|
||||
#ifdef TRC_EXT3_HEADER
|
||||
#define TRC_EXT_NUMBER 3
|
||||
#include TRC_EXT3_HEADER
|
||||
#undef TRC_EXT_NUMBER
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if (TRC_CFG_EXTENSION_COUNT == 4)
|
||||
#ifdef TRC_EXT3_HEADER
|
||||
#define TRC_EXT_NUMBER 4
|
||||
#include TRC_EXT4_HEADER
|
||||
#undef TRC_EXT_NUMBER
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define TRC_EXT1_COUNT CAT(TRC_EXT1_PREFIX, _COUNT)
|
||||
#define TRC_EXT2_COUNT CAT(TRC_EXT2_PREFIX, _COUNT)
|
||||
#define TRC_EXT3_COUNT CAT(TRC_EXT3_PREFIX, _COUNT)
|
||||
#define TRC_EXT4_COUNT CAT(TRC_EXT4_PREFIX, _COUNT)
|
||||
|
||||
#define TRC_EXT1_NAME CAT(TRC_EXT1_PREFIX, _NAME)
|
||||
#define TRC_EXT2_NAME CAT(TRC_EXT2_PREFIX, _NAME)
|
||||
#define TRC_EXT3_NAME CAT(TRC_EXT3_PREFIX, _NAME)
|
||||
#define TRC_EXT4_NAME CAT(TRC_EXT4_PREFIX, _NAME)
|
||||
|
||||
#define TRC_EXT1_VERSION_MAJOR CAT(TRC_EXT1_PREFIX, _VERSION_MAJOR)
|
||||
#define TRC_EXT2_VERSION_MAJOR CAT(TRC_EXT2_PREFIX, _VERSION_MAJOR)
|
||||
#define TRC_EXT3_VERSION_MAJOR CAT(TRC_EXT3_PREFIX, _VERSION_MAJOR)
|
||||
#define TRC_EXT4_VERSION_MAJOR CAT(TRC_EXT4_PREFIX, _VERSION_MAJOR)
|
||||
|
||||
#define TRC_EXT1_VERSION_MINOR CAT(TRC_EXT1_PREFIX, _VERSION_MINOR)
|
||||
#define TRC_EXT2_VERSION_MINOR CAT(TRC_EXT2_PREFIX, _VERSION_MINOR)
|
||||
#define TRC_EXT3_VERSION_MINOR CAT(TRC_EXT3_PREFIX, _VERSION_MINOR)
|
||||
#define TRC_EXT4_VERSION_MINOR CAT(TRC_EXT4_PREFIX, _VERSION_MINOR)
|
||||
|
||||
#define TRC_EXT1_VERSION_PATCH CAT(TRC_EXT1_PREFIX, _VERSION_PATCH)
|
||||
#define TRC_EXT2_VERSION_PATCH CAT(TRC_EXT2_PREFIX, _VERSION_PATCH)
|
||||
#define TRC_EXT3_VERSION_PATCH CAT(TRC_EXT3_PREFIX, _VERSION_PATCH)
|
||||
#define TRC_EXT4_VERSION_PATCH CAT(TRC_EXT4_PREFIX, _VERSION_PATCH)
|
||||
|
||||
#if ((TRC_CFG_EXTENSION_COUNT > 4) || (TRC_CFG_EXTENSION_COUNT < 0))
|
||||
#error "TRC_CFG_EXTENSION_COUNT must be in range [0..4]"
|
||||
#endif
|
||||
|
||||
#if (TRC_CFG_EXTENSION_COUNT == 0)
|
||||
#define TRC_EXTENSIONS_DATA
|
||||
#endif
|
||||
|
||||
#if (TRC_CFG_EXTENSION_COUNT == 1)
|
||||
#define TRC_EXTENSIONS_DATA \
|
||||
{ \
|
||||
{ TRC_EXTENSION_EVENTCODE_BASE, \
|
||||
TRC_EXTENSION_EVENTCODE_BASE + TRC_EXT1_COUNT-1, \
|
||||
TRC_EXT1_VERSION_PATCH, \
|
||||
TRC_EXT1_VERSION_MINOR, \
|
||||
TRC_EXT1_VERSION_MAJOR, \
|
||||
TRC_EXT1_NAME } \
|
||||
}
|
||||
#endif
|
||||
|
||||
#if (TRC_CFG_EXTENSION_COUNT == 2)
|
||||
#define TRC_EXTENSIONS_DATA \
|
||||
{ \
|
||||
{ TRC_EXTENSION_EVENTCODE_BASE, \
|
||||
TRC_EXTENSION_EVENTCODE_BASE + TRC_EXT1_COUNT-1, \
|
||||
TRC_EXT1_VERSION_PATCH, \
|
||||
TRC_EXT1_VERSION_MINOR, \
|
||||
TRC_EXT1_VERSION_MAJOR, \
|
||||
TRC_EXT1_NAME } \
|
||||
,{ TRC_EXTENSION_EVENTCODE_BASE + TRC_EXT1_COUNT, \
|
||||
TRC_EXTENSION_EVENTCODE_BASE + TRC_EXT1_COUNT + TRC_EXT2_COUNT-1, \
|
||||
TRC_EXT2_VERSION_PATCH, \
|
||||
TRC_EXT2_VERSION_MINOR, \
|
||||
TRC_EXT2_VERSION_MAJOR, \
|
||||
TRC_EXT2_NAME } \
|
||||
}
|
||||
#endif
|
||||
|
||||
#if (TRC_CFG_EXTENSION_COUNT == 3)
|
||||
#define TRC_EXTENSIONS_DATA \
|
||||
{ \
|
||||
{ TRC_EXTENSION_EVENTCODE_BASE, \
|
||||
TRC_EXTENSION_EVENTCODE_BASE + TRC_EXT1_COUNT-1, \
|
||||
TRC_EXT1_VERSION_PATCH, \
|
||||
TRC_EXT1_VERSION_MINOR, \
|
||||
TRC_EXT1_VERSION_MAJOR, \
|
||||
TRC_EXT1_NAME } \
|
||||
,{ TRC_EXTENSION_EVENTCODE_BASE + TRC_EXT1_COUNT, \
|
||||
TRC_EXTENSION_EVENTCODE_BASE + TRC_EXT1_COUNT + TRC_EXT2_COUNT-1, \
|
||||
TRC_EXT2_VERSION_PATCH, \
|
||||
TRC_EXT2_VERSION_MINOR, \
|
||||
TRC_EXT2_VERSION_MAJOR, \
|
||||
TRC_EXT2_NAME } \
|
||||
,{ TRC_EXTENSION_EVENTCODE_BASE + TRC_EXT1_COUNT + TRC_EXT2_COUNT, \
|
||||
TRC_EXTENSION_EVENTCODE_BASE + TRC_EXT1_COUNT + TRC_EXT2_COUNT + TRC_EXT3_COUNT - 1, \
|
||||
TRC_EXT3_VERSION_PATCH, \
|
||||
TRC_EXT3_VERSION_MINOR, \
|
||||
TRC_EXT3_VERSION_MAJOR, \
|
||||
TRC_EXT3_NAME } \
|
||||
}
|
||||
#endif
|
||||
#if (TRC_CFG_EXTENSION_COUNT == 4)
|
||||
#define TRC_EXTENSIONS_DATA \
|
||||
{ \
|
||||
{ TRC_EXTENSION_EVENTCODE_BASE, \
|
||||
TRC_EXTENSION_EVENTCODE_BASE + TRC_EXT1_COUNT-1, \
|
||||
TRC_EXT1_VERSION_PATCH, \
|
||||
TRC_EXT1_VERSION_MINOR, \
|
||||
TRC_EXT1_VERSION_MAJOR, \
|
||||
TRC_EXT1_NAME } \
|
||||
,{ TRC_EXTENSION_EVENTCODE_BASE + TRC_EXT1_COUNT, \
|
||||
TRC_EXTENSION_EVENTCODE_BASE + TRC_EXT1_COUNT + TRC_EXT2_COUNT-1, \
|
||||
TRC_EXT2_VERSION_PATCH, \
|
||||
TRC_EXT2_VERSION_MINOR, \
|
||||
TRC_EXT2_VERSION_MAJOR, \
|
||||
TRC_EXT2_NAME } \
|
||||
,{ TRC_EXTENSION_EVENTCODE_BASE + TRC_EXT1_COUNT + TRC_EXT2_COUNT, \
|
||||
TRC_EXTENSION_EVENTCODE_BASE + TRC_EXT1_COUNT + TRC_EXT2_COUNT + TRC_EXT3_COUNT - 1, \
|
||||
TRC_EXT3_VERSION_PATCH, \
|
||||
TRC_EXT3_VERSION_MINOR, \
|
||||
TRC_EXT3_VERSION_MAJOR, \
|
||||
TRC_EXT3_NAME } \
|
||||
,{ TRC_EXTENSION_EVENTCODE_BASE + TRC_EXT1_COUNT + TRC_EXT2_COUNT + TRC_EXT3_COUNT, \
|
||||
TRC_EXTENSION_EVENTCODE_BASE + TRC_EXT1_COUNT + TRC_EXT2_COUNT + TRC_EXT3_COUNT + TRC_EXT4_COUNT- 1, \
|
||||
TRC_EXT4_VERSION_PATCH, \
|
||||
TRC_EXT4_VERSION_MINOR, \
|
||||
TRC_EXT4_VERSION_MAJOR, \
|
||||
TRC_EXT4_NAME } \
|
||||
}
|
||||
#endif
|
||||
|
||||
#if (TRC_CFG_EXTENSION_COUNT > 0)
|
||||
#define TRC_EXTENSION_INFO {TRC_CFG_EXTENSION_COUNT, TRC_EXTENSION_EVENTCODE_BASE, ROUNDUP4(TRC_CFG_EXT_MAX_NAME_LEN), sizeof(PSFExtensionEntryType), TRC_EXTENSIONS_DATA}
|
||||
#else
|
||||
#define TRC_EXTENSION_INFO {TRC_CFG_EXTENSION_COUNT, TRC_EXTENSION_EVENTCODE_BASE}
|
||||
#endif
|
||||
|
||||
#endif /* TRCEXTENSIONS_H_ */
|
||||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -1,137 +1,138 @@
|
|||
/*******************************************************************************
|
||||
* Trace Recorder Library for Tracealyzer v4.1.5
|
||||
* Percepio AB, www.percepio.com
|
||||
*
|
||||
* trcPortDefines.h
|
||||
*
|
||||
* Some common defines for the trace recorder.
|
||||
*
|
||||
* Terms of Use
|
||||
* This file is part of the trace recorder library (RECORDER), which is the
|
||||
* intellectual property of Percepio AB (PERCEPIO) and provided under a
|
||||
* license as follows.
|
||||
* The RECORDER may be used free of charge for the purpose of recording data
|
||||
* intended for analysis in PERCEPIO products. It may not be used or modified
|
||||
* for other purposes without explicit permission from PERCEPIO.
|
||||
* You may distribute the RECORDER in its original source code form, assuming
|
||||
* this text (terms of use, disclaimer, copyright notice) is unchanged. You are
|
||||
* allowed to distribute the RECORDER with minor modifications intended for
|
||||
* configuration or porting of the RECORDER, e.g., to allow using it on a
|
||||
* specific processor, processor family or with a specific communication
|
||||
* interface. Any such modifications should be documented directly below
|
||||
* this comment block.
|
||||
*
|
||||
* Disclaimer
|
||||
* The RECORDER is being delivered to you AS IS and PERCEPIO makes no warranty
|
||||
* as to its use or performance. PERCEPIO does not and cannot warrant the
|
||||
* performance or results you may obtain by using the RECORDER or documentation.
|
||||
* PERCEPIO make no warranties, express or implied, as to noninfringement of
|
||||
* third party rights, merchantability, or fitness for any particular purpose.
|
||||
* In no event will PERCEPIO, its technology partners, or distributors be liable
|
||||
* to you for any consequential, incidental or special damages, including any
|
||||
* lost profits or lost savings, even if a representative of PERCEPIO has been
|
||||
* advised of the possibility of such damages, or for any claim by any third
|
||||
* party. Some jurisdictions do not allow the exclusion or limitation of
|
||||
* incidental, consequential or special damages, or the exclusion of implied
|
||||
* warranties or limitations on how long an implied warranty may last, so the
|
||||
* above limitations may not apply to you.
|
||||
*
|
||||
* Tabs are used for indent in this file (1 tab = 4 spaces)
|
||||
*
|
||||
* Copyright Percepio AB, 2018.
|
||||
* www.percepio.com
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef TRC_PORTDEFINES_H
|
||||
#define TRC_PORTDEFINES_H
|
||||
|
||||
#define TRC_FREE_RUNNING_32BIT_INCR 1
|
||||
#define TRC_FREE_RUNNING_32BIT_DECR 2
|
||||
#define TRC_OS_TIMER_INCR 3
|
||||
#define TRC_OS_TIMER_DECR 4
|
||||
#define TRC_CUSTOM_TIMER_INCR 5
|
||||
#define TRC_CUSTOM_TIMER_DECR 6
|
||||
|
||||
/* Start options for vTraceEnable. */
|
||||
#define TRC_INIT 0
|
||||
#define TRC_START 1
|
||||
#define TRC_START_AWAIT_HOST 2
|
||||
|
||||
/* Command codes for TzCtrl task */
|
||||
#define CMD_SET_ACTIVE 1 /* Start (param1 = 1) or Stop (param1 = 0) */
|
||||
|
||||
/* The final command code, used to validate commands. */
|
||||
#define CMD_LAST_COMMAND 1
|
||||
|
||||
#define TRC_RECORDER_MODE_SNAPSHOT 0
|
||||
#define TRC_RECORDER_MODE_STREAMING 1
|
||||
|
||||
#define TRC_RECORDER_BUFFER_ALLOCATION_STATIC (0x00)
|
||||
#define TRC_RECORDER_BUFFER_ALLOCATION_DYNAMIC (0x01)
|
||||
#define TRC_RECORDER_BUFFER_ALLOCATION_CUSTOM (0x02)
|
||||
|
||||
/* Filter Groups */
|
||||
#define FilterGroup0 (uint16_t)0x0001
|
||||
#define FilterGroup1 (uint16_t)0x0002
|
||||
#define FilterGroup2 (uint16_t)0x0004
|
||||
#define FilterGroup3 (uint16_t)0x0008
|
||||
#define FilterGroup4 (uint16_t)0x0010
|
||||
#define FilterGroup5 (uint16_t)0x0020
|
||||
#define FilterGroup6 (uint16_t)0x0040
|
||||
#define FilterGroup7 (uint16_t)0x0080
|
||||
#define FilterGroup8 (uint16_t)0x0100
|
||||
#define FilterGroup9 (uint16_t)0x0200
|
||||
#define FilterGroup10 (uint16_t)0x0400
|
||||
#define FilterGroup11 (uint16_t)0x0800
|
||||
#define FilterGroup12 (uint16_t)0x1000
|
||||
#define FilterGroup13 (uint16_t)0x2000
|
||||
#define FilterGroup14 (uint16_t)0x4000
|
||||
#define FilterGroup15 (uint16_t)0x8000
|
||||
|
||||
/******************************************************************************
|
||||
* Supported ports
|
||||
*
|
||||
* TRC_HARDWARE_PORT_HWIndependent
|
||||
* A hardware independent fallback option for event timestamping. Provides low
|
||||
* resolution timestamps based on the OS tick.
|
||||
* This may be used on the Win32 port, but may also be used on embedded hardware
|
||||
* platforms. All time durations will be truncated to the OS tick frequency,
|
||||
* typically 1 KHz. This means that a task or ISR that executes in less than
|
||||
* 1 ms get an execution time of zero.
|
||||
*
|
||||
* TRC_HARDWARE_PORT_APPLICATION_DEFINED
|
||||
* Allows for defining the port macros in other source code files.
|
||||
*
|
||||
* TRC_HARDWARE_PORT_Win32
|
||||
* "Accurate" timestamping based on the Windows performance counter for Win32
|
||||
* builds. Note that this gives the host machine time, not the kernel time.
|
||||
*
|
||||
* Hardware specific ports
|
||||
* To get accurate timestamping, a hardware timer is necessary. Below are the
|
||||
* available ports. Some of these are "unofficial", meaning that
|
||||
* they have not yet been verified by Percepio but have been contributed by
|
||||
* external developers. They should work, otherwise let us know by emailing
|
||||
* support@percepio.com. Some work on any OS platform, while other are specific
|
||||
* to a certain operating system.
|
||||
*****************************************************************************/
|
||||
|
||||
/****** Port Name ************************************* Code ** Official ** OS Platform *********/
|
||||
#define TRC_HARDWARE_PORT_APPLICATION_DEFINED 98 /* - - */
|
||||
#define TRC_HARDWARE_PORT_NOT_SET 99 /* - - */
|
||||
#define TRC_HARDWARE_PORT_HWIndependent 0 /* Yes Any */
|
||||
#define TRC_HARDWARE_PORT_Win32 1 /* Yes FreeRTOS on Win32 */
|
||||
#define TRC_HARDWARE_PORT_Atmel_AT91SAM7 2 /* No Any */
|
||||
#define TRC_HARDWARE_PORT_Atmel_UC3A0 3 /* No Any */
|
||||
#define TRC_HARDWARE_PORT_ARM_Cortex_M 4 /* Yes Any */
|
||||
#define TRC_HARDWARE_PORT_Renesas_RX600 6 /* Yes Any */
|
||||
#define TRC_HARDWARE_PORT_MICROCHIP_PIC24_PIC32 7 /* Yes Any */
|
||||
#define TRC_HARDWARE_PORT_TEXAS_INSTRUMENTS_TMS570_RM48 8 /* Yes Any */
|
||||
#define TRC_HARDWARE_PORT_TEXAS_INSTRUMENTS_MSP430 9 /* No Any */
|
||||
#define TRC_HARDWARE_PORT_XILINX_PPC405 11 /* No FreeRTOS */
|
||||
#define TRC_HARDWARE_PORT_XILINX_PPC440 12 /* No FreeRTOS */
|
||||
#define TRC_HARDWARE_PORT_XILINX_MICROBLAZE 13 /* No Any */
|
||||
#define TRC_HARDWARE_PORT_NXP_LPC210X 14 /* No Any */
|
||||
#define TRC_HARDWARE_PORT_ARM_CORTEX_A9 15 /* Yes Any */
|
||||
#define TRC_HARDWARE_PORT_POWERPC_Z4 16 /* No FreeRTOS */
|
||||
#define TRC_HARDWARE_PORT_Altera_NiosII 17 /* No Any */
|
||||
#endif /*TRC_PORTDEFINES_H*/
|
||||
/*******************************************************************************
|
||||
* Trace Recorder Library for Tracealyzer v4.3.11
|
||||
* Percepio AB, www.percepio.com
|
||||
*
|
||||
* trcPortDefines.h
|
||||
*
|
||||
* Some common defines for the trace recorder.
|
||||
*
|
||||
* Terms of Use
|
||||
* This file is part of the trace recorder library (RECORDER), which is the
|
||||
* intellectual property of Percepio AB (PERCEPIO) and provided under a
|
||||
* license as follows.
|
||||
* The RECORDER may be used free of charge for the purpose of recording data
|
||||
* intended for analysis in PERCEPIO products. It may not be used or modified
|
||||
* for other purposes without explicit permission from PERCEPIO.
|
||||
* You may distribute the RECORDER in its original source code form, assuming
|
||||
* this text (terms of use, disclaimer, copyright notice) is unchanged. You are
|
||||
* allowed to distribute the RECORDER with minor modifications intended for
|
||||
* configuration or porting of the RECORDER, e.g., to allow using it on a
|
||||
* specific processor, processor family or with a specific communication
|
||||
* interface. Any such modifications should be documented directly below
|
||||
* this comment block.
|
||||
*
|
||||
* Disclaimer
|
||||
* The RECORDER is being delivered to you AS IS and PERCEPIO makes no warranty
|
||||
* as to its use or performance. PERCEPIO does not and cannot warrant the
|
||||
* performance or results you may obtain by using the RECORDER or documentation.
|
||||
* PERCEPIO make no warranties, express or implied, as to noninfringement of
|
||||
* third party rights, merchantability, or fitness for any particular purpose.
|
||||
* In no event will PERCEPIO, its technology partners, or distributors be liable
|
||||
* to you for any consequential, incidental or special damages, including any
|
||||
* lost profits or lost savings, even if a representative of PERCEPIO has been
|
||||
* advised of the possibility of such damages, or for any claim by any third
|
||||
* party. Some jurisdictions do not allow the exclusion or limitation of
|
||||
* incidental, consequential or special damages, or the exclusion of implied
|
||||
* warranties or limitations on how long an implied warranty may last, so the
|
||||
* above limitations may not apply to you.
|
||||
*
|
||||
* Tabs are used for indent in this file (1 tab = 4 spaces)
|
||||
*
|
||||
* Copyright Percepio AB, 2018.
|
||||
* www.percepio.com
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef TRC_PORTDEFINES_H
|
||||
#define TRC_PORTDEFINES_H
|
||||
|
||||
#define TRC_FREE_RUNNING_32BIT_INCR 1
|
||||
#define TRC_FREE_RUNNING_32BIT_DECR 2
|
||||
#define TRC_OS_TIMER_INCR 3
|
||||
#define TRC_OS_TIMER_DECR 4
|
||||
#define TRC_CUSTOM_TIMER_INCR 5
|
||||
#define TRC_CUSTOM_TIMER_DECR 6
|
||||
|
||||
/* Start options for vTraceEnable. */
|
||||
#define TRC_INIT 0
|
||||
#define TRC_START 1
|
||||
#define TRC_START_AWAIT_HOST 2
|
||||
|
||||
/* Command codes for TzCtrl task */
|
||||
#define CMD_SET_ACTIVE 1 /* Start (param1 = 1) or Stop (param1 = 0) */
|
||||
|
||||
/* The final command code, used to validate commands. */
|
||||
#define CMD_LAST_COMMAND 1
|
||||
|
||||
#define TRC_RECORDER_MODE_SNAPSHOT 0
|
||||
#define TRC_RECORDER_MODE_STREAMING 1
|
||||
|
||||
#define TRC_RECORDER_BUFFER_ALLOCATION_STATIC (0x00)
|
||||
#define TRC_RECORDER_BUFFER_ALLOCATION_DYNAMIC (0x01)
|
||||
#define TRC_RECORDER_BUFFER_ALLOCATION_CUSTOM (0x02)
|
||||
|
||||
/* Filter Groups */
|
||||
#define FilterGroup0 (uint16_t)0x0001
|
||||
#define FilterGroup1 (uint16_t)0x0002
|
||||
#define FilterGroup2 (uint16_t)0x0004
|
||||
#define FilterGroup3 (uint16_t)0x0008
|
||||
#define FilterGroup4 (uint16_t)0x0010
|
||||
#define FilterGroup5 (uint16_t)0x0020
|
||||
#define FilterGroup6 (uint16_t)0x0040
|
||||
#define FilterGroup7 (uint16_t)0x0080
|
||||
#define FilterGroup8 (uint16_t)0x0100
|
||||
#define FilterGroup9 (uint16_t)0x0200
|
||||
#define FilterGroup10 (uint16_t)0x0400
|
||||
#define FilterGroup11 (uint16_t)0x0800
|
||||
#define FilterGroup12 (uint16_t)0x1000
|
||||
#define FilterGroup13 (uint16_t)0x2000
|
||||
#define FilterGroup14 (uint16_t)0x4000
|
||||
#define FilterGroup15 (uint16_t)0x8000
|
||||
|
||||
/******************************************************************************
|
||||
* Supported ports
|
||||
*
|
||||
* TRC_HARDWARE_PORT_HWIndependent
|
||||
* A hardware independent fallback option for event timestamping. Provides low
|
||||
* resolution timestamps based on the OS tick.
|
||||
* This may be used on the Win32 port, but may also be used on embedded hardware
|
||||
* platforms. All time durations will be truncated to the OS tick frequency,
|
||||
* typically 1 KHz. This means that a task or ISR that executes in less than
|
||||
* 1 ms get an execution time of zero.
|
||||
*
|
||||
* TRC_HARDWARE_PORT_APPLICATION_DEFINED
|
||||
* Allows for defining the port macros in other source code files.
|
||||
*
|
||||
* TRC_HARDWARE_PORT_Win32
|
||||
* "Accurate" timestamping based on the Windows performance counter for Win32
|
||||
* builds. Note that this gives the host machine time, not the kernel time.
|
||||
*
|
||||
* Hardware specific ports
|
||||
* To get accurate timestamping, a hardware timer is necessary. Below are the
|
||||
* available ports. Some of these are "unofficial", meaning that
|
||||
* they have not yet been verified by Percepio but have been contributed by
|
||||
* external developers. They should work, otherwise let us know by emailing
|
||||
* support@percepio.com. Some work on any OS platform, while other are specific
|
||||
* to a certain operating system.
|
||||
*****************************************************************************/
|
||||
|
||||
/****** Port Name ************************************* Code ** Official ** OS Platform *********/
|
||||
#define TRC_HARDWARE_PORT_APPLICATION_DEFINED 98 /* - - */
|
||||
#define TRC_HARDWARE_PORT_NOT_SET 99 /* - - */
|
||||
#define TRC_HARDWARE_PORT_HWIndependent 0 /* Yes Any */
|
||||
#define TRC_HARDWARE_PORT_Win32 1 /* Yes FreeRTOS on Win32 */
|
||||
#define TRC_HARDWARE_PORT_Atmel_AT91SAM7 2 /* No Any */
|
||||
#define TRC_HARDWARE_PORT_Atmel_UC3A0 3 /* No Any */
|
||||
#define TRC_HARDWARE_PORT_ARM_Cortex_M 4 /* Yes Any */
|
||||
#define TRC_HARDWARE_PORT_Renesas_RX600 6 /* Yes Any */
|
||||
#define TRC_HARDWARE_PORT_MICROCHIP_PIC24_PIC32 7 /* Yes Any */
|
||||
#define TRC_HARDWARE_PORT_TEXAS_INSTRUMENTS_TMS570_RM48 8 /* Yes Any */
|
||||
#define TRC_HARDWARE_PORT_TEXAS_INSTRUMENTS_MSP430 9 /* No Any */
|
||||
#define TRC_HARDWARE_PORT_XILINX_PPC405 11 /* No FreeRTOS */
|
||||
#define TRC_HARDWARE_PORT_XILINX_PPC440 12 /* No FreeRTOS */
|
||||
#define TRC_HARDWARE_PORT_XILINX_MICROBLAZE 13 /* No Any */
|
||||
#define TRC_HARDWARE_PORT_XILINX_ZyncUltraScaleR5 14 /* No FreeRTOS */
|
||||
#define TRC_HARDWARE_PORT_NXP_LPC210X 15 /* No Any */
|
||||
#define TRC_HARDWARE_PORT_ARM_CORTEX_A9 16 /* Yes Any */
|
||||
#define TRC_HARDWARE_PORT_POWERPC_Z4 17 /* No FreeRTOS */
|
||||
#define TRC_HARDWARE_PORT_Altera_NiosII 18 /* Yes Any (Tested with FreeRTOS) */
|
||||
#endif /*TRC_PORTDEFINES_H*/
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue