mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-10-17 10:17:45 -04:00
Percepio Trace Recorder v4.6.0 (#789)
* * Percepio Trace Recorder v4.6.0 * Add space between inclusion of header and comment * Fix broken posix build - part 1 * Add percepio timer implementation * Remove delted trace recorder header file * Fix Networking demo build * Fix CLI demo * Fix visual studio version number * Fix core header check * Fix more core checks * Fix last of core checks Co-authored-by: Aniruddha Kanhere <60444055+AniruddhaKanhere@users.noreply.github.com> Co-authored-by: Alfred Gedeon <alfred2g@hotmail.com>
This commit is contained in:
parent
aa316fc1b4
commit
c568ba8c44
143 changed files with 23823 additions and 16781 deletions
258
FreeRTOS-Plus/Source/FreeRTOS-Plus-Trace/Include/trcEntryTable.h
Normal file
258
FreeRTOS-Plus/Source/FreeRTOS-Plus-Trace/Include/trcEntryTable.h
Normal file
|
@ -0,0 +1,258 @@
|
|||
/*
|
||||
* Percepio Trace Recorder for Tracealyzer v4.6.0
|
||||
* Copyright 2021 Percepio AB
|
||||
* www.percepio.com
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file
|
||||
*
|
||||
* @brief Public trace entry table APIs.
|
||||
*/
|
||||
|
||||
#ifndef TRC_ENTRY_TABLE_H
|
||||
#define TRC_ENTRY_TABLE_H
|
||||
|
||||
#if (TRC_USE_TRACEALYZER_RECORDER == 1)
|
||||
|
||||
#if (TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_STREAMING)
|
||||
|
||||
#include <trcTypes.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @defgroup trace_entry_table_apis Trace Entry Table APIs
|
||||
* @ingroup trace_recorder_apis
|
||||
* @{
|
||||
*/
|
||||
|
||||
#define TRC_ENTRY_CREATE_WITH_ADDRESS(_pvAddress, _pxEntryHandle) (xTraceEntryCreate(_pxEntryHandle) == TRC_SUCCESS ? (((TraceEntry_t*)*(_pxEntryHandle))->pvAddress = (_pvAddress), TRC_SUCCESS) : TRC_FAIL)
|
||||
#define TRC_ENTRY_SET_STATE(xEntryHandle, uiStateIndex, uxState) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_2(((TraceEntry_t*)(xEntryHandle))->xStates[uiStateIndex] = (uxState), TRC_SUCCESS)
|
||||
#define TRC_ENTRY_SET_OPTIONS(xEntryHandle, uiMask) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_2(((TraceEntry_t*)(xEntryHandle))->uiOptions |= (uiMask), TRC_SUCCESS)
|
||||
#define TRC_ENTRY_CLEAR_OPTIONS(xEntryHandle, uiMask) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_2(((TraceEntry_t*)(xEntryHandle))->uiOptions &= ~(uiMask), TRC_SUCCESS)
|
||||
#define TRC_ENTRY_GET_ADDRESS(xEntryHandle, ppvAddress) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_2(*(ppvAddress) = ((TraceEntry_t*)(xEntryHandle))->pvAddress, TRC_SUCCESS)
|
||||
#define TRC_ENTRY_GET_SYMBOL(xEntryHandle, pszSymbol) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_2(*(pszSymbol) = ((TraceEntry_t*)(xEntryHandle))->szSymbol, TRC_SUCCESS)
|
||||
#define TRC_ENTRY_GET_STATE(xEntryHandle, uiStateIndex, puxState) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_2(*(puxState) = ((TraceEntry_t*)(xEntryHandle))->xStates[uiStateIndex], TRC_SUCCESS)
|
||||
#define TRC_ENTRY_GET_OPTIONS(xEntryHandle, puiOptions) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_2(*(puiOptions) = ((TraceEntry_t*)(xEntryHandle))->uiOptions, TRC_SUCCESS)
|
||||
|
||||
#define TRC_ENTRY_TABLE_SLOTS (TRC_CFG_ENTRY_SLOTS)
|
||||
#define TRC_ENTRY_TABLE_STATE_COUNT (3)
|
||||
#define TRC_ENTRY_TABLE_SYMBOL_LENGTH (TRC_CFG_ENTRY_SYMBOL_MAX_LENGTH)
|
||||
#define TRC_ENTRY_TABLE_SLOT_SYMBOL_SIZE ((((sizeof(char) * TRC_ENTRY_TABLE_SYMBOL_LENGTH) + (sizeof(uint32_t) - 1)) / sizeof(uint32_t)) * sizeof(uint32_t))
|
||||
|
||||
/** Trace Entry Structure */
|
||||
typedef struct TraceEntry
|
||||
{
|
||||
void* pvAddress; /**< */
|
||||
TraceUnsignedBaseType_t xStates[TRC_ENTRY_TABLE_STATE_COUNT]; /**< */
|
||||
uint32_t uiOptions; /**< */
|
||||
char szSymbol[TRC_ENTRY_TABLE_SLOT_SYMBOL_SIZE]; /**< */
|
||||
} TraceEntry_t;
|
||||
|
||||
#define TRC_ENTRY_TABLE_SIZE (sizeof(uint32_t) + sizeof(uint32_t) + sizeof(uint32_t) + (sizeof(TraceEntry_t) * (TRC_ENTRY_TABLE_SLOTS)))
|
||||
|
||||
/** Trace Entry Table Buffer Structure */
|
||||
typedef struct TraceEntryTableBuffer
|
||||
{
|
||||
uint8_t buffer[(TRC_ENTRY_TABLE_SIZE)]; /**< */
|
||||
} TraceEntryTableBuffer_t;
|
||||
|
||||
/**
|
||||
* @internal Initialize trace entry table.
|
||||
*
|
||||
* This routine initializes the trace entry table which maps objects to
|
||||
* symbolic identifiers, state information, and options.
|
||||
*
|
||||
* @param[in] pxBuffer Pointer to uninitialized trace entry table buffer.
|
||||
*
|
||||
* @retval TRC_FAIL Failure
|
||||
* @retval TRC_SUCCESS Success
|
||||
*/
|
||||
traceResult xTraceEntryTableInitialize(TraceEntryTableBuffer_t* pxBuffer);
|
||||
|
||||
/**
|
||||
* @brief Creates trace entry.
|
||||
*
|
||||
* @param[out] pxEntryHandle Pointer to uninitialized trace entry handle.
|
||||
*
|
||||
* @retval TRC_FAIL Failure
|
||||
* @retval TRC_SUCCESS Success
|
||||
*/
|
||||
traceResult xTraceEntryCreate(TraceEntryHandle_t *pxEntryHandle);
|
||||
|
||||
/**
|
||||
* @brief Deletes trace entry.
|
||||
*
|
||||
* @param[in] xEntryHandle Pointer to initialized trace entry handle.
|
||||
*
|
||||
* @retval TRC_FAIL Failure
|
||||
* @retval TRC_SUCCESS Success
|
||||
*/
|
||||
traceResult xTraceEntryDelete(TraceEntryHandle_t xEntryHandle);
|
||||
|
||||
/**
|
||||
* @brief Finds trace entry mapped to object address.
|
||||
*
|
||||
* @param[in] pvAddress Address of object.
|
||||
* @param[out] pxEntryHandle Pointer to uninitialized trace entry handle.
|
||||
*
|
||||
* @retval TRC_FAIL Failure
|
||||
* @retval TRC_SUCCESS Success
|
||||
*/
|
||||
traceResult xTraceEntryFind(void* pvAddress, TraceEntryHandle_t* pxEntryHandle);
|
||||
|
||||
/**
|
||||
* @brief Gets the number of entries in the trace entry table.
|
||||
*
|
||||
* @param[out] puiCount Count.
|
||||
*
|
||||
* @retval TRC_FAIL Failure
|
||||
* @retval TRC_SUCCESS Success
|
||||
*/
|
||||
traceResult xTraceEntryGetCount(uint32_t* puiCount);
|
||||
|
||||
/**
|
||||
* @brief Gets trace table entry at index.
|
||||
*
|
||||
* @param[in] index Entry index.
|
||||
* @param[out] pxEntryHandle Pointer to uninitialized trace entry handle.
|
||||
*
|
||||
* @retval TRC_FAIL Failure
|
||||
* @retval TRC_SUCCESS Success
|
||||
*/
|
||||
traceResult xTraceEntryGetAtIndex(uint32_t index, TraceEntryHandle_t* pxEntryHandle);
|
||||
|
||||
/**
|
||||
* @brief Sets symbol for entry.
|
||||
*
|
||||
* @param[in] xEntryHandle Pointer to initialized trace entry handle.
|
||||
* @param[out] szSymbol Pointer to symbol string, set by function
|
||||
*
|
||||
* @retval TRC_FAIL Failure
|
||||
* @retval TRC_SUCCESS Success
|
||||
*/
|
||||
traceResult xTraceEntrySetSymbol(TraceEntryHandle_t xEntryHandle, const char* szSymbol);
|
||||
|
||||
#if ((TRC_CFG_USE_TRACE_ASSERT) == 1)
|
||||
|
||||
/**
|
||||
* @brief Creates trace entry mapped to memory address.
|
||||
*
|
||||
* @param[in] pvAddress Address.
|
||||
* @param[out] pxEntryHandle Pointer to uninitialized trace entry handle.
|
||||
*
|
||||
* @retval TRC_FAIL Failure
|
||||
* @retval TRC_SUCCESS Success
|
||||
*/
|
||||
traceResult xTraceEntryCreateWithAddress(void* pvAddress, TraceEntryHandle_t* pxEntryHandle);
|
||||
|
||||
/**
|
||||
* @brief Sets trace entry state.
|
||||
*
|
||||
* @param[in] xEntryHandle Pointer to initialized trace entry handle.
|
||||
* @param[in] uiStateIndex Index of state (< TRC_ENTRY_TABLE_STATE_COUNT).
|
||||
* @param[in] uxState State.
|
||||
*
|
||||
* @retval TRC_FAIL Failure
|
||||
* @retval TRC_SUCCESS Success
|
||||
*/
|
||||
traceResult xTraceEntrySetState(TraceEntryHandle_t xEntryHandle, uint32_t uiStateIndex, TraceUnsignedBaseType_t uxState);
|
||||
|
||||
/**
|
||||
* @brief Sets trace entry option(s).
|
||||
*
|
||||
* @param[in] xEntryHandle Pointer to initialized trace entry handle.
|
||||
* @param[in] uiMask Option(s) set mask.
|
||||
*
|
||||
* @retval TRC_FAIL Failure
|
||||
* @retval TRC_SUCCESS Success
|
||||
*/
|
||||
traceResult xTraceEntrySetOptions(TraceEntryHandle_t xEntryHandle, uint32_t uiMask);
|
||||
|
||||
/**
|
||||
* @brief Clears trace entry option(s).
|
||||
*
|
||||
* @param[in] xEntryHandle Pointer to initialized trace entry handle.
|
||||
* @param[in] uiMask Options(s) clear mask.
|
||||
*
|
||||
* @retval TRC_FAIL Failure
|
||||
* @retval TRC_SUCCESS Success
|
||||
*/
|
||||
traceResult xTraceEntryClearOptions(TraceEntryHandle_t xEntryHandle, uint32_t uiMask);
|
||||
|
||||
/**
|
||||
* @brief Gets linked address for trace entry.
|
||||
*
|
||||
* @param[in] xEntryHandle Pointer to initialized trace entry handle.
|
||||
* @param[out] ppvAddress Address.
|
||||
*
|
||||
* @retval TRC_FAIL Failure
|
||||
* @retval TRC_SUCCESS Success
|
||||
*/
|
||||
traceResult xTraceEntryGetAddress(TraceEntryHandle_t xEntryHandle, void **ppvAddress);
|
||||
|
||||
/**
|
||||
* @brief Gets symbol for trace entry.
|
||||
*
|
||||
* @param[in] xEntryHandle Pointer to initialized trace entry handle.
|
||||
* @param[out] pszSymbol Symbol.
|
||||
*
|
||||
* @retval TRC_FAIL Failure
|
||||
* @retval TRC_SUCCESS Success
|
||||
*/
|
||||
traceResult xTraceEntryGetSymbol(TraceEntryHandle_t xEntryHandle, const char** pszSymbol);
|
||||
|
||||
/**
|
||||
* @brief Gets state for trace entry.
|
||||
*
|
||||
* @param[in] xEntryHandle Pointer to initialized trace entry handle.
|
||||
* @param[in] uiStateIndex State index (< TRC_ENTRY_TABLE_STATE_COUNT).
|
||||
* @param[out] puxState State.
|
||||
*
|
||||
* @retval TRC_FAIL Failure
|
||||
* @retval TRC_SUCCESS Success
|
||||
*/
|
||||
traceResult xTraceEntryGetState(TraceEntryHandle_t xEntryHandle, uint32_t uiStateIndex, TraceUnsignedBaseType_t *puxState);
|
||||
|
||||
/**
|
||||
* @brief Gets options for trace entry.
|
||||
*
|
||||
* @param[in] xEntryHandle Pointer to initialized trace entry handle.
|
||||
* @param[out] puiOptions Options.
|
||||
*
|
||||
* @retval TRC_FAIL Failure
|
||||
* @retval TRC_SUCCESS Success
|
||||
*/
|
||||
traceResult xTraceEntryGetOptions(TraceEntryHandle_t xEntryHandle, uint32_t *puiOptions);
|
||||
|
||||
#else
|
||||
|
||||
#define xTraceEntryCreateWithAddress TRC_ENTRY_CREATE_WITH_ADDRESS
|
||||
|
||||
#define xTraceEntrySetState TRC_ENTRY_SET_STATE
|
||||
#define xTraceEntrySetOptions TRC_ENTRY_SET_OPTIONS
|
||||
#define xTraceEntryClearOptions TRC_ENTRY_CLEAR_OPTIONS
|
||||
|
||||
#define xTraceEntryGetAddress TRC_ENTRY_GET_ADDRESS
|
||||
#define xTraceEntryGetSymbol TRC_ENTRY_GET_SYMBOL
|
||||
#define xTraceEntryGetState TRC_ENTRY_GET_STATE
|
||||
#define xTraceEntryGetOptions TRC_ENTRY_GET_OPTIONS
|
||||
|
||||
#endif /* ((TRC_CFG_USE_TRACE_ASSERT) == 1) */
|
||||
|
||||
/** @} */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* (TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_STREAMING) */
|
||||
|
||||
#endif /* (TRC_USE_TRACEALYZER_RECORDER == 1) */
|
||||
|
||||
#endif /* TRC_ENTRY_TABLE_H */
|
Loading…
Add table
Add a link
Reference in a new issue