xref: /aosp_15_r20/external/pigweed/targets/apollo4_pw_system/config/FreeRTOSConfig.h (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1 // Copyright 2023 The Pigweed Authors
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License"); you may not
4 // use this file except in compliance with the License. You may obtain a copy of
5 // the License at
6 //
7 //     https://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11 // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12 // License for the specific language governing permissions and limitations under
13 // the License.
14 #pragma once
15 
16 #include <stdint.h>
17 
18 // Externally defined variables that must be forward-declared for FreeRTOS to
19 // use them.
20 extern uint32_t SystemCoreClock;
21 
22 // Disable formatting to make it easier to compare with other config files.
23 // clang-format off
24 
25 #define configUSE_PREEMPTION                    1
26 #define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
27 
28 #define configSUPPORT_STATIC_ALLOCATION         1
29 #define configSUPPORT_DYNAMIC_ALLOCATION        0
30 
31 #define configCPU_CLOCK_HZ                      SystemCoreClock
32 #define configTICK_RATE_HZ                      1000
33 #define configMAX_PRIORITIES                    16
34 #define configMINIMAL_STACK_SIZE                128
35 
36 #define configMAX_TASK_NAME_LEN                 16
37 #define configUSE_16_BIT_TICKS                  0
38 
39 #define configUSE_MUTEXES                       1
40 #define configUSE_RECURSIVE_MUTEXES             0
41 #define configUSE_COUNTING_SEMAPHORES           1
42 #define configQUEUE_REGISTRY_SIZE               8
43 #define configUSE_QUEUE_SETS                    0
44 #define configUSE_NEWLIB_REENTRANT              0
45 #define configENABLE_BACKWARD_COMPATIBILITY     0
46 #define configRECORD_STACK_HIGH_ADDRESS         1
47 
48 #define configUSE_IDLE_HOOK                     0
49 #define configUSE_TICK_HOOK                     0
50 #define configCHECK_FOR_STACK_OVERFLOW          2
51 #define configUSE_MALLOC_FAILED_HOOK            1
52 
53 #define configGENERATE_RUN_TIME_STATS           0
54 #define configUSE_TRACE_FACILITY                0
55 
56 #define configUSE_TIMERS                        1
57 #define configTIMER_TASK_PRIORITY               3
58 #define configTIMER_QUEUE_LENGTH                10
59 #define configTIMER_TASK_STACK_DEPTH            configMINIMAL_STACK_SIZE
60 
61 #define configKERNEL_INTERRUPT_PRIORITY             (0x7 << 5)
62 #define configMAX_SYSCALL_INTERRUPT_PRIORITY        (0x4 << 5)
63 #define NVIC_configKERNEL_INTERRUPT_PRIORITY        (0x7)
64 #define NVIC_configMAX_SYSCALL_INTERRUPT_PRIORITY   (0x4)
65 
66 /* Optional functions - most linkers will remove unused functions anyway. */
67 #define INCLUDE_vTaskPrioritySet                1
68 #define INCLUDE_uxTaskPriorityGet               1
69 #define INCLUDE_vTaskDelete                     1
70 #define INCLUDE_vTaskSuspend                    1
71 #define INCLUDE_xResumeFromISR                  0
72 #define INCLUDE_vTaskDelayUntil                 0
73 #define INCLUDE_vTaskDelay                      1
74 #define INCLUDE_xTaskGetSchedulerState          1
75 #define INCLUDE_xTaskGetCurrentTaskHandle       1
76 #define INCLUDE_uxTaskGetStackHighWaterMark2    1
77 #define INCLUDE_uxTaskGetStackHighWaterMark     1
78 
79 // Instead of defining configASSERT(), include a header that provides a
80 // definition that redirects to pw_assert.
81 #include "pw_third_party/freertos/config_assert.h"
82