-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFreeRTOSConfig.h
More file actions
149 lines (135 loc) · 7.16 KB
/
FreeRTOSConfig.h
File metadata and controls
149 lines (135 loc) · 7.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
#ifndef FREERTOS_CONFIG_H
#define FREERTOS_CONFIG_H
/*
* Конфигурация FreeRTOS.
* См. http://www.freertos.org/a00110.html
*/
// Тайминги и счётчики.
// Частота CPU.
#define configCPU_CLOCK_HZ 72000000
// Частота системного таймера.
#define configTICK_RATE_HZ 1000
// Использование 16 битного системного счётчика.
#define configUSE_16_BIT_TICKS 0
// Использование останова системного счётчика.
#define configUSE_TICKLESS_IDLE 0
// Память.
// Минимальный размер стека в машинных словах.
#define configMINIMAL_STACK_SIZE 128
// Полный размер кучи.
#define configTOTAL_HEAP_SIZE 4096
// Кучу выделяет приложение.
#define configAPPLICATION_ALLOCATED_HEAP 1
// Поддержка статического выделения памяти.
#define configSUPPORT_STATIC_ALLOCATION 1
// Поддержка динамического выделения памяти.
#define configSUPPORT_DYNAMIC_ALLOCATION 0
// Проверка переполнения стека.
#define configCHECK_FOR_STACK_OVERFLOW 2
// Сохранение максимального адреса стека.
#define configRECORD_STACK_HIGH_ADDRESS 1
// Планировщик.
// Использование вытеснения.
#define configUSE_PREEMPTION 1
// Максимальное число приоритетов.
#define configMAX_PRIORITIES 16
// Чередовать задачи с равным приоритетом.
#define configUSE_TIME_SLICING 1
// Использование оптимизированного выбора задач.
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
// Задачи.
// Максимальная длина имени задачи.
#define configMAX_TASK_NAME_LEN 16
// Задача idle должна отдавать процессорное время.
#define configIDLE_SHOULD_YIELD 1
// Использование структуры Newlib reent.
#define configUSE_NEWLIB_REENTRANT 0
// Количество пользовательских указателей.
#define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0
// Таймеры.
// Использование таймеров.
#define configUSE_TIMERS 1
// Приоритет задачи управления таймерами.
#define configTIMER_TASK_PRIORITY 5
// Длина очереди команд управления таймерами.
#define configTIMER_QUEUE_LENGTH 8
// Размер стека задачи управления таймерами.
#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2)
// IPC.
// Уведомления потоков.
#define configUSE_TASK_NOTIFICATIONS 0
// Мютексы.
#define configUSE_MUTEXES 1
// Рекурсивные мютексы.
#define configUSE_RECURSIVE_MUTEXES 0
// Счётные семафоры.
#define configUSE_COUNTING_SEMAPHORES 0
// Максимум зарегистрированных очередей.
#define configQUEUE_REGISTRY_SIZE 4
// Наборы очередей.
#define configUSE_QUEUE_SETS 0
// Сопрограммы.
// Использование сопрограмм.
#define configUSE_CO_ROUTINES 0
// Максимальное число приоритетов сопрограмм.
#define configMAX_CO_ROUTINE_PRIORITIES 2
// Хуки.
// Передача управления задаче idle.
#define configUSE_IDLE_HOOK 0
// Ошибка при выделении памяти.
#define configUSE_MALLOC_FAILED_HOOK 0
// Статистика.
// Сбор статистики времени выполнения.
#define configGENERATE_RUN_TIME_STATS 1
// Функционал для трассировки и визуализации выполнения.
#define configUSE_TRACE_FACILITY 1
// Функции получения форматированной статистики.
#define configUSE_STATS_FORMATTING_FUNCTIONS 0
// Первый запуск задачи управления таймерами.
#define configUSE_DAEMON_TASK_STARTUP_HOOK 0
// Тик системного счётчика.
#define configUSE_TICK_HOOK 0
// Макросы для статистики времени выполнения.
#if configGENERATE_RUN_TIME_STATS != 0
// Настройка счётчика времени выполнения.
extern void initHiresCounter(void);
#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() initHiresCounter()
// Получение значение счётчика времени выполнения.
extern uint32_t getHiresCounterValue(void);
#define portGET_RUN_TIME_COUNTER_VALUE() getHiresCounterValue()
#endif
// Прерывания.
// Приоритет прерывания ядра.
#define configKERNEL_INTERRUPT_PRIORITY 255
// Максимальный приоритет прерываний, использующих
// системные вызовы FreeRTOS.
// См. http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html
// 143 (0x8f) соответствует 8 прерываниям (0-7),
// из которых нельзя вызывать функции FreeRTOS и
// 8 прерываниям (8-15), из которых можно вызывать
// функции FreeRTOS.
#define configMAX_SYSCALL_INTERRUPT_PRIORITY 143
// Обработчики системных прерываний.
#define vPortSVCHandler SVC_Handler
#define xPortPendSVHandler PendSV_Handler
#define xPortSysTickHandler SysTick_Handler
// Дополнительные функции.
#define INCLUDE_vTaskPrioritySet 0
#define INCLUDE_uxTaskPriorityGet 0
#define INCLUDE_vTaskDelete 1
#define INCLUDE_vTaskSuspend 1
#define INCLUDE_xTaskResumeFromISR 1
#define INCLUDE_vTaskDelayUntil 0
#define INCLUDE_vTaskDelay 1
#define INCLUDE_xTaskGetSchedulerState 0
#define INCLUDE_xTaskGetCurrentTaskHandle 0
#define INCLUDE_uxTaskGetStackHighWaterMark 0
#define INCLUDE_xTaskGetIdleTaskHandle 0
#define INCLUDE_eTaskGetState 0
#define INCLUDE_xEventGroupSetBitFromISR 0
#define INCLUDE_xTimerPendFunctionCall 0
#define INCLUDE_xTaskAbortDelay 0
#define INCLUDE_xTaskGetHandle 0
//extern void vFreeRtosAssert(void);
//#define configASSERT( x ) if( ( x ) == 0 ) { vFreeRtosAssert(); }
#endif //FREERTOS_CONFIG_H