www.freertos.org

Dependents:   Nucleo freertos_test FreeRTOS_test freertos_bluetooth ... more

Committer:
rgrover1
Date:
Fri Jan 24 14:56:04 2014 +0000
Revision:
0:8e57f3e9cc89
Making FreeRTOS available as a library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rgrover1 0:8e57f3e9cc89 1 /*
rgrover1 0:8e57f3e9cc89 2 FreeRTOS V7.6.0 - Copyright (C) 2013 Real Time Engineers Ltd.
rgrover1 0:8e57f3e9cc89 3 All rights reserved
rgrover1 0:8e57f3e9cc89 4
rgrover1 0:8e57f3e9cc89 5 VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
rgrover1 0:8e57f3e9cc89 6
rgrover1 0:8e57f3e9cc89 7 ***************************************************************************
rgrover1 0:8e57f3e9cc89 8 * *
rgrover1 0:8e57f3e9cc89 9 * FreeRTOS provides completely free yet professionally developed, *
rgrover1 0:8e57f3e9cc89 10 * robust, strictly quality controlled, supported, and cross *
rgrover1 0:8e57f3e9cc89 11 * platform software that has become a de facto standard. *
rgrover1 0:8e57f3e9cc89 12 * *
rgrover1 0:8e57f3e9cc89 13 * Help yourself get started quickly and support the FreeRTOS *
rgrover1 0:8e57f3e9cc89 14 * project by purchasing a FreeRTOS tutorial book, reference *
rgrover1 0:8e57f3e9cc89 15 * manual, or both from: http://www.FreeRTOS.org/Documentation *
rgrover1 0:8e57f3e9cc89 16 * *
rgrover1 0:8e57f3e9cc89 17 * Thank you! *
rgrover1 0:8e57f3e9cc89 18 * *
rgrover1 0:8e57f3e9cc89 19 ***************************************************************************
rgrover1 0:8e57f3e9cc89 20
rgrover1 0:8e57f3e9cc89 21 This file is part of the FreeRTOS distribution.
rgrover1 0:8e57f3e9cc89 22
rgrover1 0:8e57f3e9cc89 23 FreeRTOS is free software; you can redistribute it and/or modify it under
rgrover1 0:8e57f3e9cc89 24 the terms of the GNU General Public License (version 2) as published by the
rgrover1 0:8e57f3e9cc89 25 Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.
rgrover1 0:8e57f3e9cc89 26
rgrover1 0:8e57f3e9cc89 27 >>! NOTE: The modification to the GPL is included to allow you to distribute
rgrover1 0:8e57f3e9cc89 28 >>! a combined work that includes FreeRTOS without being obliged to provide
rgrover1 0:8e57f3e9cc89 29 >>! the source code for proprietary components outside of the FreeRTOS
rgrover1 0:8e57f3e9cc89 30 >>! kernel.
rgrover1 0:8e57f3e9cc89 31
rgrover1 0:8e57f3e9cc89 32 FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY
rgrover1 0:8e57f3e9cc89 33 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
rgrover1 0:8e57f3e9cc89 34 FOR A PARTICULAR PURPOSE. Full license text is available from the following
rgrover1 0:8e57f3e9cc89 35 link: http://www.freertos.org/a00114.html
rgrover1 0:8e57f3e9cc89 36
rgrover1 0:8e57f3e9cc89 37 1 tab == 4 spaces!
rgrover1 0:8e57f3e9cc89 38
rgrover1 0:8e57f3e9cc89 39 ***************************************************************************
rgrover1 0:8e57f3e9cc89 40 * *
rgrover1 0:8e57f3e9cc89 41 * Having a problem? Start by reading the FAQ "My application does *
rgrover1 0:8e57f3e9cc89 42 * not run, what could be wrong?" *
rgrover1 0:8e57f3e9cc89 43 * *
rgrover1 0:8e57f3e9cc89 44 * http://www.FreeRTOS.org/FAQHelp.html *
rgrover1 0:8e57f3e9cc89 45 * *
rgrover1 0:8e57f3e9cc89 46 ***************************************************************************
rgrover1 0:8e57f3e9cc89 47
rgrover1 0:8e57f3e9cc89 48 http://www.FreeRTOS.org - Documentation, books, training, latest versions,
rgrover1 0:8e57f3e9cc89 49 license and Real Time Engineers Ltd. contact details.
rgrover1 0:8e57f3e9cc89 50
rgrover1 0:8e57f3e9cc89 51 http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
rgrover1 0:8e57f3e9cc89 52 including FreeRTOS+Trace - an indispensable productivity tool, a DOS
rgrover1 0:8e57f3e9cc89 53 compatible FAT file system, and our tiny thread aware UDP/IP stack.
rgrover1 0:8e57f3e9cc89 54
rgrover1 0:8e57f3e9cc89 55 http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High
rgrover1 0:8e57f3e9cc89 56 Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS
rgrover1 0:8e57f3e9cc89 57 licenses offer ticketed support, indemnification and middleware.
rgrover1 0:8e57f3e9cc89 58
rgrover1 0:8e57f3e9cc89 59 http://www.SafeRTOS.com - High Integrity Systems also provide a safety
rgrover1 0:8e57f3e9cc89 60 engineered and independently SIL3 certified version for use in safety and
rgrover1 0:8e57f3e9cc89 61 mission critical applications that require provable dependability.
rgrover1 0:8e57f3e9cc89 62
rgrover1 0:8e57f3e9cc89 63 1 tab == 4 spaces!
rgrover1 0:8e57f3e9cc89 64 */
rgrover1 0:8e57f3e9cc89 65
rgrover1 0:8e57f3e9cc89 66 #ifndef FREERTOS_CONFIG_H
rgrover1 0:8e57f3e9cc89 67 #define FREERTOS_CONFIG_H
rgrover1 0:8e57f3e9cc89 68
rgrover1 0:8e57f3e9cc89 69 /*-----------------------------------------------------------
rgrover1 0:8e57f3e9cc89 70 * Application specific definitions.
rgrover1 0:8e57f3e9cc89 71 *
rgrover1 0:8e57f3e9cc89 72 * These definitions should be adjusted for your particular hardware and
rgrover1 0:8e57f3e9cc89 73 * application requirements.
rgrover1 0:8e57f3e9cc89 74 *
rgrover1 0:8e57f3e9cc89 75 * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
rgrover1 0:8e57f3e9cc89 76 * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
rgrover1 0:8e57f3e9cc89 77 *----------------------------------------------------------*/
rgrover1 0:8e57f3e9cc89 78
rgrover1 0:8e57f3e9cc89 79 #include <stdint.h>
rgrover1 0:8e57f3e9cc89 80 extern uint32_t SystemCoreClock;
rgrover1 0:8e57f3e9cc89 81
rgrover1 0:8e57f3e9cc89 82 #define configUSE_PREEMPTION 1
rgrover1 0:8e57f3e9cc89 83 #define configUSE_IDLE_HOOK 0
rgrover1 0:8e57f3e9cc89 84 #define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 )
rgrover1 0:8e57f3e9cc89 85 #define configUSE_TICK_HOOK 0
rgrover1 0:8e57f3e9cc89 86 #define configCPU_CLOCK_HZ ( ( unsigned long ) SystemCoreClock )
rgrover1 0:8e57f3e9cc89 87 #define configTICK_RATE_HZ ( ( portTickType ) 1000 )
rgrover1 0:8e57f3e9cc89 88 #define configMINIMAL_STACK_SIZE ( ( unsigned short ) 80 )
rgrover1 0:8e57f3e9cc89 89 #define configTOTAL_HEAP_SIZE ( ( size_t ) ( 10 * 1024 ) )
rgrover1 0:8e57f3e9cc89 90 #define configMAX_TASK_NAME_LEN ( 12 )
rgrover1 0:8e57f3e9cc89 91 #define configUSE_TRACE_FACILITY 1
rgrover1 0:8e57f3e9cc89 92 #define configUSE_16_BIT_TICKS 0
rgrover1 0:8e57f3e9cc89 93 #define configIDLE_SHOULD_YIELD 0
rgrover1 0:8e57f3e9cc89 94 #define configUSE_CO_ROUTINES 0
rgrover1 0:8e57f3e9cc89 95 #define configUSE_MUTEXES 1
rgrover1 0:8e57f3e9cc89 96
rgrover1 0:8e57f3e9cc89 97 #define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
rgrover1 0:8e57f3e9cc89 98
rgrover1 0:8e57f3e9cc89 99 #define configUSE_COUNTING_SEMAPHORES 0
rgrover1 0:8e57f3e9cc89 100 #define configUSE_ALTERNATIVE_API 0
rgrover1 0:8e57f3e9cc89 101 #define configCHECK_FOR_STACK_OVERFLOW 0
rgrover1 0:8e57f3e9cc89 102 #define configUSE_RECURSIVE_MUTEXES 1
rgrover1 0:8e57f3e9cc89 103 #define configQUEUE_REGISTRY_SIZE 10
rgrover1 0:8e57f3e9cc89 104 #define configGENERATE_RUN_TIME_STATS 0
rgrover1 0:8e57f3e9cc89 105
rgrover1 0:8e57f3e9cc89 106 /* Set the following definitions to 1 to include the API function, or zero
rgrover1 0:8e57f3e9cc89 107 to exclude the API function. */
rgrover1 0:8e57f3e9cc89 108
rgrover1 0:8e57f3e9cc89 109 #define INCLUDE_vTaskPrioritySet 1
rgrover1 0:8e57f3e9cc89 110 #define INCLUDE_uxTaskPriorityGet 1
rgrover1 0:8e57f3e9cc89 111 #define INCLUDE_vTaskDelete 1
rgrover1 0:8e57f3e9cc89 112 #define INCLUDE_vTaskCleanUpResources 0
rgrover1 0:8e57f3e9cc89 113 #define INCLUDE_vTaskSuspend 1
rgrover1 0:8e57f3e9cc89 114 #define INCLUDE_vTaskDelayUntil 1
rgrover1 0:8e57f3e9cc89 115 #define INCLUDE_vTaskDelay 1
rgrover1 0:8e57f3e9cc89 116 #define INCLUDE_uxTaskGetStackHighWaterMark 1
rgrover1 0:8e57f3e9cc89 117
rgrover1 0:8e57f3e9cc89 118
rgrover1 0:8e57f3e9cc89 119 /* Use the system definition, if there is one */
rgrover1 0:8e57f3e9cc89 120 #ifdef __NVIC_PRIO_BITS
rgrover1 0:8e57f3e9cc89 121 #define configPRIO_BITS __NVIC_PRIO_BITS
rgrover1 0:8e57f3e9cc89 122 #else
rgrover1 0:8e57f3e9cc89 123 #define configPRIO_BITS 5 /* 32 priority levels */
rgrover1 0:8e57f3e9cc89 124 #endif
rgrover1 0:8e57f3e9cc89 125
rgrover1 0:8e57f3e9cc89 126 /* The lowest priority. */
rgrover1 0:8e57f3e9cc89 127 #define configKERNEL_INTERRUPT_PRIORITY ( 31 << (8 - configPRIO_BITS) )
rgrover1 0:8e57f3e9cc89 128 /* Priority 5, or 160 as only the top three bits are implemented. */
rgrover1 0:8e57f3e9cc89 129 /* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!!
rgrover1 0:8e57f3e9cc89 130 See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */
rgrover1 0:8e57f3e9cc89 131 #define configMAX_SYSCALL_INTERRUPT_PRIORITY ( 5 << (8 - configPRIO_BITS) )
rgrover1 0:8e57f3e9cc89 132
rgrover1 0:8e57f3e9cc89 133 /* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS
rgrover1 0:8e57f3e9cc89 134 standard names - or at least those used in the unmodified vector table. */
rgrover1 0:8e57f3e9cc89 135 #define vPortSVCHandler SVC_Handler
rgrover1 0:8e57f3e9cc89 136 #define xPortPendSVHandler PendSV_Handler
rgrover1 0:8e57f3e9cc89 137 #define xPortSysTickHandler SysTick_Handler
rgrover1 0:8e57f3e9cc89 138
rgrover1 0:8e57f3e9cc89 139
rgrover1 0:8e57f3e9cc89 140 #endif /* FREERTOS_CONFIG_H */