firmware
IEM Firmware Documentation
Loading...
Searching...
No Matches
FreeRTOSConfig.h
Go to the documentation of this file.
1/* FreeRTOS V202212.00
2 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy of
5 * this software and associated documentation files (the "Software"), to deal in
6 * the Software without restriction, including without limitation the rights to
7 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
8 * the Software, and to permit persons to whom the Software is furnished to do so,
9 * subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in all
12 * copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
16 * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
17 * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
18 * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20 *
21 * https://www.FreeRTOS.org
22 * https://github.com/FreeRTOS
23 *
24 */
25#ifndef FREERTOS_CONFIG_H
26#define FREERTOS_CONFIG_H
27
28/*-----------------------------------------------------------
29* Application specific definitions.
30*
31* These definitions should be adjusted for your particular hardware and
32* application requirements.
33*
34* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
35* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. See
36* https://www.FreeRTOS.org/a00110.html
37*----------------------------------------------------------*/
38
39#define configUSE_PREEMPTION 1
40#define configUSE_PORT_OPTIMISED_TASK_SELECTION 0
41#define configUSE_IDLE_HOOK 1
42#define configUSE_TICK_HOOK 1
43#define configUSE_DAEMON_TASK_STARTUP_HOOK 1
44#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
45#define configMINIMAL_STACK_SIZE ( ( unsigned short ) PTHREAD_STACK_MIN ) /* The stack size being passed is equal to the minimum stack size needed by pthread_create(). */
46#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 65 * 1024 ) )
47#define configMAX_TASK_NAME_LEN ( 12 )
48#define configUSE_TRACE_FACILITY 1
49#define configUSE_16_BIT_TICKS 0
50#define configIDLE_SHOULD_YIELD 1
51#define configUSE_MUTEXES 1
52#define configCHECK_FOR_STACK_OVERFLOW 0
53#define configUSE_RECURSIVE_MUTEXES 1
54#define configQUEUE_REGISTRY_SIZE 20
55#define configUSE_APPLICATION_TASK_TAG 1
56#define configUSE_COUNTING_SEMAPHORES 1
57#define configUSE_ALTERNATIVE_API 0
58#define configUSE_QUEUE_SETS 1
59#define configUSE_TASK_NOTIFICATIONS 1
60
61/* The following 2 memory allocation schemes are possible for this demo:
62 *
63 * 1. Dynamic Only.
64 * #define configSUPPORT_STATIC_ALLOCATION 0
65 * #define configSUPPORT_DYNAMIC_ALLOCATION 1
66 *
67 * 2. Static and Dynamic.
68 * #define configSUPPORT_STATIC_ALLOCATION 1
69 * #define configSUPPORT_DYNAMIC_ALLOCATION 1
70 *
71 * Static only configuration is not possible for this demo as it utilizes
72 * dynamic allocation.
73 */
74#define configSUPPORT_STATIC_ALLOCATION 1
75#define configSUPPORT_DYNAMIC_ALLOCATION 1
76
77#define configRECORD_STACK_HIGH_ADDRESS 1
78
79/* Software timer related configuration options. The maximum possible task
80 * priority is configMAX_PRIORITIES - 1. The priority of the timer task is
81 * deliberately set higher to ensure it is correctly capped back to
82 * configMAX_PRIORITIES - 1. */
83#define configUSE_TIMERS 1
84#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
85#define configTIMER_QUEUE_LENGTH 20
86#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
87
88#define configMAX_PRIORITIES ( 7 )
89
90/* Run time stats gathering configuration options. */
91unsigned long ulGetRunTimeCounterValue( void ); /* Prototype of function that returns run time counter. */
92void vConfigureTimerForRunTimeStats( void ); /* Prototype of function that initialises the run time counter. */
93#define configGENERATE_RUN_TIME_STATS 1
94
95/* Co-routine related configuration options. */
96#define configUSE_CO_ROUTINES 0
97#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
98
99/* This demo can use of one or more example stats formatting functions. These
100 * format the raw data provided by the uxTaskGetSystemState() function in to human
101 * readable ASCII form. See the notes in the implementation of vTaskList() within
102 * FreeRTOS/Source/tasks.c for limitations. */
103#define configUSE_STATS_FORMATTING_FUNCTIONS 0
104
105/* Enables the test whereby a stack larger than the total heap size is
106 * requested. */
107#define configSTACK_DEPTH_TYPE uint32_t
108
109/* Set the following definitions to 1 to include the API function, or zero
110 * to exclude the API function. In most cases the linker will remove unused
111 * functions anyway. */
112#define INCLUDE_vTaskPrioritySet 1
113#define INCLUDE_uxTaskPriorityGet 1
114#define INCLUDE_vTaskDelete 1
115#define INCLUDE_vTaskCleanUpResources 0
116#define INCLUDE_vTaskSuspend 1
117#define INCLUDE_vTaskDelayUntil 1
118#define INCLUDE_vTaskDelay 1
119#define INCLUDE_uxTaskGetStackHighWaterMark 1
120#define INCLUDE_uxTaskGetStackHighWaterMark2 1
121#define INCLUDE_xTaskGetSchedulerState 1
122#define INCLUDE_xTimerGetTimerDaemonTaskHandle 1
123#define INCLUDE_xTaskGetIdleTaskHandle 1
124#define INCLUDE_xTaskGetHandle 1
125#define INCLUDE_eTaskGetState 1
126#define INCLUDE_xSemaphoreGetMutexHolder 1
127#define INCLUDE_xTimerPendFunctionCall 1
128#define INCLUDE_xTaskAbortDelay 1
129
130#define configINCLUDE_MESSAGE_BUFFER_AMP_DEMO 0
131#if ( configINCLUDE_MESSAGE_BUFFER_AMP_DEMO == 1 )
132 extern void vGenerateCoreBInterrupt( void * xUpdatedMessageBuffer );
133 #define sbSEND_COMPLETED( pxStreamBuffer ) vGenerateCoreBInterrupt( pxStreamBuffer )
134#endif /* configINCLUDE_MESSAGE_BUFFER_AMP_DEMO */
135
136extern void vAssertCalled( const char * const pcFileName,
137 unsigned long ulLine );
138
139/* projCOVERAGE_TEST should be defined on the command line so this file can be
140 * used with multiple project configurations. If it is
141 */
142#ifndef projCOVERAGE_TEST
143 #error projCOVERAGE_TEST should be defined to 1 or 0 on the command line.
144#endif
145
146#ifndef projENABLE_TRACING
147 #error projENABLE_TRACING should be defined to 1 or 0 on the command line.
148#endif
149
150#if ( projCOVERAGE_TEST == 1 )
151
152/* Insert NOPs in empty decision paths to ensure both true and false paths
153 * are being tested. */
154 #define mtCOVERAGE_TEST_MARKER() __asm volatile ( "NOP" )
155
156/* Ensure the tick count overflows during the coverage test. */
157 #define configINITIAL_TICK_COUNT 0xffffd800UL
158
159/* Allows tests of trying to allocate more than the heap has free. */
160 #define configUSE_MALLOC_FAILED_HOOK 0
161
162/* To test builds that remove the static qualifier for debug builds. */
163 #define portREMOVE_STATIC_QUALIFIER
164#else /* if ( projCOVERAGE_TEST == 1 ) */
165
166/* It is a good idea to define configASSERT() while developing. configASSERT()
167 * uses the same semantics as the standard C assert() macro. Don't define
168 * configASSERT() when performing code coverage tests though, as it is not
169 * intended to asserts() to fail, some some code is intended not to run if no
170 * errors are present. */
171 #define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )
172
173 #define configUSE_MALLOC_FAILED_HOOK 1
174
175/* Include the FreeRTOS+Trace FreeRTOS trace macro definitions. */
176 #if( projENABLE_TRACING == 1 )
177 #include "trcRecorder.h"
178 #endif /* if ( projENABLE_TRACING == 1 ) */
179#endif /* if ( projCOVERAGE_TEST == 1 ) */
180
181/* networking definitions */
182#define configMAC_ISR_SIMULATOR_PRIORITY ( configMAX_PRIORITIES - 1 )
183
184/* Prototype for the function used to print out. In this case it prints to the
185 * console before the network is connected then a UDP port after the network has
186 * connected. */
187extern void vLoggingPrintf( const char * pcFormatString,
188 ... );
189
190/* Set to 1 to print out debug messages. If ipconfigHAS_DEBUG_PRINTF is set to
191 * 1 then FreeRTOS_debug_printf should be defined to the function used to print
192 * out the debugging messages. */
193#define ipconfigHAS_DEBUG_PRINTF 1
194#if ( ipconfigHAS_DEBUG_PRINTF == 1 )
195 #define FreeRTOS_debug_printf( X ) vLoggingPrintf X
196#endif
197
198/* Set to 1 to print out non debugging messages, for example the output of the
199 * FreeRTOS_netstat() command, and ping replies. If ipconfigHAS_PRINTF is set to 1
200 * then FreeRTOS_printf should be set to the function used to print out the
201 * messages. */
202#define ipconfigHAS_PRINTF 0
203#if ( ipconfigHAS_PRINTF == 1 )
204 #define FreeRTOS_printf( X ) vLoggingPrintf X
205#endif
206#endif /* FREERTOS_CONFIG_H */
void vAssertCalled(const char *const pcFileName, unsigned long ulLine)
unsigned long ulGetRunTimeCounterValue(void)
void vLoggingPrintf(const char *pcFormatString,...)
void vConfigureTimerForRunTimeStats(void)