Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
tools:freertos [2023/09/03 20:35] – darron | tools:freertos [2024/10/18 15:24] (current) – [Install] darron | ||
---|---|---|---|
Line 3: | Line 3: | ||
===Install=== | ===Install=== | ||
- | ==current== | + | ==Current== |
< | < | ||
Line 11: | Line 11: | ||
</ | </ | ||
- | ===LTS=== | + | ==LTS== |
< | < | ||
Line 19: | Line 19: | ||
</ | </ | ||
- | ==git== | + | ==GIT== |
< | < | ||
Line 25: | Line 25: | ||
git clone --recurse-submodules https:// | git clone --recurse-submodules https:// | ||
</ | </ | ||
- | ===Configuration=== | ||
- | Configuration for FreeRTOS on STM32F302R8 using timer tick instead | + | ==KERNEL== |
- | of SysTick for multitasking. | + | |
< | < | ||
- | /* | + | cd /opt |
- | * FreeRTOS V202212.01 | + | git clone --recurse-submodules |
- | * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. | + | </code> |
- | * | + | |
- | * Permission is hereby granted, free of charge, to any person obtaining a copy of | + | |
- | * this software and associated documentation files (the " | + | |
- | * the Software without restriction, | + | |
- | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | + | |
- | * the Software, and to permit persons to whom the Software is furnished to do so, | + | |
- | * subject to the following conditions: | + | |
- | * | + | |
- | * The above copyright notice and this permission notice shall be included in all | + | |
- | * copies or substantial portions of the Software. | + | |
- | * | + | |
- | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | + | |
- | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | + | |
- | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | + | |
- | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | + | |
- | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | + | |
- | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | + | |
- | * | + | |
- | * https:// | + | |
- | | + | |
- | * | + | |
- | */ | + | |
- | #ifndef FREERTOS_CONFIG_H | + | ==RPi== |
- | #define FREERTOS_CONFIG_H | + | |
- | /*----------------------------------------------------------- | + | < |
- | * Application specific definitions. | + | cd /opt |
- | * | + | git clone --recurse-submodules |
- | * These definitions should be adjusted for your particular hardware and | + | </code> |
- | * application requirements. | + | |
- | * | + | |
- | * THESE PARAMETERS ARE DESCRIBED WITHIN THE ' | + | |
- | * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. | + | |
- | * | + | |
- | * See https://www.freertos.org/a00110.html | + | |
- | *----------------------------------------------------------*/ | + | |
- | /* Pre-emptive, | ||
- | #define configUSE_PREEMPTION | ||
- | /* Idle task: void vApplicationIdleHook(void); | + | ===Update=== |
- | #define configUSE_IDLE_HOOK | + | |
- | /* Tick task: void vApplicationTickHook(void); | + | <code> |
- | #define configUSE_TICK_HOOK | + | git pull --recurse-submodules |
- | + | ||
- | /* Core frequency for SysTick */ | + | |
- | #define configCPU_CLOCK_HZ | + | |
- | + | ||
- | /* SysTick/ | + | |
- | #define configTICK_RATE_HZ | + | |
- | + | ||
- | /* Highest priority (1..32) */ | + | |
- | #define configMAX_PRIORITIES | + | |
- | + | ||
- | /* Idle task stack size */ | + | |
- | #define configMINIMAL_STACK_SIZE | + | |
- | + | ||
- | /* Memory heap size */ | + | |
- | #define configTOTAL_HEAP_SIZE | + | |
- | + | ||
- | /* Task name length (1=DISABLE) */ | + | |
- | #define configMAX_TASK_NAME_LEN | + | |
- | + | ||
- | /* Enable trace */ | + | |
- | #define configUSE_TRACE_FACILITY | + | |
- | + | ||
- | /* Tick counter size */ | + | |
- | #define configUSE_16_BIT_TICKS | + | |
- | + | ||
- | /* Idle task yields to other tasks at idle priority */ | + | |
- | #define configIDLE_SHOULD_YIELD | + | |
- | + | ||
- | /* Enable mutexes */ | + | |
- | #define configUSE_MUTEXES | + | |
- | + | ||
- | /* Queue registry for debugging */ | + | |
- | #define configQUEUE_REGISTRY_SIZE | + | |
- | + | ||
- | /* Overflow task: void vApplicationStackOverflowHook(TaskHandle_t xTask, signed char *pcTaskName); | + | |
- | #define configCHECK_FOR_STACK_OVERFLOW | + | |
- | + | ||
- | /* Enable recursive mutexes */ | + | |
- | #define configUSE_RECURSIVE_MUTEXES | + | |
- | + | ||
- | /* OOM task: void vApplicationMallocFailedHook(void); | + | |
- | #define configUSE_MALLOC_FAILED_HOOK | + | |
- | + | ||
- | /* Enable task tagging */ | + | |
- | #define configUSE_APPLICATION_TASK_TAG | + | |
- | + | ||
- | /* Enable semaphores */ | + | |
- | #define configUSE_COUNTING_SEMAPHORES | + | |
- | + | ||
- | /* See: https:// | + | |
- | #define configGENERATE_RUN_TIME_STATS | + | |
- | + | ||
- | /* | + | |
- | * Software timer definitions. | + | |
- | * | + | |
- | * See: https:// | + | |
- | */ | + | |
- | #define configUSE_TIMERS | + | |
- | #define configTIMER_TASK_PRIORITY | + | |
- | #define configTIMER_QUEUE_LENGTH | + | |
- | #define configTIMER_TASK_STACK_DEPTH | + | |
- | + | ||
- | /* | + | |
- | * Set the following definitions to 1 to include the API function, or zero to | + | |
- | * exclude the API function. | + | |
- | */ | + | |
- | #define INCLUDE_vTaskPrioritySet | + | |
- | #define INCLUDE_uxTaskPriorityGet | + | |
- | #define INCLUDE_vTaskDelete | + | |
- | #define INCLUDE_vTaskCleanUpResources | + | |
- | #define INCLUDE_vTaskSuspend | + | |
- | #define INCLUDE_vTaskDelayUntil | + | |
- | #define INCLUDE_vTaskDelay | + | |
- | + | ||
- | /* | + | |
- | * Cortex-M4 specific definitions. | + | |
- | */ | + | |
- | #define configPRIO_BITS | + | |
- | + | ||
- | /* | + | |
- | * The lowest interrupt priority that can be used in a call to a "set priority" | + | |
- | * function. | + | |
- | */ | + | |
- | #define configLIBRARY_LOWEST_INTERRUPT_PRIORITY | + | |
- | + | ||
- | /* | + | |
- | * The highest interrupt priority that can be used by any interrupt service | + | |
- | * routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT | + | |
- | * CALL * INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A | + | |
- | * HIGHER PRIORITY THAN THIS! (higher priorities are lower numeric values. | + | |
- | */ | + | |
- | #define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY | + | |
- | + | ||
- | /* | + | |
- | * Interrupt priorities used by the kernel port layer itself. These are generic | + | |
- | * to all Cortex-M ports, and do not rely on any particular library functions. | + | |
- | */ | + | |
- | #define configKERNEL_INTERRUPT_PRIORITY | + | |
- | + | ||
- | /* | + | |
- | * !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! | + | |
- | * | + | |
- | * See http:// | + | |
- | */ | + | |
- | #define configMAX_SYSCALL_INTERRUPT_PRIORITY | + | |
- | + | ||
- | /* | + | |
- | * Normal assert() semantics without relying on the provision of an assert.h | + | |
- | * header file. | + | |
- | */ | + | |
- | #define configASSERT(x) if ((x) == 0) { taskDISABLE_INTERRUPTS(); | + | |
- | + | ||
- | /* | + | |
- | * Definitions that map the FreeRTOS port interrupt handlers to their CMSIS | + | |
- | * standard names. | + | |
- | */ | + | |
- | #define vPortSVCHandler | + | |
- | #define xPortPendSVHandler | + | |
- | #if 0 /* Tick setup task: void vPortSetupTimerInterrupt(void); | + | |
- | #define xPortSysTickHandler | + | |
- | #endif | + | |
- | + | ||
- | #endif /* !FREERTOS_CONFIG_H */ | + | |
</ | </ | ||
====Resources==== | ====Resources==== | ||
[[https:// | [[https:// | ||
+ | |||
+ | [[https:// |