]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Demo/CORTEX_M4F_MSP432_LaunchPad_IAR_CCS_Keil/FreeRTOSConfig.h
Final V8.2.1 release ready for tagging:
[freertos] / FreeRTOS / Demo / CORTEX_M4F_MSP432_LaunchPad_IAR_CCS_Keil / FreeRTOSConfig.h
diff --git a/FreeRTOS/Demo/CORTEX_M4F_MSP432_LaunchPad_IAR_CCS_Keil/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_M4F_MSP432_LaunchPad_IAR_CCS_Keil/FreeRTOSConfig.h
new file mode 100644 (file)
index 0000000..e72cfcf
--- /dev/null
@@ -0,0 +1,227 @@
+/*\r
+    FreeRTOS V8.1.2 - Copyright (C) 2014 Real Time Engineers Ltd.\r
+\r
+    This file is part of the FreeRTOS distribution.\r
+\r
+    FreeRTOS is free software; you can redistribute it and/or modify it under\r
+    the terms of the GNU General Public License (version 2) as published by the\r
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.\r
+    ***NOTE*** The exception to the GPL is included to allow you to distribute\r
+    a combined work that includes FreeRTOS without being obliged to provide the\r
+    source code for proprietary components outside of the FreeRTOS kernel.\r
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT\r
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\r
+    more details. You should have received a copy of the GNU General Public\r
+    License and the FreeRTOS license exception along with FreeRTOS; if not it\r
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained\r
+    by writing to Richard Barry, contact details for whom are available on the\r
+    FreeRTOS WEB site.\r
+\r
+    1 tab == 4 spaces!\r
+\r
+    http://www.FreeRTOS.org - Documentation, latest information, license and\r
+    contact details.\r
+\r
+    http://www.SafeRTOS.com - A version that is certified for use in safety\r
+    critical systems.\r
+\r
+    http://www.OpenRTOS.com - Commercial support, development, porting,\r
+    licensing and training services.\r
+*/\r
+\r
+\r
+/******************************************************************************\r
+       See http://www.freertos.org/a00110.html for an explanation of the\r
+       definitions contained in this file.\r
+******************************************************************************/\r
+\r
+#ifndef FREERTOS_CONFIG_H\r
+#define FREERTOS_CONFIG_H\r
+\r
+\r
+/* Set mainCREATE_SIMPLE_BLINKY_DEMO_ONLY to one to run the simple blinky demo,\r
+or 0 to run the more comprehensive test and demo application.\r
+\r
+The comprehensive demo uses FreeRTOS+CLI to create a simple command line \r
+interface through a UART.\r
+\r
+The blinky demo uses FreeRTOS's tickless idle mode to reduce power consumption.\r
+See the notes on the web page below regarding the difference in power saving \r
+that can be achieved between using the generic tickless implementation (as used \r
+by the blinky demo) and a tickless implementation that is tailored specifically \r
+to the MSP432.\r
\r
+See http://www.FreeRTOS.org/TI_MSP432_Free_RTOS_Demo.html for instructions. */\r
+#define configCREATE_SIMPLE_TICKLESS_DEMO      0\r
+\r
+\r
+/*-----------------------------------------------------------\r
+ * Application specific definitions.\r
+ *\r
+ * These definitions should be adjusted for your particular hardware and\r
+ * application requirements.\r
+ *\r
+ * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE\r
+ * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.\r
+ * http://www.freertos.org/a00110.html\r
+ *----------------------------------------------------------*/\r
+\r
+/* Constants related to the behaviour or the scheduler. */\r
+#define configUSE_PORT_OPTIMISED_TASK_SELECTION        1\r
+#define configUSE_PREEMPTION                                   1\r
+#define configUSE_TIME_SLICING                                 1\r
+#define configMAX_PRIORITIES                                   ( 5 )\r
+#define configIDLE_SHOULD_YIELD                                        1\r
+#define configUSE_16_BIT_TICKS                                 0 /* Only for 8 and 16-bit hardware. */\r
+\r
+/* Constants that describe the hardware and memory usage. */\r
+#define configCPU_CLOCK_HZ                                             MAP_CS_getMCLK()\r
+#define configMINIMAL_STACK_SIZE                               ( ( uint16_t ) 100 )\r
+#define configMAX_TASK_NAME_LEN                                        ( 12 )\r
+\r
+/* Note heap_5.c is used so this only defines the part of the heap that is in\r
+the first block of RAM on the LPC device.  See the initialisation of the heap\r
+in main.c. */\r
+#define configTOTAL_HEAP_SIZE                                  ( ( size_t ) ( 50 * 1024 ) )\r
+\r
+/* Constants that build features in or out. */\r
+#define configUSE_MUTEXES                                              1\r
+#define configUSE_TICKLESS_IDLE                                        1\r
+#define configUSE_APPLICATION_TASK_TAG                 0\r
+#define configUSE_NEWLIB_REENTRANT                             0\r
+#define configUSE_CO_ROUTINES                                  0\r
+#define configUSE_COUNTING_SEMAPHORES                  1\r
+#define configUSE_RECURSIVE_MUTEXES                            1\r
+#define configUSE_QUEUE_SETS                                   0\r
+#define configUSE_TASK_NOTIFICATIONS                   1\r
+\r
+/* Constants that define which hook (callback) functions should be used. */\r
+#define configUSE_IDLE_HOOK                                            1\r
+#define configUSE_TICK_HOOK                                            1\r
+#define configUSE_MALLOC_FAILED_HOOK                   1\r
+\r
+/* Constants provided for debugging and optimisation assistance. */\r
+#define configCHECK_FOR_STACK_OVERFLOW                 2\r
+#define configASSERT( x ) if( ( x ) == 0 ) { taskDISABLE_INTERRUPTS(); for( ;; ); }\r
+#define configQUEUE_REGISTRY_SIZE                              0\r
+\r
+/* Software timer definitions. */\r
+#define configUSE_TIMERS                                               1\r
+#define configTIMER_TASK_PRIORITY                              ( 3 )\r
+#define configTIMER_QUEUE_LENGTH                               5\r
+#define configTIMER_TASK_STACK_DEPTH                   ( configMINIMAL_STACK_SIZE  )\r
+\r
+/* Set the following definitions to 1 to include the API function, or zero\r
+to exclude the API function.  NOTE:  Setting an INCLUDE_ parameter to 0 is only\r
+necessary if the linker does not automatically remove functions that are not\r
+referenced anyway. */\r
+#define INCLUDE_vTaskPrioritySet                               1\r
+#define INCLUDE_uxTaskPriorityGet                              1\r
+#define INCLUDE_vTaskDelete                                            1\r
+#define INCLUDE_vTaskCleanUpResources                  0\r
+#define INCLUDE_vTaskSuspend                                   1\r
+#define INCLUDE_vTaskDelayUntil                                        1\r
+#define INCLUDE_vTaskDelay                                             1\r
+#define INCLUDE_uxTaskGetStackHighWaterMark            0\r
+#define INCLUDE_pcTaskGetTaskName                              1\r
+#define INCLUDE_xTaskGetIdleTaskHandle                 0\r
+#define INCLUDE_eTaskGetState                                  1\r
+#define INCLUDE_xTaskResumeFromISR                             0\r
+#define INCLUDE_xTaskGetCurrentTaskHandle              1\r
+#define INCLUDE_xTaskGetSchedulerState                 0\r
+#define INCLUDE_xSemaphoreGetMutexHolder               0\r
+#define INCLUDE_xTimerPendFunctionCall                 1\r
+\r
+/* This demo makes use of one or more example stats formatting functions.  These\r
+format the raw data provided by the uxTaskGetSystemState() function in to human\r
+readable ASCII form.  See the notes in the implementation of vTaskList() within\r
+FreeRTOS/Source/tasks.c for limitations. */\r
+#define configUSE_STATS_FORMATTING_FUNCTIONS   1\r
+\r
+/* Dimensions a buffer that can be used by the FreeRTOS+CLI command\r
+interpreter.  See the FreeRTOS+CLI documentation for more information:\r
+http://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_CLI/ */\r
+#define configCOMMAND_INT_MAX_OUTPUT_SIZE              2048\r
+\r
+\r
+/* Cortex-M3/4 interrupt priority configuration follows...................... */\r
+\r
+/* Use the system definition, if there is one. */\r
+#ifdef __NVIC_PRIO_BITS\r
+       #define configPRIO_BITS       __NVIC_PRIO_BITS\r
+#else\r
+       #define configPRIO_BITS       3     /* 8 priority levels */\r
+#endif\r
+\r
+/* The lowest interrupt priority that can be used in a call to a "set priority"\r
+function. */\r
+#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY                        0x07\r
+\r
+/* The highest interrupt priority that can be used by any interrupt service\r
+routine that makes calls to interrupt safe FreeRTOS API functions.  DO NOT CALL\r
+INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER\r
+PRIORITY THAN THIS! (higher priorities are lower numeric values. */\r
+#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY   5\r
+\r
+/* Interrupt priorities used by the kernel port layer itself.  These are generic\r
+to all Cortex-M ports, and do not rely on any particular library functions. */\r
+#define configKERNEL_INTERRUPT_PRIORITY                ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )\r
+/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!!\r
+See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */\r
+#define configMAX_SYSCALL_INTERRUPT_PRIORITY   ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )\r
+\r
+/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS\r
+standard names - can't be used with CCS due to limitations in the assemblers\r
+pre-processing. */\r
+#ifndef __TI_COMPILER_VERSION__\r
+       #define xPortPendSVHandler      PendSV_Handler\r
+       #define vPortSVCHandler         SVC_Handler\r
+       #define xPortSysTickHandler     SysTick_Handler\r
+#endif\r
+\r
+/* The trace facility is turned on to make some functions available for use in\r
+CLI commands. */\r
+#define configUSE_TRACE_FACILITY       1\r
+\r
+/* Some board specifics.   The LED is on P1.0, configure the pin as output. */\r
+#define configTOGGLE_LED()             GPIO_toggleOutputOnPin( GPIO_PORT_P1, GPIO_PIN0 )\r
+\r
+/* The #ifdef guards against the file being included from IAR assembly files. */\r
+#ifndef __IASMARM__\r
+\r
+       /* TI driver library includes. */\r
+       #include <driverlib.h>\r
+\r
+       void vPreSleepProcessing( uint32_t ulExpectedIdleTime );\r
+       #define configPRE_SLEEP_PROCESSING( x ) vPreSleepProcessing( x )\r
+\r
+       #if configCREATE_SIMPLE_TICKLESS_DEMO == 1\r
+\r
+               /* Constants related to the generation of run time stats.  Run time stats\r
+               are gathered in the full demo, not the blinky demo. */\r
+               #define configGENERATE_RUN_TIME_STATS                   0\r
+               #define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS()\r
+               #define portGET_RUN_TIME_COUNTER_VALUE()                0\r
+\r
+               /* The blinky demo can use a slow tick rate to save power. */\r
+               #define configTICK_RATE_HZ                                              ( ( TickType_t ) 100 )\r
+\r
+       #else\r
+\r
+               /* Constants related to the generation of run time stats.  Run time stats\r
+               are gathered in the full demo, not the blinky demo. */\r
+               void vConfigureTimerForRunTimeStats( void );\r
+               uint32_t ulGetRunTimeCounterValue( void );\r
+               #define configGENERATE_RUN_TIME_STATS   1\r
+               #define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() vConfigureTimerForRunTimeStats()\r
+               #define portGET_RUN_TIME_COUNTER_VALUE() ulGetRunTimeCounterValue()\r
+\r
+               /* Some of the tests in the full demo expecte a 1ms tick rate. */\r
+               #define configTICK_RATE_HZ                                              ( ( TickType_t ) 1000 )\r
+\r
+       #endif /* configCREATE_SIMPLE_TICKLESS_DEMO */\r
+#endif /* __IASMARM__ */\r
+\r
+#endif /* FREERTOS_CONFIG_H */\r
+\r