mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-08-20 10:08:33 -04:00
Final commit before tagging - cosmetic changes only.
This commit is contained in:
parent
3291f5a08d
commit
1b010fbaa7
8 changed files with 96 additions and 96 deletions
|
@ -1,40 +1,39 @@
|
|||
/*******************************************************************************
|
||||
* Tracealyzer v2.7.0 Recorder Library
|
||||
/*******************************************************************************
|
||||
* Tracealyzer v2.7.7 Recorder Library
|
||||
* Percepio AB, www.percepio.com
|
||||
*
|
||||
* trcHardwarePort.c
|
||||
* trcBase.c
|
||||
*
|
||||
* Contains together with trcHardwarePort.h all hardware portability issues of
|
||||
* the trace recorder library.
|
||||
* Core functionality of the trace recorder library.
|
||||
*
|
||||
* Terms of Use
|
||||
* This software is copyright Percepio AB. The recorder library is free for
|
||||
* use together with Percepio products. You may distribute the recorder library
|
||||
* in its original form, including modifications in trcPort.c and trcPort.h
|
||||
* in its original form, including modifications in trcHardwarePort.c/.h
|
||||
* given that these modification are clearly marked as your own modifications
|
||||
* and documented in the initial comment section of these source files.
|
||||
* This software is the intellectual property of Percepio AB and may not be
|
||||
* sold or in other ways commercially redistributed without explicit written
|
||||
* and documented in the initial comment section of these source files.
|
||||
* This software is the intellectual property of Percepio AB and may not be
|
||||
* sold or in other ways commercially redistributed without explicit written
|
||||
* permission by Percepio AB.
|
||||
*
|
||||
* Disclaimer
|
||||
* The trace tool and recorder library is being delivered to you AS IS and
|
||||
* Percepio AB makes no warranty as to its use or performance. Percepio AB does
|
||||
* not and cannot warrant the performance or results you may obtain by using the
|
||||
* software or documentation. Percepio AB 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 AB, 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 AB 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
|
||||
* Disclaimer
|
||||
* The trace tool and recorder library is being delivered to you AS IS and
|
||||
* Percepio AB makes no warranty as to its use or performance. Percepio AB does
|
||||
* not and cannot warrant the performance or results you may obtain by using the
|
||||
* software or documentation. Percepio AB 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 AB, 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 AB 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, 2014.
|
||||
* Copyright Percepio AB, 2012-2015.
|
||||
* www.percepio.com
|
||||
******************************************************************************/
|
||||
|
||||
|
@ -51,9 +50,9 @@ uint32_t last_timestamp = 0;
|
|||
/*******************************************************************************
|
||||
* uiTraceTickCount
|
||||
*
|
||||
* This variable is should be updated by the Kernel tick interrupt. This does
|
||||
* not need to be modified when developing a new timer port. It is preferred to
|
||||
* keep any timer port changes in the HWTC macro definitions, which typically
|
||||
* This variable is should be updated by the Kernel tick interrupt. This does
|
||||
* not need to be modified when developing a new timer port. It is preferred to
|
||||
* keep any timer port changes in the HWTC macro definitions, which typically
|
||||
* give sufficient flexibility.
|
||||
******************************************************************************/
|
||||
uint32_t uiTraceTickCount = 0;
|
||||
|
@ -81,7 +80,7 @@ void prvTraceInitCortexM()
|
|||
vTraceError("DWT_CYCCNT not supported by this chip!");
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
/* Reset the cycle counter */
|
||||
REG_DWT_CYCCNT = 0;
|
||||
|
||||
|
@ -89,9 +88,9 @@ void prvTraceInitCortexM()
|
|||
REG_DWT_CTRL |= DWT_CTRL_CYCCNTENA;
|
||||
|
||||
}while(0); /* breaks above jump here */
|
||||
|
||||
|
||||
if (RecorderDataPtr->frequency == 0)
|
||||
{
|
||||
{
|
||||
RecorderDataPtr->frequency = TRACE_CPU_CLOCK_HZ / HWTC_DIVISOR;
|
||||
}
|
||||
}
|
||||
|
@ -115,14 +114,14 @@ void vTracePortGetTimeStamp(uint32_t *pTimestamp)
|
|||
static uint32_t last_hwtc_count = 0;
|
||||
uint32_t traceTickCount = 0;
|
||||
uint32_t hwtc_count = 0;
|
||||
|
||||
|
||||
if (trace_disable_timestamp == 1)
|
||||
{
|
||||
if (pTimestamp)
|
||||
*pTimestamp = last_timestamp;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/* Retrieve HWTC_COUNT only once since the same value should be used all throughout this function. */
|
||||
#if (HWTC_COUNT_DIRECTION == DIRECTION_INCREMENTING)
|
||||
hwtc_count = HWTC_COUNT;
|
||||
|
@ -134,12 +133,12 @@ void vTracePortGetTimeStamp(uint32_t *pTimestamp)
|
|||
#endif
|
||||
|
||||
#if (SELECTED_PORT == PORT_Win32)
|
||||
/* The Win32 port uses ulGetRunTimeCounterValue for timestamping, which in turn
|
||||
uses QueryPerformanceCounter. That function is not always reliable when used over
|
||||
/* The Win32 port uses ulGetRunTimeCounterValue for timestamping, which in turn
|
||||
uses QueryPerformanceCounter. That function is not always reliable when used over
|
||||
multiple threads. We must therefore handle rare cases where the timestamp is less
|
||||
than the previous. In practice, the Win32 should "never" roll over since the
|
||||
than the previous. In practice, the Win32 should "never" roll over since the
|
||||
performance counter is 64 bit wide. */
|
||||
|
||||
|
||||
if (last_hwtc_count > hwtc_count)
|
||||
{
|
||||
hwtc_count = last_hwtc_count;
|
||||
|
@ -159,14 +158,14 @@ void vTracePortGetTimeStamp(uint32_t *pTimestamp)
|
|||
traceTickCount = uiTraceTickCount;
|
||||
}
|
||||
|
||||
/* Check for overflow. May occur if the update of uiTraceTickCount has been
|
||||
/* Check for overflow. May occur if the update of uiTraceTickCount has been
|
||||
delayed due to disabled interrupts. */
|
||||
if (traceTickCount == last_traceTickCount && hwtc_count < last_hwtc_count)
|
||||
{
|
||||
/* A trace tick has occurred but not been executed by the kernel, so we compensate manually. */
|
||||
traceTickCount++;
|
||||
}
|
||||
|
||||
|
||||
/* Check if the return address is OK, then we perform the calculation. */
|
||||
if (pTimestamp)
|
||||
{
|
||||
|
@ -174,10 +173,10 @@ void vTracePortGetTimeStamp(uint32_t *pTimestamp)
|
|||
*pTimestamp = traceTickCount * (HWTC_PERIOD / HWTC_DIVISOR);
|
||||
/* Increase timestamp by (hwtc_count + "lost hardware ticks from scaling down period") / HWTC_DIVISOR. */
|
||||
*pTimestamp += (hwtc_count + traceTickCount * (HWTC_PERIOD % HWTC_DIVISOR)) / HWTC_DIVISOR;
|
||||
|
||||
|
||||
last_timestamp = *pTimestamp;
|
||||
}
|
||||
|
||||
|
||||
/* Store the previous values. */
|
||||
last_traceTickCount = traceTickCount;
|
||||
last_hwtc_count = hwtc_count;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue