Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
tools:freertos [2023/07/01 16:55] – darron | tools:freertos [2023/11/27 04:26] (current) – [Resources] darron | ||
---|---|---|---|
Line 2: | Line 2: | ||
===Install=== | ===Install=== | ||
+ | |||
+ | ==current== | ||
< | < | ||
Line 9: | Line 11: | ||
</ | </ | ||
+ | ===LTS=== | ||
+ | |||
+ | < | ||
+ | cd /opt | ||
+ | wget https:// | ||
+ | unzip FreeRTOSv202210.01-LTS.zip | ||
+ | </ | ||
+ | |||
+ | ==git== | ||
+ | |||
+ | < | ||
+ | cd /opt | ||
+ | git clone --recurse-submodules https:// | ||
+ | </ | ||
+ | ===Configuration=== | ||
+ | |||
+ | Configuration for FreeRTOS on STM32F302R8 using timer tick instead | ||
+ | of SysTick for multitasking. | ||
+ | |||
+ | < | ||
+ | /* | ||
+ | * FreeRTOS V202212.01 | ||
+ | * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. | ||
+ | * | ||
+ | * 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:// | ||
+ | * https:// | ||
+ | * | ||
+ | */ | ||
+ | |||
+ | #ifndef FREERTOS_CONFIG_H | ||
+ | #define FREERTOS_CONFIG_H | ||
+ | |||
+ | / | ||
+ | * Application specific definitions. | ||
+ | * | ||
+ | * These definitions should be adjusted for your particular hardware and | ||
+ | * application requirements. | ||
+ | * | ||
+ | * THESE PARAMETERS ARE DESCRIBED WITHIN THE ' | ||
+ | * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. | ||
+ | * | ||
+ | * See https:// | ||
+ | | ||
+ | |||
+ | /* Pre-emptive, | ||
+ | #define configUSE_PREEMPTION | ||
+ | |||
+ | /* Idle task: void vApplicationIdleHook(void); | ||
+ | #define configUSE_IDLE_HOOK | ||
+ | |||
+ | /* Tick task: void vApplicationTickHook(void); | ||
+ | #define configUSE_TICK_HOOK | ||
+ | |||
+ | /* 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==== | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | [[https:// |