/*\r
- * FreeRTOS Kernel V10.1.1\r
- * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r
+ * FreeRTOS Kernel V10.2.1\r
+ * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r
*\r
* Permission is hereby granted, free of charge, to any person obtaining a copy of\r
* this software and associated documentation files (the "Software"), to deal in\r
\r
/*\r
* The test function and callback function used when exercising the timer AP\r
- * function that changes the timer's autoreload mode.\r
+ * function that changes the timer's auto-reload mode.\r
*/\r
static void prvDemonstrateChangingTimerReloadMode( void *pvParameters );\r
static void prvReloadModeTestTimerCallback( TimerHandle_t xTimer );\r
{\r
TickType_t xNextWakeTime;\r
const TickType_t xCycleFrequency = pdMS_TO_TICKS( 2500UL );\r
+HeapStats_t xHeapStats;\r
\r
/* Just to remove compiler warning. */\r
( void ) pvParameters;\r
\r
/* This is the only task that uses stdout so its ok to call printf()\r
directly. */\r
- printf( "%s - tick count %u - free heap %u - min free heap %u\r\n", pcStatusMessage,\r
- xTaskGetTickCount(),\r
- xPortGetFreeHeapSize(),\r
- xPortGetMinimumEverFreeHeapSize() );\r
+ vPortGetHeapStats( &xHeapStats );\r
+\r
+ configASSERT( xHeapStats.xAvailableHeapSpaceInBytes == xPortGetFreeHeapSize() );\r
+ configASSERT( xHeapStats.xMinimumEverFreeBytesRemaining == xPortGetMinimumEverFreeHeapSize() );\r
+\r
+ printf( "%s - tick count %u - free heap %u - min free heap %u - largest free block %u - number of free blocks %u\r\n",\r
+ pcStatusMessage,\r
+ xTaskGetTickCount(),\r
+ xHeapStats.xAvailableHeapSpaceInBytes,\r
+ xHeapStats.xMinimumEverFreeBytesRemaining,\r
+ xHeapStats.xSizeOfLargestFreeBlockInBytes,\r
+ xHeapStats.xNumberOfFreeBlocks );\r
+\r
fflush( stdout );\r
}\r
}\r
\r
xTimer = xTimerCreate( pcTimerName,\r
x100ms,\r
- pdFALSE, /* Created as a one shot timer. */\r
+ pdFALSE, /* Created as a one-shot timer. */\r
0,\r
prvReloadModeTestTimerCallback );\r
configASSERT( xTimer );\r
configASSERT( strcmp( pcTimerName, pcTimerGetName( xTimer ) ) == 0 );\r
configASSERT( xTimerGetPeriod( xTimer ) == x100ms );\r
\r
- /* Timer was created as a one shot timer. Its callback just increments the\r
+ /* Timer was created as a one-shot timer. Its callback just increments the\r
timer's ID - so set the ID to 0, let the timer run for a number of timeout\r
periods, then check the timer has only executed once. */\r
vTimerSetTimerID( xTimer, ( void * ) 0 );\r
vTaskDelay( 3UL * x100ms );\r
configASSERT( ( ( uint32_t ) ( pvTimerGetTimerID( xTimer ) ) ) == 1UL );\r
\r
- /* Now change the timer to be an autoreload timer and check it executes\r
+ /* Now change the timer to be an auto-reload timer and check it executes\r
the expected number of times. */\r
vTimerSetReloadMode( xTimer, pdTRUE );\r
vTimerSetTimerID( xTimer, ( void * ) 0 );\r
configASSERT( ( uint32_t ) ( pvTimerGetTimerID( xTimer ) ) == 3UL );\r
configASSERT( xTimerStop( xTimer, 0 ) != pdFAIL );\r
\r
- /* Now change the timer back to be a one shot timer and check it only\r
+ /* Now change the timer back to be a one-shot timer and check it only\r
executes once. */\r
vTimerSetReloadMode( xTimer, pdFALSE );\r
vTimerSetTimerID( xTimer, ( void * ) 0 );\r