]> git.sur5r.net Git - freertos/blob
828d5de3b150b6dffe9f7c8eba66359e86e46ef6
[freertos] /
1 /*\r
2  * FreeRTOS Kernel V10.2.0\r
3  * Copyright (C) 2019 Amazon.com, Inc. or its affiliates.  All Rights Reserved.\r
4  *\r
5  * Permission is hereby granted, free of charge, to any person obtaining a copy of\r
6  * this software and associated documentation files (the "Software"), to deal in\r
7  * the Software without restriction, including without limitation the rights to\r
8  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\r
9  * the Software, and to permit persons to whom the Software is furnished to do so,\r
10  * subject to the following conditions:\r
11  *\r
12  * The above copyright notice and this permission notice shall be included in all\r
13  * copies or substantial portions of the Software.\r
14  *\r
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
16  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\r
17  * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\r
18  * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r
19  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
20  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
21  *\r
22  * http://www.FreeRTOS.org\r
23  * http://aws.amazon.com/freertos\r
24  *\r
25  * 1 tab == 4 spaces!\r
26  */\r
27 \r
28 /******************************************************************************\r
29         See http://www.freertos.org/a00110.html for an explanation of the\r
30         definitions contained in this file.\r
31 ******************************************************************************/\r
32 \r
33 #ifndef FREERTOS_CONFIG_H\r
34 #define FREERTOS_CONFIG_H\r
35 \r
36 /*-----------------------------------------------------------\r
37  * Application specific definitions.\r
38  *\r
39  * These definitions should be adjusted for your particular hardware and\r
40  * application requirements.\r
41  *\r
42  * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE\r
43  * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.\r
44  * http://www.freertos.org/a00110.html\r
45  *----------------------------------------------------------*/\r
46 \r
47 extern uint32_t SystemCoreClock;\r
48 \r
49 /* Cortex M33 port configuration. */\r
50 #define configENABLE_MPU                                                                1\r
51 #define configENABLE_FPU                                                                0\r
52 #define configENABLE_TRUSTZONE                                                  1\r
53 \r
54 /* Constants related to the behaviour or the scheduler. */\r
55 #define configUSE_PORT_OPTIMISED_TASK_SELECTION                 0\r
56 #define configUSE_PREEMPTION                                                    1\r
57 #define configUSE_TIME_SLICING                                                  1\r
58 #define configMAX_PRIORITIES                                                    ( 5 )\r
59 #define configIDLE_SHOULD_YIELD                                                 1\r
60 #define configUSE_16_BIT_TICKS                                                  0 /* Only for 8 and 16-bit hardware. */\r
61 \r
62 /* Constants that describe the hardware and memory usage. */\r
63 #define configCPU_CLOCK_HZ                                                              SystemCoreClock\r
64 #define configMINIMAL_STACK_SIZE                                                ( ( uint16_t ) 128 )\r
65 #define configMINIMAL_SECURE_STACK_SIZE                                 ( 1024 )\r
66 #define configMAX_TASK_NAME_LEN                                                 ( 12 )\r
67 #define configTOTAL_HEAP_SIZE                                                   ( ( size_t ) ( 50 * 1024 ) )\r
68 \r
69 /* Constants that build features in or out. */\r
70 #define configUSE_MUTEXES                                                               1\r
71 #define configUSE_TICKLESS_IDLE                                                 1\r
72 #define configUSE_APPLICATION_TASK_TAG                                  0\r
73 #define configUSE_NEWLIB_REENTRANT                                              0\r
74 #define configUSE_CO_ROUTINES                                                   0\r
75 #define configUSE_COUNTING_SEMAPHORES                                   1\r
76 #define configUSE_RECURSIVE_MUTEXES                                             1\r
77 #define configUSE_QUEUE_SETS                                                    0\r
78 #define configUSE_TASK_NOTIFICATIONS                                    1\r
79 #define configUSE_TRACE_FACILITY                                                1\r
80 \r
81 /* Constants that define which hook (callback) functions should be used. */\r
82 #define configUSE_IDLE_HOOK                                                             0\r
83 #define configUSE_TICK_HOOK                                                             0\r
84 #define configUSE_MALLOC_FAILED_HOOK                                    0\r
85 \r
86 /* Constants provided for debugging and optimisation assistance. */\r
87 #define configCHECK_FOR_STACK_OVERFLOW                                  2\r
88 #define configASSERT( x )                                                               if( ( x ) == 0 ) { taskDISABLE_INTERRUPTS(); for( ;; ); }\r
89 #define configQUEUE_REGISTRY_SIZE                                               0\r
90 \r
91 /* Software timer definitions. */\r
92 #define configUSE_TIMERS                                                                1\r
93 #define configTIMER_TASK_PRIORITY                                               ( 3 )\r
94 #define configTIMER_QUEUE_LENGTH                                                5\r
95 #define configTIMER_TASK_STACK_DEPTH                                    ( configMINIMAL_STACK_SIZE  )\r
96 \r
97 /* Set the following definitions to 1 to include the API function, or zero\r
98  * to exclude the API function.  NOTE:  Setting an INCLUDE_ parameter to 0 is\r
99  * only necessary if the linker does not automatically remove functions that are\r
100  * not referenced anyway. */\r
101 #define INCLUDE_vTaskPrioritySet                                                1\r
102 #define INCLUDE_uxTaskPriorityGet                                               1\r
103 #define INCLUDE_vTaskDelete                                                             1\r
104 #define INCLUDE_vTaskCleanUpResources                                   0\r
105 #define INCLUDE_vTaskSuspend                                                    1\r
106 #define INCLUDE_vTaskDelayUntil                                                 1\r
107 #define INCLUDE_vTaskDelay                                                              1\r
108 #define INCLUDE_uxTaskGetStackHighWaterMark                             0\r
109 #define INCLUDE_xTaskGetIdleTaskHandle                                  0\r
110 #define INCLUDE_eTaskGetState                                                   1\r
111 #define INCLUDE_xTaskResumeFromISR                                              0\r
112 #define INCLUDE_xTaskGetCurrentTaskHandle                               1\r
113 #define INCLUDE_xTaskGetSchedulerState                                  0\r
114 #define INCLUDE_xSemaphoreGetMutexHolder                                0\r
115 #define INCLUDE_xTimerPendFunctionCall                                  1\r
116 \r
117 /* This demo makes use of one or more example stats formatting functions.  These\r
118  * format the raw data provided by the uxTaskGetSystemState() function in to\r
119  * human readable ASCII form.  See the notes in the implementation of vTaskList()\r
120  * within FreeRTOS/Source/tasks.c for limitations. */\r
121 #define configUSE_STATS_FORMATTING_FUNCTIONS                    1\r
122 \r
123 /* Dimensions a buffer that can be used by the FreeRTOS+CLI command interpreter.\r
124  * See the FreeRTOS+CLI documentation for more information:\r
125  * http://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_CLI/ */\r
126 #define configCOMMAND_INT_MAX_OUTPUT_SIZE                               2048\r
127 \r
128 /* Interrupt priority configuration follows...................... */\r
129 \r
130 /* Use the system definition, if there is one. */\r
131 #ifdef __NVIC_PRIO_BITS\r
132         #define configPRIO_BITS                                                         __NVIC_PRIO_BITS\r
133 #else\r
134         #define configPRIO_BITS                                                         3        /* 8 priority levels. */\r
135 #endif\r
136 \r
137 /* The lowest interrupt priority that can be used in a call to a "set priority"\r
138  * function. */\r
139 #define configLIBRARY_LOWEST_INTERRUPT_PRIORITY                 0x07\r
140 \r
141 /* The highest interrupt priority that can be used by any interrupt service\r
142  * routine that makes calls to interrupt safe FreeRTOS API functions.  DO NOT\r
143  * CALL INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A\r
144  * HIGHER PRIORITY THAN THIS! (higher priorities are lower numeric values). */\r
145 #define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY    5\r
146 \r
147 /* Interrupt priorities used by the kernel port layer itself.  These are generic\r
148  * to all Cortex-M ports, and do not rely on any particular library functions. */\r
149 #define configKERNEL_INTERRUPT_PRIORITY                                 ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << ( 8 - configPRIO_BITS ) )\r
150 \r
151 /* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!!\r
152  * See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */\r
153 #define configMAX_SYSCALL_INTERRUPT_PRIORITY                    ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << ( 8 - configPRIO_BITS ) )\r
154 \r
155 /* The #ifdef guards against the file being included from IAR assembly files. */\r
156 #ifndef __IASMARM__\r
157 \r
158         /* Constants related to the generation of run time stats. */\r
159         #define configGENERATE_RUN_TIME_STATS                           0\r
160         #define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS()\r
161         #define portGET_RUN_TIME_COUNTER_VALUE()                        0\r
162         #define configTICK_RATE_HZ                                                      ( ( TickType_t ) 100 )\r
163 \r
164 #endif /* __IASMARM__ */\r
165 \r
166 /* Enable static allocation. */\r
167 #define configSUPPORT_STATIC_ALLOCATION                                 1\r
168 \r
169 #endif /* FREERTOS_CONFIG_H */\r