*****************************************************************************/\r
#define INCLUDE_OBJECT_DELETE 1\r
\r
+/******************************************************************************\r
+ * INCLUDE_MEMMANG_EVENTS\r
+ * \r
+ * Macro which should be defined as either zero (0) or one (1). \r
+ * Default is 1.\r
+ *\r
+ * This controls if malloc and free calls should be traced. Set this to zero to\r
+ * exclude malloc/free calls from the tracing.\r
+ *****************************************************************************/\r
+#define INCLUDE_MEMMANG_EVENTS 1\r
+\r
/******************************************************************************\r
* CONFIGURATION RELATED TO BEHAVIOR\r
*****************************************************************************/\r
*****************************************************************************/\r
#define USE_IMPLICIT_IFE_RULES 1\r
\r
-/******************************************************************************\r
- * INCLUDE_SAVE_TO_FILE\r
- *\r
- * Macro which should be defined as either zero (0) or one (1).\r
- * Default is 0.\r
- *\r
- * If enabled (1), the recorder will include code for saving the trace\r
- * to a local file system.\r
- ******************************************************************************/\r
-#ifdef WIN32\r
- #define INCLUDE_SAVE_TO_FILE 1\r
-#else\r
- #define INCLUDE_SAVE_TO_FILE 0\r
-#endif\r
-\r
-/******************************************************************************\r
- * TRACE_PROGRESS_MONITOR_TASK_PRIORITY\r
- *\r
- * Macro which sets the priority of the "recorder status monitor" task.\r
- *\r
- * This task, vTraceMonitorTask in trcUser.c, periodically writes\r
- * the recorder status using the vTraceConsoleMessage macro, which is to\r
- * be mapped to your console "printf" routine. The task is named TraceMon but \r
- * is intentionally excluded from the demo trace.\r
- *\r
- * Default is tskIDLE_PRIORITY + 1\r
- * Note that if your system constantly has a high CPU load from high-priority \r
- * tasks, this might not be get a chance to execute.\r
- * \r
- * See vTraceMonitorTask in trcUser.c\r
- *****************************************************************************/\r
-#define TRACE_PROGRESS_MONITOR_TASK_PRIORITY (tskIDLE_PRIORITY + 1)\r
-\r
-/******************************************************************************\r
- * TRACE_PROGRESS_MONITOR_TASK_STACKSIZE\r
- *\r
- * Macro which sets the stack size of the "recorder status monitor" task.\r
- *\r
- * This task, vTraceMonitorTask in trcUser.c, periodically writes\r
- * the recorder status using the vTraceConsoleMessage macro, which is to\r
- * be mapped to your console "printf" routine. The task is intentionally \r
- * excluded from the demo trace.\r
- *\r
- * See vTraceMonitorTask in trcUser.c\r
- *****************************************************************************/\r
-#define TRACE_PROGRESS_MONITOR_TASK_STACKSIZE 500\r
-\r
-/******************************************************************************\r
- * TRACE_PROGRESS_MONITOR_TASK_PERIOD\r
- *\r
- * Macro which sets the period of the "recorder status monitor" task.\r
- *\r
- * This task, vTraceMonitorTask in trcUser.c, periodically writes\r
- * the recorder status using the vTraceConsoleMessage macro, which is to\r
- * be mapped to your console "printf" routine. The task is named TraceMon but \r
- * is intentionally excluded from the demo trace.\r
- *\r
- * Default is 1000 ticks (typically 1 second). On the Windows port, a lower \r
- * value is suggested since the Windows port runs very slowly, often 20-40\r
- * times slower than the simulated time.\r
- *\r
- * See vTraceMonitorTask in trcUser.c\r
- *****************************************************************************/\r
-#ifdef WIN32\r
- #define TRACE_PROGRESS_MONITOR_TASK_PERIOD 100\r
-#else\r
- #define TRACE_PROGRESS_MONITOR_TASK_PERIOD 1000\r
-#endif\r
-\r
\r
/******************************************************************************\r
* USE_16BIT_OBJECT_HANDLES\r
******************************************************************************/\r
#define USE_PRIMASK_CS 0\r
\r
+/******************************************************************************\r
+* HEAP_SIZE_BELOW_16M\r
+*\r
+* An integer constant that can be used to reduce the buffer usage of memory\r
+* allocation events (malloc/free). This value should be 1 if the heap size is \r
+* below 16 MB (2^24 byte), and you can live with addresses truncated to the \r
+* lower 24 bit. Otherwise set it to 0 to get the full 32-bit addresses.\r
+******************************************************************************/\r
+#define HEAP_SIZE_BELOW_16M 0\r
\r
#endif\r
\r
void vFullDemoIdleFunction( void )\r
{\r
const unsigned long ulMSToSleep = 15;\r
-const unsigned portBASE_TYPE uxConstQueueNumber = 0xaaU;\r
void *pvAllocated;\r
\r
-/* These three functions are only meant for use by trace code, and not for\r
-direct use from application code, hence their prototypes are not in queue.h. */\r
-extern void vQueueSetQueueNumber( QueueHandle_t pxQueue, unsigned portBASE_TYPE uxQueueNumber );\r
-extern unsigned portBASE_TYPE uxQueueGetQueueNumber( QueueHandle_t pxQueue );\r
-extern uint8_t ucQueueGetQueueType( QueueHandle_t pxQueue );\r
-extern void vTaskSetTaskNumber( TaskHandle_t xTask, unsigned portBASE_TYPE uxHandle );\r
-extern unsigned portBASE_TYPE uxTaskGetTaskNumber( TaskHandle_t xTask );\r
-\r
/* Sleep to reduce CPU load, but don't sleep indefinitely in case there are\r
tasks waiting to be terminated by the idle task. */\r
Sleep( ulMSToSleep );\r
that has tasks blocked on it. */\r
if( xMutexToDelete != NULL )\r
{\r
- /* Before deleting the semaphore, test the function used to set its\r
- number. This would normally only be done from trace software, rather\r
- than application code. */\r
- vQueueSetQueueNumber( xMutexToDelete, uxConstQueueNumber );\r
-\r
- /* Before deleting the semaphore, test the functions used to get its\r
- type and number. Again, these would normally only be done from trace\r
- software, rather than application code. */\r
- configASSERT( uxQueueGetQueueNumber( xMutexToDelete ) == uxConstQueueNumber );\r
- configASSERT( ucQueueGetQueueType( xMutexToDelete ) == queueQUEUE_TYPE_MUTEX );\r
vSemaphoreDelete( xMutexToDelete );\r
xMutexToDelete = NULL;\r
}\r
static void prvDemonstrateTaskStateAndHandleGetFunctions( void )\r
{\r
TaskHandle_t xIdleTaskHandle, xTimerTaskHandle;\r
-const unsigned char ucConstTaskNumber = 0x55U;\r
char *pcTaskName;\r
static portBASE_TYPE xPerformedOneShotTests = pdFALSE;\r
TaskHandle_t xTestTask;\r
the task number. */\r
xIdleTaskHandle = xTaskGetIdleTaskHandle();\r
xTimerTaskHandle = xTimerGetTimerDaemonTaskHandle();\r
- vTaskSetTaskNumber( xIdleTaskHandle, ( unsigned long ) ucConstTaskNumber );\r
- configASSERT( uxTaskGetTaskNumber( xIdleTaskHandle ) == ucConstTaskNumber );\r
\r
/* This is the idle hook, so the current task handle should equal the\r
returned idle task handle. */\r