Add support to build Posix Demo with Dynamic Allocation (#1198)

Add support for dynamic allocation in posix demo
pull/1195/head^2
Rahul Kar 11 months ago committed by GitHub
parent bc5587ce5f
commit 857962d638
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -58,7 +58,23 @@
#define configUSE_ALTERNATIVE_API 0
#define configUSE_QUEUE_SETS 1
#define configUSE_TASK_NOTIFICATIONS 1
/* The following 2 memory allocation schemes are possible for this demo:
*
* 1. Dynamic Only.
* #define configSUPPORT_STATIC_ALLOCATION 0
* #define configSUPPORT_DYNAMIC_ALLOCATION 1
*
* 2. Static and Dynamic.
* #define configSUPPORT_STATIC_ALLOCATION 1
* #define configSUPPORT_DYNAMIC_ALLOCATION 1
*
* Static only configuration is not possible for this demo as it utilizes
* dynamic allocation.
*/
#define configSUPPORT_STATIC_ALLOCATION 1
#define configSUPPORT_DYNAMIC_ALLOCATION 1
#define configRECORD_STACK_HIGH_ADDRESS 1
/* Software timer related configuration options. The maximum possible task

@ -82,12 +82,12 @@ else
CPPFLAGS += -DprojENABLE_TRACING=0
else
CPPFLAGS += -DprojENABLE_TRACING=1
endif
CPPFLAGS += -DprojCOVERAGE_TEST=0
# Trace library.
# Trace Library.
SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-Trace/kernelports/FreeRTOS/trcKernelPort.c
SOURCE_FILES += $(wildcard ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-Trace/*.c )
endif
CPPFLAGS += -DprojCOVERAGE_TEST=0
endif
ifdef PROFILE
CFLAGS += -pg -O0

@ -86,6 +86,8 @@ static BaseType_t prvTimerQuery( void );
/*-----------------------------------------------------------*/
#if( configSUPPORT_STATIC_ALLOCATION == 1 )
static BaseType_t prvStaticAllocationsWithNullBuffers( void )
{
uintptr_t ulReturned = 0;
@ -94,7 +96,7 @@ static BaseType_t prvStaticAllocationsWithNullBuffers( void )
/* Don't expect to create any of the objects as a NULL parameter is always
* passed in place of a required buffer. Hence if all passes then none of the
|= will be against 0, and ulReturned will still be zero at the end of this
* |= will be against 0, and ulReturned will still be zero at the end of this
* function. */
ulReturned |= ( uintptr_t ) xEventGroupCreateStatic( NULL );
@ -141,6 +143,8 @@ static BaseType_t prvStaticAllocationsWithNullBuffers( void )
return xReturn;
}
#endif /* if( configSUPPORT_STATIC_ALLOCATION == 1 ) */
/*-----------------------------------------------------------*/
#if( configUSE_TRACE_FACILITY == 1 )
@ -643,14 +647,18 @@ BaseType_t xRunCodeCoverageTestAdditions( void )
{
BaseType_t xReturn = pdPASS;
#if( configSUPPORT_STATIC_ALLOCATION == 1 )
{
xReturn &= prvStaticAllocationsWithNullBuffers();
}
#endif /* if( configSUPPORT_STATIC_ALLOCATION == 1 ) */
#if( configUSE_TRACE_FACILITY == 1 )
{
xReturn &= prvTraceUtils();
xReturn &= prvTaskQueryFunctions();
}
#endif
#endif /* if( configUSE_TRACE_FACILITY == 1 ) */
xReturn &= prvPeekTimeout();
xReturn &= prvQueueQueryFromISR();

@ -38,9 +38,17 @@ SemaphoreHandle_t xStdioMutex;
StaticSemaphore_t xStdioMutexBuffer;
void console_init( void )
{
#if( configSUPPORT_STATIC_ALLOCATION == 1 )
{
xStdioMutex = xSemaphoreCreateMutexStatic( &xStdioMutexBuffer );
}
#else /* if( configSUPPORT_STATIC_ALLOCATION == 1 ) */
{
xStdioMutex = xSemaphoreCreateMutex( );
}
#endif /* if( configSUPPORT_STATIC_ALLOCATION == 1 ) */
}
void console_print( const char * fmt,
... )

@ -749,7 +749,9 @@ static void prvDemonstrateTaskStateAndHandleGetFunctions( void )
if( ( xTaskInfo.eCurrentState != eBlocked ) ||
( strcmp( xTaskInfo.pcTaskName, "Tmr Svc" ) != 0 ) ||
( xTaskInfo.uxCurrentPriority != configTIMER_TASK_PRIORITY ) ||
#if( configSUPPORT_STATIC_ALLOCATION == 1 )
( xTaskInfo.pxStackBase != uxTimerTaskStack ) ||
#endif
( xTaskInfo.xHandle != xTimerTaskHandle ) )
{
pcStatusMessage = "Error: vTaskGetInfo() returned incorrect information about the timer task";

Loading…
Cancel
Save