1 | /*
|
2 | FreeRTOS V8.1.2 - Copyright (C) 2014 Real Time Engineers Ltd.
|
3 | All rights reserved
|
4 |
|
5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
|
6 |
|
7 | ***************************************************************************
|
8 | * *
|
9 | * FreeRTOS provides completely free yet professionally developed, *
|
10 | * robust, strictly quality controlled, supported, and cross *
|
11 | * platform software that has become a de facto standard. *
|
12 | * *
|
13 | * Help yourself get started quickly and support the FreeRTOS *
|
14 | * project by purchasing a FreeRTOS tutorial book, reference *
|
15 | * manual, or both from: http://www.FreeRTOS.org/Documentation *
|
16 | * *
|
17 | * Thank you! *
|
18 | * *
|
19 | ***************************************************************************
|
20 |
|
21 | This file is part of the FreeRTOS distribution.
|
22 |
|
23 | FreeRTOS is free software; you can redistribute it and/or modify it under
|
24 | the terms of the GNU General Public License (version 2) as published by the
|
25 | Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.
|
26 |
|
27 | >>! NOTE: The modification to the GPL is included to allow you to !<<
|
28 | >>! distribute a combined work that includes FreeRTOS without being !<<
|
29 | >>! obliged to provide the source code for proprietary components !<<
|
30 | >>! outside of the FreeRTOS kernel. !<<
|
31 |
|
32 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY
|
33 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
34 | FOR A PARTICULAR PURPOSE. Full license text is available from the following
|
35 | link: http://www.freertos.org/a00114.html
|
36 |
|
37 | 1 tab == 4 spaces!
|
38 |
|
39 | ***************************************************************************
|
40 | * *
|
41 | * Having a problem? Start by reading the FAQ "My application does *
|
42 | * not run, what could be wrong?" *
|
43 | * *
|
44 | * http://www.FreeRTOS.org/FAQHelp.html *
|
45 | * *
|
46 | ***************************************************************************
|
47 |
|
48 | http://www.FreeRTOS.org - Documentation, books, training, latest versions,
|
49 | license and Real Time Engineers Ltd. contact details.
|
50 |
|
51 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
|
52 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS
|
53 | compatible FAT file system, and our tiny thread aware UDP/IP stack.
|
54 |
|
55 | http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High
|
56 | Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS
|
57 | licenses offer ticketed support, indemnification and middleware.
|
58 |
|
59 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety
|
60 | engineered and independently SIL3 certified version for use in safety and
|
61 | mission critical applications that require provable dependability.
|
62 |
|
63 | 1 tab == 4 spaces!
|
64 | */
|
65 |
|
66 | #ifndef FREERTOS_CONFIG_H
|
67 | #define FREERTOS_CONFIG_H
|
68 |
|
69 | #include "stm32f4xx.h"
|
70 | //#include "ustime.h"
|
71 |
|
72 | /*-----------------------------------------------------------
|
73 | * Application specific definitions.
|
74 | *
|
75 | * These definitions should be adjusted for your particular hardware and
|
76 | * application requirements.
|
77 | *
|
78 | * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
|
79 | * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
|
80 | *
|
81 | * See http://www.freertos.org/a00110.html.
|
82 | *----------------------------------------------------------*/
|
83 |
|
84 | #define configUSE_PREEMPTION 1
|
85 | #define configUSE_IDLE_HOOK 0
|
86 | #define configUSE_TICK_HOOK 0
|
87 | #define configCPU_CLOCK_HZ ( SystemCoreClock )
|
88 | #define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
89 | #define configMAX_PRIORITIES ( 8 )
|
90 | #define configMINIMAL_STACK_SIZE ( ( unsigned short ) 128 )
|
91 | #define configTOTAL_HEAP_SIZE ( ( size_t ) ( 15 * 1024 ) )
|
92 | #define configMAX_TASK_NAME_LEN ( 16 )
|
93 | #define configUSE_16_BIT_TICKS 0
|
94 | #define configUSE_TRACE_FACILITY 1
|
95 | #define configIDLE_SHOULD_YIELD 1
|
96 | #define configUSE_APPLICATION_TASK_TAG 1
|
97 | #define configUSE_MUTEXES 1
|
98 | #define configUSE_COUNTING_SEMAPHORES 1
|
99 | #define configQUEUE_REGISTRY_SIZE 8
|
100 | #define configUSE_RECURSIVE_MUTEXES 1
|
101 | #define configUSE_MALLOC_FAILED_HOOK 0
|
102 |
|
103 |
|
104 | #define configCHECK_FOR_STACK_OVERFLOW 0
|
105 | #define configGENERATE_RUN_TIME_STATS 0
|
106 | #define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS init_us_timer
|
107 | #define portGET_RUN_TIME_COUNTER_VALUE get_us_time
|
108 |
|
109 | /* Co-routine definitions. */
|
110 | #define configUSE_CO_ROUTINES 0
|
111 | #define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
|
112 |
|
113 | /* Software timer definitions. */
|
114 | #define configUSE_TIMERS 0
|
115 | #define configTIMER_TASK_PRIORITY ( 2 )
|
116 | #define configTIMER_QUEUE_LENGTH 10
|
117 | #define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
|
118 |
|
119 |
|
120 | /* Set the following definitions to 1 to include the API function, or zero
|
121 | to exclude the API function. */
|
122 |
|
123 | #define INCLUDE_vTaskPrioritySet 1
|
124 | #define INCLUDE_uxTaskPriorityGet 1
|
125 | #define INCLUDE_vTaskDelete 1
|
126 | #define INCLUDE_vTaskCleanUpResources 0
|
127 | #define INCLUDE_vTaskSuspend 0
|
128 | #define INCLUDE_vTaskDelayUntil 0
|
129 | #define INCLUDE_vTaskDelay 1
|
130 | #define INCLUDE_uxTaskGetStackHighWaterMark 1
|
131 | #define INCLUDE_xTaskGetIdleTaskHandle 1
|
132 |
|
133 | /* Cortex-M specific definitions. */
|
134 | #ifdef __NVIC_PRIO_BITS
|
135 | /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */
|
136 | #define configPRIO_BITS __NVIC_PRIO_BITS
|
137 | #else
|
138 | #define configPRIO_BITS 4 /* 15 priority levels */
|
139 | #endif
|
140 |
|
141 | /* The lowest interrupt priority that can be used in a call to a "set priority"
|
142 | function. */
|
143 | #define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf
|
144 |
|
145 | /* The highest interrupt priority that can be used by any interrupt service
|
146 | routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL
|
147 | INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER
|
148 | PRIORITY THAN THIS! (higher priorities are lower numeric values. */
|
149 | #define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5
|
150 |
|
151 | /* Interrupt priorities used by the kernel port layer itself. These are generic
|
152 | to all Cortex-M ports, and do not rely on any particular library functions. */
|
153 | #define configKERNEL_INTERRUPT_PRIORITY ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
|
154 | #define configMAX_SYSCALL_INTERRUPT_PRIORITY ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
|
155 |
|
156 | /* Normal assert() semantics without relying on the provision of an assert.h
|
157 | header file. */
|
158 | #define configASSERT( x ) if( ( x ) == 0 ) { taskDISABLE_INTERRUPTS(); for( ;; ); }
|
159 |
|
160 | /* Redefine functions names to match the standard peripheral library */
|
161 | //#define xPortSysTickHandler SysTick_Handler
|
162 | #define xPortPendSVHandler PendSV_Handler
|
163 | #define vPortSVCHandler SVC_Handler
|
164 |
|
165 | //#define pvPortMalloc malloc
|
166 | //#define vPortFree free
|
167 |
|
168 | /**
|
169 | * Define the traceTASK_SWITCHED_IN() macro to output the voltage
|
170 | * associated with the task being selected to run on DAC1.
|
171 | */
|
172 | #define traceTASK_SWITCHED_IN() \
|
173 | DAC->DHR12L1 = (unsigned)pxCurrentTCB->pxTaskTag
|
174 |
|
175 | #endif /* FREERTOS_CONFIG_H */
|