xref: /aosp_15_r20/external/pigweed/targets/rp2040/config/FreeRTOSConfig.h (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1*61c4878aSAndroid Build Coastguard Worker // Copyright 2022 The Pigweed Authors
2*61c4878aSAndroid Build Coastguard Worker //
3*61c4878aSAndroid Build Coastguard Worker // Licensed under the Apache License, Version 2.0 (the "License"); you may not
4*61c4878aSAndroid Build Coastguard Worker // use this file except in compliance with the License. You may obtain a copy of
5*61c4878aSAndroid Build Coastguard Worker // the License at
6*61c4878aSAndroid Build Coastguard Worker //
7*61c4878aSAndroid Build Coastguard Worker //     https://www.apache.org/licenses/LICENSE-2.0
8*61c4878aSAndroid Build Coastguard Worker //
9*61c4878aSAndroid Build Coastguard Worker // Unless required by applicable law or agreed to in writing, software
10*61c4878aSAndroid Build Coastguard Worker // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11*61c4878aSAndroid Build Coastguard Worker // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12*61c4878aSAndroid Build Coastguard Worker // License for the specific language governing permissions and limitations under
13*61c4878aSAndroid Build Coastguard Worker // the License.
14*61c4878aSAndroid Build Coastguard Worker #pragma once
15*61c4878aSAndroid Build Coastguard Worker 
16*61c4878aSAndroid Build Coastguard Worker #include <stdint.h>
17*61c4878aSAndroid Build Coastguard Worker 
18*61c4878aSAndroid Build Coastguard Worker // Disable formatting to make it easier to compare with other config files.
19*61c4878aSAndroid Build Coastguard Worker // clang-format off
20*61c4878aSAndroid Build Coastguard Worker 
21*61c4878aSAndroid Build Coastguard Worker extern uint32_t SystemCoreClock;
22*61c4878aSAndroid Build Coastguard Worker 
23*61c4878aSAndroid Build Coastguard Worker #define vPortSVCHandler         SVC_Handler
24*61c4878aSAndroid Build Coastguard Worker #define xPortPendSVHandler      PendSV_Handler
25*61c4878aSAndroid Build Coastguard Worker #define xPortSysTickHandler     SysTick_Handler
26*61c4878aSAndroid Build Coastguard Worker 
27*61c4878aSAndroid Build Coastguard Worker #if defined(__ARM_FP) && __ARM_FP
28*61c4878aSAndroid Build Coastguard Worker #define configENABLE_FPU                        1
29*61c4878aSAndroid Build Coastguard Worker #else
30*61c4878aSAndroid Build Coastguard Worker #define configENABLE_FPU                        0
31*61c4878aSAndroid Build Coastguard Worker #endif  // defined(__ARM_FP) && __ARM_FP
32*61c4878aSAndroid Build Coastguard Worker 
33*61c4878aSAndroid Build Coastguard Worker // TODO: https://pwbug.dev/353570428 - Set up the MPU.
34*61c4878aSAndroid Build Coastguard Worker #define configENABLE_MPU                        0
35*61c4878aSAndroid Build Coastguard Worker #define configENABLE_TRUSTZONE                  0
36*61c4878aSAndroid Build Coastguard Worker #define configRUN_FREERTOS_SECURE_ONLY          1
37*61c4878aSAndroid Build Coastguard Worker 
38*61c4878aSAndroid Build Coastguard Worker #define configUSE_PREEMPTION                    1
39*61c4878aSAndroid Build Coastguard Worker #define configUSE_PORT_OPTIMISED_TASK_SELECTION 0
40*61c4878aSAndroid Build Coastguard Worker #define configUSE_TICKLESS_IDLE                 0
41*61c4878aSAndroid Build Coastguard Worker #if defined(_PW_PICO_GN_BUILD) && _PW_PICO_GN_BUILD
42*61c4878aSAndroid Build Coastguard Worker // GN Pico build is less complete than Bazel, so SystemCoreClock isn't properly
43*61c4878aSAndroid Build Coastguard Worker // referenced.
44*61c4878aSAndroid Build Coastguard Worker #define configCPU_CLOCK_HZ                      133000000
45*61c4878aSAndroid Build Coastguard Worker #else
46*61c4878aSAndroid Build Coastguard Worker #define configCPU_CLOCK_HZ                      (SystemCoreClock)
47*61c4878aSAndroid Build Coastguard Worker #endif  // defined(_PW_PICO_GN_BUILD) && _PW_PICO_GN_BUILD
48*61c4878aSAndroid Build Coastguard Worker #define configTICK_RATE_HZ                      ((TickType_t)1000)
49*61c4878aSAndroid Build Coastguard Worker #define configMAX_PRIORITIES                    5
50*61c4878aSAndroid Build Coastguard Worker #define configMINIMAL_STACK_SIZE                ((uint32_t)(256))
51*61c4878aSAndroid Build Coastguard Worker #define configMAX_TASK_NAME_LEN                 16
52*61c4878aSAndroid Build Coastguard Worker #define configUSE_16_BIT_TICKS                  0
53*61c4878aSAndroid Build Coastguard Worker #define configIDLE_SHOULD_YIELD                 1
54*61c4878aSAndroid Build Coastguard Worker #define configUSE_TASK_NOTIFICATIONS            1
55*61c4878aSAndroid Build Coastguard Worker #define configTASK_NOTIFICATION_ARRAY_ENTRIES   3
56*61c4878aSAndroid Build Coastguard Worker #define configUSE_MUTEXES                       1
57*61c4878aSAndroid Build Coastguard Worker #define configUSE_RECURSIVE_MUTEXES             0
58*61c4878aSAndroid Build Coastguard Worker #define configUSE_COUNTING_SEMAPHORES           1
59*61c4878aSAndroid Build Coastguard Worker #define configQUEUE_REGISTRY_SIZE               10
60*61c4878aSAndroid Build Coastguard Worker #define configUSE_QUEUE_SETS                    0
61*61c4878aSAndroid Build Coastguard Worker #define configUSE_TIME_SLICING                  1
62*61c4878aSAndroid Build Coastguard Worker #define configUSE_NEWLIB_REENTRANT              0
63*61c4878aSAndroid Build Coastguard Worker #define configENABLE_BACKWARD_COMPATIBILITY     0
64*61c4878aSAndroid Build Coastguard Worker #define configNUM_THREAD_LOCAL_STORAGE_POINTERS 5
65*61c4878aSAndroid Build Coastguard Worker #define configSTACK_DEPTH_TYPE                  uint32_t
66*61c4878aSAndroid Build Coastguard Worker #define configMESSAGE_BUFFER_LENGTH_TYPE        size_t
67*61c4878aSAndroid Build Coastguard Worker 
68*61c4878aSAndroid Build Coastguard Worker #define configSUPPORT_STATIC_ALLOCATION         1
69*61c4878aSAndroid Build Coastguard Worker #define configSUPPORT_DYNAMIC_ALLOCATION        0
70*61c4878aSAndroid Build Coastguard Worker #define configTOTAL_HEAP_SIZE                   ((size_t)(1 * 1024))
71*61c4878aSAndroid Build Coastguard Worker #define configAPPLICATION_ALLOCATED_HEAP        1
72*61c4878aSAndroid Build Coastguard Worker 
73*61c4878aSAndroid Build Coastguard Worker #define configUSE_IDLE_HOOK                     0
74*61c4878aSAndroid Build Coastguard Worker #define configUSE_TICK_HOOK                     0
75*61c4878aSAndroid Build Coastguard Worker #define configCHECK_FOR_STACK_OVERFLOW          0
76*61c4878aSAndroid Build Coastguard Worker #define configUSE_MALLOC_FAILED_HOOK            0
77*61c4878aSAndroid Build Coastguard Worker #define configUSE_DAEMON_TASK_STARTUP_HOOK      0
78*61c4878aSAndroid Build Coastguard Worker 
79*61c4878aSAndroid Build Coastguard Worker #define configGENERATE_RUN_TIME_STATS           0
80*61c4878aSAndroid Build Coastguard Worker // #define portGET_RUN_TIME_COUNTER_VALUE          getRunTimeCounterValue
81*61c4878aSAndroid Build Coastguard Worker #define configUSE_TRACE_FACILITY                0
82*61c4878aSAndroid Build Coastguard Worker #define configUSE_STATS_FORMATTING_FUNCTIONS    0
83*61c4878aSAndroid Build Coastguard Worker 
84*61c4878aSAndroid Build Coastguard Worker #define configUSE_CO_ROUTINES                   0
85*61c4878aSAndroid Build Coastguard Worker #define configMAX_CO_ROUTINE_PRIORITIES         1
86*61c4878aSAndroid Build Coastguard Worker 
87*61c4878aSAndroid Build Coastguard Worker #define configUSE_TIMERS                        1
88*61c4878aSAndroid Build Coastguard Worker #define configTIMER_TASK_PRIORITY               3
89*61c4878aSAndroid Build Coastguard Worker #define configTIMER_QUEUE_LENGTH                10
90*61c4878aSAndroid Build Coastguard Worker #define configTIMER_TASK_STACK_DEPTH            configMINIMAL_STACK_SIZE
91*61c4878aSAndroid Build Coastguard Worker 
92*61c4878aSAndroid Build Coastguard Worker #define configRECORD_STACK_HIGH_ADDRESS         1
93*61c4878aSAndroid Build Coastguard Worker 
94*61c4878aSAndroid Build Coastguard Worker /* __NVIC_PRIO_BITS in CMSIS */
95*61c4878aSAndroid Build Coastguard Worker #define configPRIO_BITS 4
96*61c4878aSAndroid Build Coastguard Worker 
97*61c4878aSAndroid Build Coastguard Worker #define configLIBRARY_LOWEST_INTERRUPT_PRIORITY ((1U << (configPRIO_BITS)) - 1)
98*61c4878aSAndroid Build Coastguard Worker #define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 2
99*61c4878aSAndroid Build Coastguard Worker #define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS))
100*61c4878aSAndroid Build Coastguard Worker #define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS))
101*61c4878aSAndroid Build Coastguard Worker 
102*61c4878aSAndroid Build Coastguard Worker // Instead of defining configASSERT(), include a header that provides a
103*61c4878aSAndroid Build Coastguard Worker // definition that redirects to pw_assert.
104*61c4878aSAndroid Build Coastguard Worker #include "pw_third_party/freertos/config_assert.h"
105*61c4878aSAndroid Build Coastguard Worker 
106*61c4878aSAndroid Build Coastguard Worker #define INCLUDE_vTaskPrioritySet                1
107*61c4878aSAndroid Build Coastguard Worker #define INCLUDE_uxTaskPriorityGet               1
108*61c4878aSAndroid Build Coastguard Worker #define INCLUDE_vTaskDelete                     1
109*61c4878aSAndroid Build Coastguard Worker #define INCLUDE_vTaskSuspend                    1
110*61c4878aSAndroid Build Coastguard Worker #define INCLUDE_xResumeFromISR                  1
111*61c4878aSAndroid Build Coastguard Worker #define INCLUDE_vTaskDelayUntil                 1
112*61c4878aSAndroid Build Coastguard Worker #define INCLUDE_vTaskDelay                      1
113*61c4878aSAndroid Build Coastguard Worker #define INCLUDE_xTaskGetSchedulerState          1
114*61c4878aSAndroid Build Coastguard Worker #define INCLUDE_xTaskGetCurrentTaskHandle       1
115*61c4878aSAndroid Build Coastguard Worker #define INCLUDE_uxTaskGetStackHighWaterMark     1
116*61c4878aSAndroid Build Coastguard Worker #define INCLUDE_xTaskGetIdleTaskHandle          0
117*61c4878aSAndroid Build Coastguard Worker #define INCLUDE_eTaskGetState                   0
118*61c4878aSAndroid Build Coastguard Worker #define INCLUDE_xEventGroupSetBitFromISR        1
119*61c4878aSAndroid Build Coastguard Worker #define INCLUDE_xTimerPendFunctionCall          0
120*61c4878aSAndroid Build Coastguard Worker #define INCLUDE_xTaskAbortDelay                 0
121*61c4878aSAndroid Build Coastguard Worker #define INCLUDE_xTaskGetHandle                  0
122*61c4878aSAndroid Build Coastguard Worker #define INCLUDE_xTaskResumeFromISR              1
123