Minor bug fix in NTPDemo.c -> use of FREERTOS_INVALID_SOCKET in place of NULL.

Update trace recorder code to account for uxPendedTicks renaming to xPendedTicks.
This commit is contained in:
Richard Barry 2019-09-04 00:13:17 +00:00
parent ab41d89285
commit 96bad0f6c3
15 changed files with 2982 additions and 52 deletions

View file

@ -135,7 +135,7 @@ void vStartNTPTask( uint16_t usTaskStackSize, UBaseType_t uxTaskPriority )
else else
{ {
xUDPSocket = FreeRTOS_socket( FREERTOS_AF_INET, FREERTOS_SOCK_DGRAM, FREERTOS_IPPROTO_UDP ); xUDPSocket = FreeRTOS_socket( FREERTOS_AF_INET, FREERTOS_SOCK_DGRAM, FREERTOS_IPPROTO_UDP );
if( xUDPSocket != NULL ) if( xUDPSocket != FREERTOS_INVALID_SOCKET )
{ {
struct freertos_sockaddr xAddress; struct freertos_sockaddr xAddress;
#if( ipconfigUSE_CALLBACKS != 0 ) #if( ipconfigUSE_CALLBACKS != 0 )

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations"> <ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32"> <ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration> <Configuration>Debug</Configuration>
@ -13,19 +13,20 @@
<PropertyGroup Label="Globals"> <PropertyGroup Label="Globals">
<ProjectGuid>{C686325E-3261-42F7-AEB1-DDE5280E1CEB}</ProjectGuid> <ProjectGuid>{C686325E-3261-42F7-AEB1-DDE5280E1CEB}</ProjectGuid>
<ProjectName>RTOSDemo</ProjectName> <ProjectName>RTOSDemo</ProjectName>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc> <UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc> <UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings"> <ImportGroup Label="ExtensionSettings">

View file

@ -88,7 +88,7 @@ connections on the standard echo port (port 7), then echos back any data
received on that connection. received on that connection.
*/ */
#define mainCREATE_SIMPLE_UDP_CLIENT_SERVER_TASKS 1 #define mainCREATE_SIMPLE_UDP_CLIENT_SERVER_TASKS 1
#define mainCREATE_TCP_ECHO_TASKS_SINGLE 1 #define mainCREATE_TCP_ECHO_TASKS_SINGLE 0
#define mainCREATE_TCP_ECHO_SERVER_TASK 0 #define mainCREATE_TCP_ECHO_SERVER_TASK 0
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -292,7 +292,7 @@ const uint32_t ulMultiplier = 0x015a4e35UL, ulIncrement = 1UL;
static void prvSRand( UBaseType_t ulSeed ) static void prvSRand( UBaseType_t ulSeed )
{ {
/* Utility function to seed the pseudo random number generator. */ /* Utility function to seed the pseudo random number generator. */
ulNextRand = ulSeed; ulNextRand = ulSeed;
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/

View file

@ -3,7 +3,7 @@
* Percepio AB, www.percepio.com * Percepio AB, www.percepio.com
* *
* Terms of Use * Terms of Use
* This file is part of the trace recorder library (RECORDER), which is the * This file is part of the trace recorder library (RECORDER), which is the
* intellectual property of Percepio AB (PERCEPIO) and provided under a * intellectual property of Percepio AB (PERCEPIO) and provided under a
* license as follows. * license as follows.
* The RECORDER may be used free of charge for the purpose of recording data * The RECORDER may be used free of charge for the purpose of recording data
@ -12,14 +12,14 @@
* You may distribute the RECORDER in its original source code form, assuming * You may distribute the RECORDER in its original source code form, assuming
* this text (terms of use, disclaimer, copyright notice) is unchanged. You are * this text (terms of use, disclaimer, copyright notice) is unchanged. You are
* allowed to distribute the RECORDER with minor modifications intended for * allowed to distribute the RECORDER with minor modifications intended for
* configuration or porting of the RECORDER, e.g., to allow using it on a * configuration or porting of the RECORDER, e.g., to allow using it on a
* specific processor, processor family or with a specific communication * specific processor, processor family or with a specific communication
* interface. Any such modifications should be documented directly below * interface. Any such modifications should be documented directly below
* this comment block. * this comment block.
* *
* Disclaimer * Disclaimer
* The RECORDER is being delivered to you AS IS and PERCEPIO makes no warranty * 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 * 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. * performance or results you may obtain by using the RECORDER or documentation.
* PERCEPIO make no warranties, express or implied, as to noninfringement of * PERCEPIO make no warranties, express or implied, as to noninfringement of
* third party rights, merchantability, or fitness for any particular purpose. * third party rights, merchantability, or fitness for any particular purpose.
@ -60,15 +60,15 @@ extern "C" {
#define TRC_FREERTOS_VERSION_7_4 2 #define TRC_FREERTOS_VERSION_7_4 2
#define TRC_FREERTOS_VERSION_7_5_OR_7_6 3 #define TRC_FREERTOS_VERSION_7_5_OR_7_6 3
#define TRC_FREERTOS_VERSION_8_X 4 /* Any v8.x.x*/ #define TRC_FREERTOS_VERSION_8_X 4 /* Any v8.x.x*/
#define TRC_FREERTOS_VERSION_9_0_0 5 #define TRC_FREERTOS_VERSION_9_0_0 5
#define TRC_FREERTOS_VERSION_9_0_1 6 #define TRC_FREERTOS_VERSION_9_0_1 6
#define TRC_FREERTOS_VERSION_9_0_2 7 #define TRC_FREERTOS_VERSION_9_0_2 7
#define TRC_FREERTOS_VERSION_10_0_0 8 /* If using FreeRTOS v10.0.0 or later version */ #define TRC_FREERTOS_VERSION_10_0_0 8 /* If using FreeRTOS v10.0.0 or later version */
#define TRC_FREERTOS_VERSION_9_X 42 /* Not allowed anymore */ #define TRC_FREERTOS_VERSION_9_X 42 /* Not allowed anymore */
#if (TRC_CFG_FREERTOS_VERSION == TRC_FREERTOS_VERSION_9_X) #if (TRC_CFG_FREERTOS_VERSION == TRC_FREERTOS_VERSION_9_X)
/* This setting for TRC_CFG_FREERTOS_VERSION is no longer allowed as v9.0.1 needs special handling. */ /* This setting for TRC_CFG_FREERTOS_VERSION is no longer allowed as v9.0.1 needs special handling. */
#error "Please specify your exact FreeRTOS version in trcConfig.h, from the options listed above." #error "Please specify your exact FreeRTOS version in trcConfig.h, from the options listed above."
#endif #endif
@ -78,10 +78,10 @@ extern "C" {
#define prvGetStreamBufferType(x) 0 #define prvGetStreamBufferType(x) 0
#endif #endif
/* Added mainly for our internal testing. This makes it easier to create test applications that /* Added mainly for our internal testing. This makes it easier to create test applications that
runs on multiple FreeRTOS versions. */ runs on multiple FreeRTOS versions. */
#if (TRC_CFG_FREERTOS_VERSION < TRC_FREERTOS_VERSION_8_X) #if (TRC_CFG_FREERTOS_VERSION < TRC_FREERTOS_VERSION_8_X)
/* FreeRTOS v7.0 and later */ /* FreeRTOS v7.0 and later */
#define STRING_CAST(x) ( (signed char*) x ) #define STRING_CAST(x) ( (signed char*) x )
#define TickType portTickType #define TickType portTickType
#else #else
@ -183,8 +183,8 @@ void vTraceSetMessageBufferName(void* object, const char* name);
#endif /* (TRC_CFG_SCHEDULING_ONLY == 0) */ #endif /* (TRC_CFG_SCHEDULING_ONLY == 0) */
/******************************************************************************* /*******************************************************************************
* Note: Setting names for event groups is difficult to support, this has been * Note: Setting names for event groups is difficult to support, this has been
* excluded intentionally. This since we don't know if event_groups.c is * excluded intentionally. This since we don't know if event_groups.c is
* included in the build, so referencing it from the recorder may cause errors. * included in the build, so referencing it from the recorder may cause errors.
******************************************************************************/ ******************************************************************************/
@ -211,7 +211,7 @@ unsigned char prvTraceIsSchedulerSuspended(void);
#define TRACE_GET_OS_TICKS() (uiTraceTickCount) /* Streaming only */ #define TRACE_GET_OS_TICKS() (uiTraceTickCount) /* Streaming only */
/* If using dynamic allocation of snapshot trace buffer... */ /* If using dynamic allocation of snapshot trace buffer... */
#define TRACE_MALLOC(size) pvPortMalloc(size) #define TRACE_MALLOC(size) pvPortMalloc(size)
#if defined(configUSE_TIMERS) #if defined(configUSE_TIMERS)
#if (configUSE_TIMERS == 1) #if (configUSE_TIMERS == 1)
@ -221,7 +221,7 @@ unsigned char prvTraceIsSchedulerSuspended(void);
#endif /* configUSE_TIMERS */ #endif /* configUSE_TIMERS */
/* For ARM Cortex-M devices - assumes the ARM CMSIS API is available */ /* For ARM Cortex-M devices - assumes the ARM CMSIS API is available */
#if (defined (__CORTEX_M)) #if (defined (__CORTEX_M))
#define TRACE_ALLOC_CRITICAL_SECTION() uint32_t __irq_status; #define TRACE_ALLOC_CRITICAL_SECTION() uint32_t __irq_status;
#define TRACE_ENTER_CRITICAL_SECTION() {__irq_status = __get_PRIMASK(); __set_PRIMASK(1);} /* PRIMASK disables ALL interrupts - allows for tracing in any ISR */ #define TRACE_ENTER_CRITICAL_SECTION() {__irq_status = __get_PRIMASK(); __set_PRIMASK(1);} /* PRIMASK disables ALL interrupts - allows for tracing in any ISR */
#define TRACE_EXIT_CRITICAL_SECTION() {__set_PRIMASK(__irq_status);} #define TRACE_EXIT_CRITICAL_SECTION() {__set_PRIMASK(__irq_status);}
@ -242,11 +242,11 @@ unsigned char prvTraceIsSchedulerSuspended(void);
#if (TRC_CFG_HARDWARE_PORT == TRC_HARDWARE_PORT_POWERPC_Z4) #if (TRC_CFG_HARDWARE_PORT == TRC_HARDWARE_PORT_POWERPC_Z4)
#if (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_8_X) #if (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_8_X)
/* FreeRTOS v8.0 or later */ /* FreeRTOS v8.0 or later */
#define TRACE_ALLOC_CRITICAL_SECTION() UBaseType_t __irq_status; #define TRACE_ALLOC_CRITICAL_SECTION() UBaseType_t __irq_status;
#define TRACE_ENTER_CRITICAL_SECTION() {__irq_status = portSET_INTERRUPT_MASK_FROM_ISR();} #define TRACE_ENTER_CRITICAL_SECTION() {__irq_status = portSET_INTERRUPT_MASK_FROM_ISR();}
#define TRACE_EXIT_CRITICAL_SECTION() {portCLEAR_INTERRUPT_MASK_FROM_ISR(__irq_status);} #define TRACE_EXIT_CRITICAL_SECTION() {portCLEAR_INTERRUPT_MASK_FROM_ISR(__irq_status);}
#else #else
/* FreeRTOS v7.x */ /* FreeRTOS v7.x */
#define TRACE_ALLOC_CRITICAL_SECTION() unsigned portBASE_TYPE __irq_status; #define TRACE_ALLOC_CRITICAL_SECTION() unsigned portBASE_TYPE __irq_status;
#define TRACE_ENTER_CRITICAL_SECTION() {__irq_status = portSET_INTERRUPT_MASK_FROM_ISR();} #define TRACE_ENTER_CRITICAL_SECTION() {__irq_status = portSET_INTERRUPT_MASK_FROM_ISR();}
@ -342,7 +342,7 @@ void prvTraceSetStreamBufferNumberHigh16(void* handle, uint16_t value);
#else /* (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_10_0_0) */ #else /* (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_10_0_0) */
/* FreeRTOS versions before v10.0 does not support filtering for event groups */ /* FreeRTOS versions before v10.0 does not support filtering for event groups */
#define TRACE_GET_EVENTGROUP_FILTER(pxObject) 1 #define TRACE_GET_EVENTGROUP_FILTER(pxObject) 1
#define TRACE_SET_EVENTGROUP_FILTER(pxObject, group) #define TRACE_SET_EVENTGROUP_FILTER(pxObject, group)
#endif /* (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_10_0_0) */ #endif /* (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_10_0_0) */
#if (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_10_0_0) #if (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_10_0_0)
@ -351,7 +351,7 @@ void prvTraceSetStreamBufferNumberHigh16(void* handle, uint16_t value);
#else /* (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_10_0_0) */ #else /* (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_10_0_0) */
/* FreeRTOS versions before v10.0 does not support filtering for timers */ /* FreeRTOS versions before v10.0 does not support filtering for timers */
#define TRACE_GET_TIMER_FILTER(pxObject) 1 #define TRACE_GET_TIMER_FILTER(pxObject) 1
#define TRACE_SET_TIMER_FILTER(pxObject, group) #define TRACE_SET_TIMER_FILTER(pxObject, group)
#endif /* (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_10_0_0) */ #endif /* (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_10_0_0) */
#define TRACE_GET_STREAMBUFFER_FILTER(pxObject) prvTraceGetStreamBufferNumberHigh16((void*)pxObject) #define TRACE_GET_STREAMBUFFER_FILTER(pxObject) prvTraceGetStreamBufferNumberHigh16((void*)pxObject)
@ -363,7 +363,7 @@ void prvTraceSetStreamBufferNumberHigh16(void* handle, uint16_t value);
#define TRACE_SET_OBJECT_FILTER(CLASS, pxObject, group) TRACE_SET_##CLASS##_FILTER(pxObject, group) #define TRACE_SET_OBJECT_FILTER(CLASS, pxObject, group) TRACE_SET_##CLASS##_FILTER(pxObject, group)
#else /* (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_7_4) */ #else /* (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_7_4) */
#define TRACE_GET_OBJECT_FILTER(CLASS, pxObject) 1 #define TRACE_GET_OBJECT_FILTER(CLASS, pxObject) 1
#define TRACE_SET_OBJECT_FILTER(CLASS, pxObject, group) #define TRACE_SET_OBJECT_FILTER(CLASS, pxObject, group)
#endif /* (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_7_4) */ #endif /* (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_7_4) */
/******************************************************************************/ /******************************************************************************/
@ -451,7 +451,7 @@ void* prvTraceGetCurrentTaskHandle(void);
* TraceQueueClassTable * TraceQueueClassTable
* Translates a FreeRTOS QueueType into trace objects classes (TRACE_CLASS_). * Translates a FreeRTOS QueueType into trace objects classes (TRACE_CLASS_).
* Has one entry for each QueueType, gives TRACE_CLASS ID. * Has one entry for each QueueType, gives TRACE_CLASS ID.
******************************************************************************/ ******************************************************************************/
extern traceObjectClass TraceQueueClassTable[5]; extern traceObjectClass TraceQueueClassTable[5];
@ -824,11 +824,11 @@ extern traceObjectClass TraceQueueClassTable[5];
#define TRACE_GET_TASK_PRIORITY(pxTCB) ((uint8_t)pxTCB->uxPriority) #define TRACE_GET_TASK_PRIORITY(pxTCB) ((uint8_t)pxTCB->uxPriority)
#define TRACE_GET_TASK_NAME(pxTCB) ((char*)pxTCB->pcTaskName) #define TRACE_GET_TASK_NAME(pxTCB) ((char*)pxTCB->pcTaskName)
/*** The trace macros for snapshot mode **************************************/ /*** The trace macros for snapshot mode **************************************/
/* A macro that will update the tick count when returning from tickless idle */ /* A macro that will update the tick count when returning from tickless idle */
#undef traceINCREASE_TICK_COUNT #undef traceINCREASE_TICK_COUNT
#define traceINCREASE_TICK_COUNT( xCount ) #define traceINCREASE_TICK_COUNT( xCount )
/* Called for each task that becomes ready */ /* Called for each task that becomes ready */
#undef traceMOVED_TASK_TO_READY_STATE #undef traceMOVED_TASK_TO_READY_STATE
@ -847,7 +847,7 @@ extern traceObjectClass TraceQueueClassTable[5];
#else #else
#define traceTASK_INCREMENT_TICK( xTickCount ) \ #define traceTASK_INCREMENT_TICK( xTickCount ) \
if (uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdTRUE || uxPendedTicks == 0) { trcKERNEL_HOOKS_INCREMENT_TICK(); } \ if (uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdTRUE || xPendedTicks == 0) { trcKERNEL_HOOKS_INCREMENT_TICK(); } \
if (uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdFALSE) { trcKERNEL_HOOKS_NEW_TIME(DIV_NEW_TIME, xTickCount + 1); } if (uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdFALSE) { trcKERNEL_HOOKS_NEW_TIME(DIV_NEW_TIME, xTickCount + 1); }
#endif #endif
@ -955,7 +955,7 @@ extern traceObjectClass TraceQueueClassTable[5];
#undef traceCREATE_MUTEX #undef traceCREATE_MUTEX
#define traceCREATE_MUTEX( pxNewQueue ) \ #define traceCREATE_MUTEX( pxNewQueue ) \
trcKERNEL_HOOKS_OBJECT_CREATE(TRACE_GET_OBJECT_EVENT_CODE(CREATE_OBJ, TRCSUCCESS, QUEUE, pxNewQueue), QUEUE, pxNewQueue); trcKERNEL_HOOKS_OBJECT_CREATE(TRACE_GET_OBJECT_EVENT_CODE(CREATE_OBJ, TRCSUCCESS, QUEUE, pxNewQueue), QUEUE, pxNewQueue);
/* Called in xQueueCreateMutex when the operation fails (when memory allocation fails) */ /* Called in xQueueCreateMutex when the operation fails (when memory allocation fails) */
#undef traceCREATE_MUTEX_FAILED #undef traceCREATE_MUTEX_FAILED
#define traceCREATE_MUTEX_FAILED() \ #define traceCREATE_MUTEX_FAILED() \
@ -1302,7 +1302,7 @@ extern void vTraceStoreMemMangEvent(uint32_t ecode, uint32_t address, int32_t si
#define traceTASK_NOTIFY_FROM_ISR() \ #define traceTASK_NOTIFY_FROM_ISR() \
if (TRACE_GET_OBJECT_FILTER(TASK, xTaskToNotify) & CurrentFilterMask) \ if (TRACE_GET_OBJECT_FILTER(TASK, xTaskToNotify) & CurrentFilterMask) \
prvTraceStoreKernelCall(TRACE_TASK_NOTIFY_FROM_ISR, TRACE_CLASS_TASK, TRACE_GET_TASK_NUMBER(xTaskToNotify)); prvTraceStoreKernelCall(TRACE_TASK_NOTIFY_FROM_ISR, TRACE_CLASS_TASK, TRACE_GET_TASK_NUMBER(xTaskToNotify));
#undef traceTASK_NOTIFY_GIVE_FROM_ISR #undef traceTASK_NOTIFY_GIVE_FROM_ISR
#define traceTASK_NOTIFY_GIVE_FROM_ISR() \ #define traceTASK_NOTIFY_GIVE_FROM_ISR() \
if (TRACE_GET_OBJECT_FILTER(TASK, xTaskToNotify) & CurrentFilterMask) \ if (TRACE_GET_OBJECT_FILTER(TASK, xTaskToNotify) & CurrentFilterMask) \
@ -1317,7 +1317,7 @@ extern void vTraceStoreMemMangEvent(uint32_t ecode, uint32_t address, int32_t si
#undef traceSTREAM_BUFFER_CREATE_FAILED #undef traceSTREAM_BUFFER_CREATE_FAILED
#define traceSTREAM_BUFFER_CREATE_FAILED( xIsMessageBuffer ) \ #define traceSTREAM_BUFFER_CREATE_FAILED( xIsMessageBuffer ) \
trcKERNEL_HOOKS_KERNEL_SERVICE_WITH_NUMERIC_PARAM_ONLY(TRACE_GET_CLASS_EVENT_CODE(CREATE_OBJ, TRCFAILED, STREAMBUFFER, xIsMessageBuffer), 0); trcKERNEL_HOOKS_KERNEL_SERVICE_WITH_NUMERIC_PARAM_ONLY(TRACE_GET_CLASS_EVENT_CODE(CREATE_OBJ, TRCFAILED, STREAMBUFFER, xIsMessageBuffer), 0);
#undef traceSTREAM_BUFFER_CREATE_STATIC_FAILED #undef traceSTREAM_BUFFER_CREATE_STATIC_FAILED
#define traceSTREAM_BUFFER_CREATE_STATIC_FAILED( xReturn, xIsMessageBuffer ) \ #define traceSTREAM_BUFFER_CREATE_STATIC_FAILED( xReturn, xIsMessageBuffer ) \
traceSTREAM_BUFFER_CREATE_FAILED( xIsMessageBuffer ) traceSTREAM_BUFFER_CREATE_FAILED( xIsMessageBuffer )
@ -1335,7 +1335,7 @@ extern void vTraceStoreMemMangEvent(uint32_t ecode, uint32_t address, int32_t si
#define traceSTREAM_BUFFER_SEND( xStreamBuffer, xReturn ) \ #define traceSTREAM_BUFFER_SEND( xStreamBuffer, xReturn ) \
trcKERNEL_HOOKS_KERNEL_SERVICE(TRACE_GET_OBJECT_EVENT_CODE(SEND, TRCSUCCESS, STREAMBUFFER, xStreamBuffer), STREAMBUFFER, xStreamBuffer); \ trcKERNEL_HOOKS_KERNEL_SERVICE(TRACE_GET_OBJECT_EVENT_CODE(SEND, TRCSUCCESS, STREAMBUFFER, xStreamBuffer), STREAMBUFFER, xStreamBuffer); \
trcKERNEL_HOOKS_SET_OBJECT_STATE(STREAMBUFFER, xStreamBuffer, prvBytesInBuffer(xStreamBuffer)); trcKERNEL_HOOKS_SET_OBJECT_STATE(STREAMBUFFER, xStreamBuffer, prvBytesInBuffer(xStreamBuffer));
#undef traceBLOCKING_ON_STREAM_BUFFER_SEND #undef traceBLOCKING_ON_STREAM_BUFFER_SEND
#define traceBLOCKING_ON_STREAM_BUFFER_SEND( xStreamBuffer ) \ #define traceBLOCKING_ON_STREAM_BUFFER_SEND( xStreamBuffer ) \
trcKERNEL_HOOKS_KERNEL_SERVICE(TRACE_GET_OBJECT_EVENT_CODE(SEND, TRCBLOCK, STREAMBUFFER, xStreamBuffer), STREAMBUFFER, xStreamBuffer); trcKERNEL_HOOKS_KERNEL_SERVICE(TRACE_GET_OBJECT_EVENT_CODE(SEND, TRCBLOCK, STREAMBUFFER, xStreamBuffer), STREAMBUFFER, xStreamBuffer);
@ -1397,8 +1397,8 @@ extern void vTraceStoreMemMangEvent(uint32_t ecode, uint32_t address, int32_t si
* vTraceStoreKernelObjectName * vTraceStoreKernelObjectName
* *
* Set the name for a kernel object (defined by its address). * Set the name for a kernel object (defined by its address).
******************************************************************************/ ******************************************************************************/
void vTraceStoreKernelObjectName(void* object, const char* name); void vTraceStoreKernelObjectName(void* object, const char* name);
/******************************************************************************* /*******************************************************************************
* prvIsNewTCB * prvIsNewTCB
@ -1521,7 +1521,7 @@ uint32_t prvIsNewTCB(void* pNewTCB);
#define PSF_EVENT_MUTEX_PEEK 0x72 #define PSF_EVENT_MUTEX_PEEK 0x72
#define PSF_EVENT_QUEUE_PEEK_FAILED 0x73 #define PSF_EVENT_QUEUE_PEEK_FAILED 0x73
#define PSF_EVENT_SEMAPHORE_PEEK_FAILED 0x74 #define PSF_EVENT_SEMAPHORE_PEEK_FAILED 0x74
#define PSF_EVENT_MUTEX_PEEK_FAILED 0x75 #define PSF_EVENT_MUTEX_PEEK_FAILED 0x75
#define PSF_EVENT_QUEUE_PEEK_BLOCK 0x76 #define PSF_EVENT_QUEUE_PEEK_BLOCK 0x76
@ -1625,7 +1625,7 @@ uint32_t prvIsNewTCB(void* pNewTCB);
#if (TRC_CFG_INCLUDE_OSTICK_EVENTS == 1) #if (TRC_CFG_INCLUDE_OSTICK_EVENTS == 1)
#define OS_TICK_EVENT(uxSchedulerSuspended, xTickCount) if (uxSchedulerSuspended == (unsigned portBASE_TYPE) pdFALSE) { prvTraceStoreEvent1(PSF_EVENT_NEW_TIME, (uint32_t)(xTickCount + 1)); } #define OS_TICK_EVENT(uxSchedulerSuspended, xTickCount) if (uxSchedulerSuspended == (unsigned portBASE_TYPE) pdFALSE) { prvTraceStoreEvent1(PSF_EVENT_NEW_TIME, (uint32_t)(xTickCount + 1)); }
#else #else
#define OS_TICK_EVENT(uxSchedulerSuspended, xTickCount) #define OS_TICK_EVENT(uxSchedulerSuspended, xTickCount)
#endif #endif
/* Called on each OS tick. Will call uiPortGetTimestamp to make sure it is called at least once every OS tick. */ /* Called on each OS tick. Will call uiPortGetTimestamp to make sure it is called at least once every OS tick. */
@ -2188,7 +2188,7 @@ BaseType_t MyWrapper(__a, __b, const BaseType_t xCopyPosition)
if (TRACE_GET_OBJECT_FILTER(TASK, TRACE_GET_CURRENT_TASK()) & CurrentFilterMask) \ if (TRACE_GET_OBJECT_FILTER(TASK, TRACE_GET_CURRENT_TASK()) & CurrentFilterMask) \
if (TRACE_GET_OBJECT_FILTER(TASK, pxTask) & CurrentFilterMask) \ if (TRACE_GET_OBJECT_FILTER(TASK, pxTask) & CurrentFilterMask) \
prvTraceStoreEvent2(PSF_EVENT_TASK_PRIORITY, (uint32_t)pxTask, uxNewPriority); prvTraceStoreEvent2(PSF_EVENT_TASK_PRIORITY, (uint32_t)pxTask, uxNewPriority);
/* Called in vTaskPriorityInherit, which is called by Mutex operations */ /* Called in vTaskPriorityInherit, which is called by Mutex operations */
#undef traceTASK_PRIORITY_INHERIT #undef traceTASK_PRIORITY_INHERIT
#define traceTASK_PRIORITY_INHERIT( pxTask, uxNewPriority ) \ #define traceTASK_PRIORITY_INHERIT( pxTask, uxNewPriority ) \
@ -2265,7 +2265,7 @@ BaseType_t MyWrapper(__a, __b, const BaseType_t xCopyPosition)
prvTraceStoreEvent2((xReturn == pdPASS) ? PSF_EVENT_TIMER_CHANGEPERIOD_FROMISR : PSF_EVENT_TIMER_CHANGEPERIOD_FROMISR_FAILED, (uint32_t)tmr, xOptionalValue); \ prvTraceStoreEvent2((xReturn == pdPASS) ? PSF_EVENT_TIMER_CHANGEPERIOD_FROMISR : PSF_EVENT_TIMER_CHANGEPERIOD_FROMISR_FAILED, (uint32_t)tmr, xOptionalValue); \
break; break;
#else /* TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_8_X */ #else /* TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_8_X */
#define traceTIMER_COMMAND_SEND_8_0_CASES(tmr) #define traceTIMER_COMMAND_SEND_8_0_CASES(tmr)
#endif /* TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_8_X */ #endif /* TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_8_X */
/* Note that xCommandID can never be tmrCOMMAND_EXECUTE_CALLBACK (-1) since the trace macro is not called in that case */ /* Note that xCommandID can never be tmrCOMMAND_EXECUTE_CALLBACK (-1) since the trace macro is not called in that case */
@ -2434,7 +2434,7 @@ BaseType_t MyWrapper(__a, __b, const BaseType_t xCopyPosition)
#define traceTASK_NOTIFY_FROM_ISR() \ #define traceTASK_NOTIFY_FROM_ISR() \
if (TRACE_GET_OBJECT_FILTER(TASK, xTaskToNotify) & CurrentFilterMask) \ if (TRACE_GET_OBJECT_FILTER(TASK, xTaskToNotify) & CurrentFilterMask) \
prvTraceStoreEvent1(PSF_EVENT_TASK_NOTIFY_FROM_ISR, (uint32_t)xTaskToNotify); prvTraceStoreEvent1(PSF_EVENT_TASK_NOTIFY_FROM_ISR, (uint32_t)xTaskToNotify);
#undef traceTASK_NOTIFY_GIVE_FROM_ISR #undef traceTASK_NOTIFY_GIVE_FROM_ISR
#define traceTASK_NOTIFY_GIVE_FROM_ISR() \ #define traceTASK_NOTIFY_GIVE_FROM_ISR() \
if (TRACE_GET_OBJECT_FILTER(TASK, xTaskToNotify) & CurrentFilterMask) \ if (TRACE_GET_OBJECT_FILTER(TASK, xTaskToNotify) & CurrentFilterMask) \
@ -2547,7 +2547,7 @@ if (TRACE_GET_OBJECT_FILTER(STREAMBUFFER, xStreamBuffer) & CurrentFilterMask) \
#endif /* (TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_STREAMING) */ #endif /* (TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_STREAMING) */
#else /* (TRC_USE_TRACEALYZER_RECORDER == 1) */ #else /* (TRC_USE_TRACEALYZER_RECORDER == 1) */
/* When recorder is disabled */ /* When recorder is disabled */
#define vTraceSetQueueName(object, name) #define vTraceSetQueueName(object, name)
#define vTraceSetSemaphoreName(object, name) #define vTraceSetSemaphoreName(object, name)
@ -2555,7 +2555,7 @@ if (TRACE_GET_OBJECT_FILTER(STREAMBUFFER, xStreamBuffer) & CurrentFilterMask) \
#define vTraceSetEventGroupName(object, name) #define vTraceSetEventGroupName(object, name)
#define vTraceSetStreamBufferName(object, name) #define vTraceSetStreamBufferName(object, name)
#define vTraceSetMessageBufferName(object, name) #define vTraceSetMessageBufferName(object, name)
#endif /* (TRC_USE_TRACEALYZER_RECORDER == 1) */ #endif /* (TRC_USE_TRACEALYZER_RECORDER == 1) */
#ifdef __cplusplus #ifdef __cplusplus

View file

@ -178,7 +178,7 @@
<DebugFlag> <DebugFlag>
<trace>0</trace> <trace>0</trace>
<periodic>1</periodic> <periodic>1</periodic>
<aLwin>0</aLwin> <aLwin>1</aLwin>
<aCover>0</aCover> <aCover>0</aCover>
<aSer1>0</aSer1> <aSer1>0</aSer1>
<aSer2>0</aSer2> <aSer2>0</aSer2>

View file

@ -10,13 +10,13 @@
<TargetName>RTOSDemo</TargetName> <TargetName>RTOSDemo</TargetName>
<ToolsetNumber>0x4</ToolsetNumber> <ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName> <ToolsetName>ARM-ADS</ToolsetName>
<pCCUsed>5060528::V5.06 update 5 (build 528)::ARMCC</pCCUsed> <pCCUsed>5060750::V5.06 update 6 (build 750)::ARMCC</pCCUsed>
<uAC6>0</uAC6> <uAC6>0</uAC6>
<TargetOption> <TargetOption>
<TargetCommonOption> <TargetCommonOption>
<Device>ARMCM4_FP</Device> <Device>ARMCM4_FP</Device>
<Vendor>ARM</Vendor> <Vendor>ARM</Vendor>
<PackID>ARM.CMSIS.5.0.1</PackID> <PackID>ARM.CMSIS.5.5.1</PackID>
<PackURL>http://www.keil.com/pack/</PackURL> <PackURL>http://www.keil.com/pack/</PackURL>
<Cpu>IROM(0x00000000,0x80000) IRAM(0x20000000,0x20000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ESEL ELITTLE</Cpu> <Cpu>IROM(0x00000000,0x80000) IRAM(0x20000000,0x20000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ESEL ELITTLE</Cpu>
<FlashUtilSpec></FlashUtilSpec> <FlashUtilSpec></FlashUtilSpec>

View file

@ -86,6 +86,9 @@
*----------------------------------------------------------*/ *----------------------------------------------------------*/
#define configCLINT_BASE_ADDRESS 0 /* There is no CLINT so the base address must be set to 0. */ #define configCLINT_BASE_ADDRESS 0 /* There is no CLINT so the base address must be set to 0. */
#define configUSE_PREEMPTION 1 #define configUSE_PREEMPTION 1
#define configUSE_IDLE_HOOK 1 #define configUSE_IDLE_HOOK 1
#define configUSE_TICK_HOOK 1 #define configUSE_TICK_HOOK 1

View file

@ -0,0 +1,632 @@
<?xml version="1.0" encoding="UTF-8"?>
<project>
<fileVersion>3</fileVersion>
<configuration>
<name>Debug</name>
<toolchain>
<name>RISCV</name>
</toolchain>
<debug>1</debug>
<settings>
<name>C-SPY</name>
<archiveVersion>1</archiveVersion>
<data>
<version>0</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
<name>CSPYInput</name>
<state>1</state>
</option>
<option>
<name>CSPYProcessor</name>
<state>0</state>
</option>
<option>
<name>CSPYDynDriver</name>
<state>IJETRISCV</state>
</option>
<option>
<name>CSPYRunToEnable</name>
<state>1</state>
</option>
<option>
<name>CSPYRunoToName</name>
<state>main</state>
</option>
<option>
<name>CSPYMacOverride</name>
<state>0</state>
</option>
<option>
<name>CSPYMacFile</name>
<state></state>
</option>
<option>
<name>CSPYMemOverride</name>
<state>0</state>
</option>
<option>
<name>CSPYMemFile</name>
<state>$TOOLKIT_DIR$\config\debugger\SiFive\e31arty35t.ddf</state>
</option>
<option>
<name>CSPYMandatory</name>
<state>1</state>
</option>
<option>
<name>CSPYDDFileSlave</name>
<state>1</state>
</option>
<option>
<name>CSPYImagesSuppressCheck1</name>
<state>0</state>
</option>
<option>
<name>CSPYImagesPath1</name>
<state></state>
</option>
<option>
<name>CSPYImagesSuppressCheck2</name>
<state>0</state>
</option>
<option>
<name>CSPYImagesPath2</name>
<state></state>
</option>
<option>
<name>CSPYImagesSuppressCheck3</name>
<state>0</state>
</option>
<option>
<name>CSPYImagesPath3</name>
<state></state>
</option>
<option>
<name>CSPYImagesOffset1</name>
<state></state>
</option>
<option>
<name>CSPYImagesOffset2</name>
<state></state>
</option>
<option>
<name>CSPYImagesOffset3</name>
<state></state>
</option>
<option>
<name>CSPYImagesUse1</name>
<state>0</state>
</option>
<option>
<name>CSPYImagesUse2</name>
<state>0</state>
</option>
<option>
<name>CSPYImagesUse3</name>
<state>0</state>
</option>
<option>
<name>CSPYExtraOptionsCheck</name>
<state>0</state>
</option>
<option>
<name>CSPYExtraOptions</name>
<state></state>
</option>
<option>
<name>OCDownloadSuppressDownload</name>
<state>0</state>
</option>
<option>
<name>OCDownloadVerifyAll</name>
<state>0</state>
</option>
<option>
<name>UseFlashLoader</name>
<state>1</state>
</option>
<option>
<name>OverrideDefFlashBoard</name>
<state>0</state>
</option>
<option>
<name>FlashLoaders</name>
<state>$TOOLKIT_DIR$\config\flashloader\SiFive\arty35t.board</state>
</option>
<option>
<name>MassEraseBeforeFlashing</name>
<state>0</state>
</option>
</data>
</settings>
<settings>
<name>IJETRISCV</name>
<archiveVersion>2</archiveVersion>
<data>
<version>0</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
<name>OCDriverInfo</name>
<state>1</state>
</option>
<option>
<name>OCIarProbeScriptFile</name>
<state>1</state>
</option>
<option>
<name>OCProbeCfgOverride</name>
<state>0</state>
</option>
<option>
<name>OCProbeConfig</name>
<state></state>
</option>
<option>
<name>IjetProbeConfigRadio</name>
<state>0</state>
</option>
<option>
<name>IjetSelectedCPUBehaviour</name>
<state>0</state>
</option>
<option>
<name>ICpuName</name>
<state></state>
</option>
<option>
<name>IjetResetList</name>
<version>0</version>
<state>2</state>
</option>
<option>
<name>IjetHWResetDuration</name>
<state>300</state>
</option>
<option>
<name>IjetHWResetDelay</name>
<state>200</state>
</option>
<option>
<name>IjetPowerFromProbe</name>
<state>1</state>
</option>
<option>
<name>IjetPowerRadio</name>
<state>0</state>
</option>
<option>
<name>CCIjetUsbSerialNo</name>
<state></state>
</option>
<option>
<name>CCIjetUsbSerialNoSelect</name>
<state>0</state>
</option>
<option>
<name>IjetDoLogfile</name>
<state>0</state>
</option>
<option>
<name>IjetLogFile</name>
<state>$PROJ_DIR$\cspycomm.log</state>
</option>
<option>
<name>IjetInterfaceRadio</name>
<state>0</state>
</option>
<option>
<name>IjetInterfaceCmdLine</name>
<state>0</state>
</option>
<option>
<name>IjetMultiTargetEnable</name>
<state>0</state>
</option>
<option>
<name>IjetMultiTarget</name>
<state>0</state>
</option>
<option>
<name>IjetScanChainNonRISCVDevices</name>
<state>0</state>
</option>
<option>
<name>IjetIRLength</name>
<state>0</state>
</option>
<option>
<name>IjetMultiCPUEnable</name>
<state>0</state>
</option>
<option>
<name>IjetMultiCPUNumber</name>
<state>0</state>
</option>
<option>
<name>IjetJtagSpeedList</name>
<version>0</version>
<state>0</state>
</option>
<option>
<name>IjetBreakpointRadio</name>
<state>0</state>
</option>
<option>
<name>IjetRestoreBreakpointsCheck</name>
<state>0</state>
</option>
<option>
<name>IjetUpdateBreakpointsEdit</name>
<state>_call_main</state>
</option>
<option>
<name>RDICatchReset</name>
<state>0</state>
</option>
<option>
<name>CatchDummy</name>
<state>0</state>
</option>
<option>
<name>OCJetEmuParams</name>
<state>1</state>
</option>
<option>
<name>FlashBoardPathSlave</name>
<state>0</state>
</option>
</data>
</settings>
<settings>
<name>SIMRISCV</name>
<archiveVersion>1</archiveVersion>
<data>
<version>0</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
<name>SIMMandatory</name>
<state>0</state>
</option>
</data>
</settings>
<debuggerPlugins>
<plugin>
<file>$TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin>
<file>$TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin>
<file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin>
<file>$EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin>
<file>$EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
</debuggerPlugins>
</configuration>
<configuration>
<name>Release</name>
<toolchain>
<name>RISCV</name>
</toolchain>
<debug>0</debug>
<settings>
<name>C-SPY</name>
<archiveVersion>1</archiveVersion>
<data>
<version>0</version>
<wantNonLocal>1</wantNonLocal>
<debug>0</debug>
<option>
<name>CSPYInput</name>
<state>1</state>
</option>
<option>
<name>CSPYProcessor</name>
<state>0</state>
</option>
<option>
<name>CSPYDynDriver</name>
<state>SIMRISCV</state>
</option>
<option>
<name>CSPYRunToEnable</name>
<state>1</state>
</option>
<option>
<name>CSPYRunoToName</name>
<state>main</state>
</option>
<option>
<name>CSPYMacOverride</name>
<state>0</state>
</option>
<option>
<name>CSPYMacFile</name>
<state></state>
</option>
<option>
<name>CSPYMemOverride</name>
<state>0</state>
</option>
<option>
<name>CSPYMemFile</name>
<state></state>
</option>
<option>
<name>CSPYMandatory</name>
<state>1</state>
</option>
<option>
<name>CSPYDDFileSlave</name>
<state>1</state>
</option>
<option>
<name>CSPYImagesSuppressCheck1</name>
<state>0</state>
</option>
<option>
<name>CSPYImagesPath1</name>
<state></state>
</option>
<option>
<name>CSPYImagesSuppressCheck2</name>
<state>0</state>
</option>
<option>
<name>CSPYImagesPath2</name>
<state></state>
</option>
<option>
<name>CSPYImagesSuppressCheck3</name>
<state>0</state>
</option>
<option>
<name>CSPYImagesPath3</name>
<state></state>
</option>
<option>
<name>CSPYImagesOffset1</name>
<state></state>
</option>
<option>
<name>CSPYImagesOffset2</name>
<state></state>
</option>
<option>
<name>CSPYImagesOffset3</name>
<state></state>
</option>
<option>
<name>CSPYImagesUse1</name>
<state>0</state>
</option>
<option>
<name>CSPYImagesUse2</name>
<state>0</state>
</option>
<option>
<name>CSPYImagesUse3</name>
<state>0</state>
</option>
<option>
<name>CSPYExtraOptionsCheck</name>
<state>0</state>
</option>
<option>
<name>CSPYExtraOptions</name>
<state></state>
</option>
<option>
<name>OCDownloadSuppressDownload</name>
<state>0</state>
</option>
<option>
<name>OCDownloadVerifyAll</name>
<state>0</state>
</option>
<option>
<name>UseFlashLoader</name>
<state>1</state>
</option>
<option>
<name>OverrideDefFlashBoard</name>
<state>0</state>
</option>
<option>
<name>FlashLoaders</name>
<state></state>
</option>
<option>
<name>MassEraseBeforeFlashing</name>
<state>0</state>
</option>
</data>
</settings>
<settings>
<name>IJETRISCV</name>
<archiveVersion>2</archiveVersion>
<data>
<version>0</version>
<wantNonLocal>1</wantNonLocal>
<debug>0</debug>
<option>
<name>OCDriverInfo</name>
<state>1</state>
</option>
<option>
<name>OCIarProbeScriptFile</name>
<state>1</state>
</option>
<option>
<name>OCProbeCfgOverride</name>
<state>0</state>
</option>
<option>
<name>OCProbeConfig</name>
<state></state>
</option>
<option>
<name>IjetProbeConfigRadio</name>
<state>0</state>
</option>
<option>
<name>IjetSelectedCPUBehaviour</name>
<state>0</state>
</option>
<option>
<name>ICpuName</name>
<state></state>
</option>
<option>
<name>IjetResetList</name>
<version>0</version>
<state>10</state>
</option>
<option>
<name>IjetHWResetDuration</name>
<state>300</state>
</option>
<option>
<name>IjetHWResetDelay</name>
<state>200</state>
</option>
<option>
<name>IjetPowerFromProbe</name>
<state>1</state>
</option>
<option>
<name>IjetPowerRadio</name>
<state>0</state>
</option>
<option>
<name>CCIjetUsbSerialNo</name>
<state></state>
</option>
<option>
<name>CCIjetUsbSerialNoSelect</name>
<state>0</state>
</option>
<option>
<name>IjetDoLogfile</name>
<state>0</state>
</option>
<option>
<name>IjetLogFile</name>
<state>$PROJ_DIR$\cspycomm.log</state>
</option>
<option>
<name>IjetInterfaceRadio</name>
<state>0</state>
</option>
<option>
<name>IjetInterfaceCmdLine</name>
<state>0</state>
</option>
<option>
<name>IjetMultiTargetEnable</name>
<state>0</state>
</option>
<option>
<name>IjetMultiTarget</name>
<state>0</state>
</option>
<option>
<name>IjetScanChainNonRISCVDevices</name>
<state>0</state>
</option>
<option>
<name>IjetIRLength</name>
<state>0</state>
</option>
<option>
<name>IjetMultiCPUEnable</name>
<state>0</state>
</option>
<option>
<name>IjetMultiCPUNumber</name>
<state>0</state>
</option>
<option>
<name>IjetJtagSpeedList</name>
<version>0</version>
<state>0</state>
</option>
<option>
<name>IjetBreakpointRadio</name>
<state>0</state>
</option>
<option>
<name>IjetRestoreBreakpointsCheck</name>
<state>0</state>
</option>
<option>
<name>IjetUpdateBreakpointsEdit</name>
<state>_call_main</state>
</option>
<option>
<name>RDICatchReset</name>
<state>0</state>
</option>
<option>
<name>CatchDummy</name>
<state>0</state>
</option>
<option>
<name>OCJetEmuParams</name>
<state>1</state>
</option>
<option>
<name>FlashBoardPathSlave</name>
<state>0</state>
</option>
</data>
</settings>
<settings>
<name>SIMRISCV</name>
<archiveVersion>1</archiveVersion>
<data>
<version>0</version>
<wantNonLocal>1</wantNonLocal>
<debug>0</debug>
<option>
<name>SIMMandatory</name>
<state>0</state>
</option>
</data>
</settings>
<debuggerPlugins>
<plugin>
<file>$TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin>
<file>$TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin>
<file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin>
<file>$EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin>
<file>$EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
</debuggerPlugins>
</configuration>
</project>

File diff suppressed because it is too large Load diff

View file

@ -63,6 +63,8 @@
#define configUSE_QUEUE_SETS 1 #define configUSE_QUEUE_SETS 1
#define configUSE_TASK_NOTIFICATIONS 1 #define configUSE_TASK_NOTIFICATIONS 1
#define configSUPPORT_STATIC_ALLOCATION 1 #define configSUPPORT_STATIC_ALLOCATION 1
#define configINITIAL_TICK_COUNT ( ( TickType_t ) 0 ) /* For test. */
#define configSTREAM_BUFFER_TRIGGER_LEVEL_TEST_MARGIN 1 /* As there are a lot of tasks running. */
/* Software timer related configuration options. */ /* Software timer related configuration options. */
#define configUSE_TIMERS 1 #define configUSE_TIMERS 1

View file

@ -15,7 +15,7 @@
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc> <UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings"> <ImportGroup Label="ExtensionSettings">
@ -41,7 +41,6 @@
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\Source\include;..\..\Source\portable\MSVC-MingW;..\Common\Include;..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\Include;.\Trace_Recorder_Configuration;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\..\Source\include;..\..\Source\portable\MSVC-MingW;..\Common\Include;..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\Include;.\Trace_Recorder_Configuration;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0601;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0601;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeaderOutputFile>.\Debug/WIN32.pch</PrecompiledHeaderOutputFile> <PrecompiledHeaderOutputFile>.\Debug/WIN32.pch</PrecompiledHeaderOutputFile>
@ -52,7 +51,7 @@
<SuppressStartupBanner>true</SuppressStartupBanner> <SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat> <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<DisableLanguageExtensions>false</DisableLanguageExtensions> <DisableLanguageExtensions>false</DisableLanguageExtensions>
<AdditionalOptions>/wd4210 /wc4574 %(AdditionalOptions)</AdditionalOptions> <AdditionalOptions>/wd4210 %(AdditionalOptions)</AdditionalOptions>
<DisableSpecificWarnings>4574;4820;4668;4255;4710;%(DisableSpecificWarnings)</DisableSpecificWarnings> <DisableSpecificWarnings>4574;4820;4668;4255;4710;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile> </ClCompile>
<ResourceCompile> <ResourceCompile>

View file

@ -7,7 +7,7 @@
* the Software without restriction, including without limitation the rights to * the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so, * the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions: * subject to the fofllowing conditions:
* *
* The above copyright notice and this permission notice shall be included in all * The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software. * copies or substantial portions of the Software.

View file

@ -244,7 +244,7 @@ int main_full( void )
static void prvCheckTask( void *pvParameters ) static void prvCheckTask( void *pvParameters )
{ {
TickType_t xNextWakeTime; TickType_t xNextWakeTime;
const TickType_t xCycleFrequency = pdMS_TO_TICKS( 4000UL ); const TickType_t xCycleFrequency = pdMS_TO_TICKS( 5000UL );
HeapStats_t xHeapStats; HeapStats_t xHeapStats;
/* Just to remove compiler warning. */ /* Just to remove compiler warning. */

View file

@ -15,6 +15,9 @@ Changes since the last release:
+ Change type of uxPendedTicks from UBaseType_t to TickType_t to ensure it + Change type of uxPendedTicks from UBaseType_t to TickType_t to ensure it
has same type as variables it is compared to, and therefore also rename has same type as variables it is compared to, and therefore also rename
the variable xPendingTicks. the variable xPendingTicks.
+ Correct alignment of stack top in RISC-V port when
configISR_STACK_SIZE_WORDS is defined to a non zero value.
Changes between FreeRTOS V10.2.1 and FreeRTOS V10.2.0 released May 13 2019: Changes between FreeRTOS V10.2.1 and FreeRTOS V10.2.0 released May 13 2019:

View file

@ -365,12 +365,12 @@ BaseType_t xRunningPrivileged = xPortRaisePrivilege();
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) ) #if( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) )
TickType_t MPU_xTaskGetIdleRunTimeCounter( void ) /* FREERTOS_SYSTEM_CALL */ uint32_t MPU_ulTaskGetIdleRunTimeCounter( void ) /* FREERTOS_SYSTEM_CALL */
{ {
TickType_t xReturn; uint32_t xReturn;
BaseType_t xRunningPrivileged = xPortRaisePrivilege(); BaseType_t xRunningPrivileged = xPortRaisePrivilege();
xReturn = xTaskGetIdleRunTimeCounter(); xReturn = ulTaskGetIdleRunTimeCounter();
vPortResetPrivilege( xRunningPrivileged ); vPortResetPrivilege( xRunningPrivileged );
return xReturn; return xReturn;
} }
@ -451,6 +451,17 @@ BaseType_t xRunningPrivileged = xPortRaisePrivilege();
#endif #endif
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
BaseType_t MPU_xTaskCatchUpTicks( TickType_t xTicksToCatchUp ) /* FREERTOS_SYSTEM_CALL */
{
BaseType_t xReturn;
BaseType_t xRunningPrivileged = xPortRaisePrivilege();
xReturn = xTaskCatchUpTicks( xTicksToCatchUp );
vPortResetPrivilege( xRunningPrivileged );
return xReturn;
}
/*-----------------------------------------------------------*/
#if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) #if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 )
UBaseType_t MPU_uxTaskGetStackHighWaterMark( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */ UBaseType_t MPU_uxTaskGetStackHighWaterMark( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
{ {