2 * FreeRTOS Kernel V10.2.0
\r
3 * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
\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
12 * The above copyright notice and this permission notice shall be included in all
\r
13 * copies or substantial portions of the Software.
\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
22 * http://www.FreeRTOS.org
\r
23 * http://aws.amazon.com/freertos
\r
25 * 1 tab == 4 spaces!
\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
33 #ifndef FREERTOS_CONFIG_H
\r
34 #define FREERTOS_CONFIG_H
\r
36 /*-----------------------------------------------------------
\r
37 * Application specific definitions.
\r
39 * These definitions should be adjusted for your particular hardware and
\r
40 * application requirements.
\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
47 extern uint32_t SystemCoreClock;
\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
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
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
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
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
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
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
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
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
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
128 /* Interrupt priority configuration follows...................... */
\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
134 #define configPRIO_BITS 3 /* 8 priority levels. */
\r
137 /* The lowest interrupt priority that can be used in a call to a "set priority"
\r
139 #define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0x07
\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
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
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
155 /* The #ifdef guards against the file being included from IAR assembly files. */
\r
156 #ifndef __IASMARM__
\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
164 #endif /* __IASMARM__ */
\r
166 /* Enable static allocation. */
\r
167 #define configSUPPORT_STATIC_ALLOCATION 1
\r
169 #endif /* FREERTOS_CONFIG_H */
\r