finalising the sample FreeRTOSConfig.h header file

pull/812/head
Joseph Julicher 2 years ago
parent 81bd4c1776
commit d4734f50b5

@ -1,18 +0,0 @@
#define CONFIG_SELECT_CORTEX_M 1
#define CONFIG_configCPU_CLOCK_HZ 20000000
#define CONFIG_SELECT_SYSTICKER 1
#define CONFIG_configSYSTICK_CLOCK_HZ 500
#define CONFIG_configTICK_RATE_HZ 100
#define CONFIG_configUSE_PREEMPTION 1
#define CONFIG_configUSE_TIME_SLICING 1
#define CONFIG_configMAX_PRIORITIES 5
#define CONFIG_configMINIMAL_STACK_SIZE 128
#define CONFIG_configMAX_TASK_NAME_LEN 16
#define CONFIG_configTASK_NOTIFICATION_ARRAY_ENTRIES 1
#define CONFIG_configQUEUE_REGISTRY_SIZE 0
#define CONFIG_configNUM_THREAD_LOCAL_STORAGE_POINTERS 0
#define CONFIG_SELECT_UINT16 1
#define CONFIG_configSTACK_DEPTH_TYPE "uint16_t"
#define CONFIG_configMESSAGE_BUFFER_LENGTH_TYPE "size_t"
#define CONFIG_configUSE_TIMERS 1
#define CONFIG_configTIMER_TASK_PRIORITY 0

@ -1,159 +0,0 @@
config SELECT_CORTEX_M
bool "Using a Cortex M?"
default y
config configCPU_CLOCK_HZ
int "What is the CPU clock frequency? (hz)"
default 20000000
help
In most cases, configCPU_CLOCK_HZ must be set to the frequency of the clock
that drives the peripheral used to generate the kernels periodic tick interrupt.
The default value is set to 20MHz and matches the QEMU demo settings. Your
application will certainly need a different value so set this correctly.
This is very often, but not always, equal to the main system clock frequency
config SELECT_SYSTICKER
bool "Sys Tick timer clocked at a different frequency than CPU?"
depends on SELECT_CORTEX_M
default n
help
By default ARM Cortex-M ports generate the RTOS tick interrupt from the
Cortex-M SysTick timer. Most Cortex-M MCUs run the SysTick timer at the same
frequency as the MCU itself - when that is the case configSYSTICK_CLOCK_HZ is
not needed and should be left undefined. If the SysTick timer is clocked at a
different frequency to the MCU core then set configCPU_CLOCK_HZ to the MCU clock
frequency, as normal, and configSYSTICK_CLOCK_HZ to the SysTick clock
frequency.
config configSYSTICK_CLOCK_HZ
int "Sys Tick timer frequency? (hz)"
depends on SELECT_SYSTICKER
config configTICK_RATE_HZ
int "FreeRTOS Scheduler Tick Rate (hz)"
default 100
config configUSE_PREEMPTION
bool "Enable pre-emptive scheduling"
default y
help
https://www.freertos.org/single-core-amp-smp-rtos-scheduling.html
config configUSE_TIME_SLICING
bool "Configure the scheduler to switch between ready tasks of equal priority"
default y
help
https://freertos.org/single-core-amp-smp-rtos-scheduling.html
config configUSE_PORT_OPTIMISED_TASK_SELECTION
bool "Use an optmised task selector"
default n
help
run using an algorithm optimised to the instruction set of the target hardware -
normally using a count leading zeros assembly instruction. Set to 0 to select
the next task to run using a generic C algorithm that works for all FreeRTOS
ports. Not all FreeRTOS ports have this option. Defaults to 0 if left
undefined
config USE_TICKLESS_IDLE
bool "Use the low power tickless mode"
default n
help
https://www.freertos.org/low-power-tickless-rtos.html
config configMAX_PRIORITIES
int "How many priorities are needed in this system?"
default 5
help
Determine the number of priority levels needed in this system.
The lowest priority level is 0. The highest priority level is configMAX_PRIORITIES-1.
config configMINIMAL_STACK_SIZE
int "The stack size of the idle task"
default 128
config configMAX_TASK_NAME_LEN
int "Maximum task name length"
default 16
config configUSE_16_BIT_TICKS
bool "Use 16-bit ticks (limit maximum delay to 65535 ticks)"
default n
config configIDLE_SHOULD_YIELD
bool "Place idle tasks at a lower priority than 0 priority application tasks"
default n
config configTASK_NOTIFICATION_ARRAY_ENTRIES
int "Number of Notifications enabled per task"
default 1
config configQUEUE_REGISTRY_SIZE
int "Maximum number of queues and semaphores references from the queue registery"
default 0
config configENABLE_BACKWARD_COMPATIBILITY
bool "Enable API backward compatibility with FreeRTOS before v9"
default n
config configNUM_THREAD_LOCAL_STORAGE_POINTERS
int "Number of pointers available for thread local storage"
default 0
help
https://www.freertos.org/thread-local-storage-pointers.html
choice
prompt "Select Stack Depth Type"
default SELECT_UINT16
config SELECT_UINT16
bool "Use 16-bit types for the stack depth type"
config SELECT_UINT32
bool "Use 32-bit types for the stack depth type"
endchoice
config configSTACK_DEPTH_TYPE
string
default uint16_t
default uint32_t if SELECT_UINT32
choice
prompt "Select Message Buffer Length type"
default SELECT_SIZE_T
config SELECT_UINT8
bool "Maximum message buffer size of 255 bytes"
config SELECT_UINT16
bool "Maximum message buffer size of 65535 bytes"
config SELECT_UINT32
bool "Maximum message buffer size of 4.2GB"
config SELECT_SIZE_T
bool "Buffer sizes limited to size_t"
endchoice
config configMESSAGE_BUFFER_LENGTH_TYPE
string
default size_t
default uint8_t if SELECT_UINT8_T
default uint16_t if SELECT_UINT16_T
default uint32_t if SELECT_UINT32_T
config configUSE_NEWLIB_REENTRANT
bool "Enable reentrant newlib (EXPERIMENTAL)"
default n
help
Note: Newlib support has been included by popular demand, but is not used or
tested by the FreeRTOS maintainers themselves. FreeRTOS is not responsible for
resulting newlib operation. User must be familiar with newlib and must provide
system-wide implementations of the necessary stubs. Note that (at the time of
writing) the current newlib design implements a system-wide malloc() that must
be provided with locks.
config configUSE_TIMERS
bool "Enable software timers"
default y
config configTIMER_TASK_PRIORITY
int "Timer Task priority"
default 0
range 0 configMAX_PRIORITIES

@ -1,19 +0,0 @@
# Configuration support for FreeRTOS
## Overview
Every FreeRTOS project requires FreeRTOSConfig.h located in their include path.
## Reference configuration
A complete FreeRTOSConfig.h file is located in this folder. Please use this file as a starting point. Every config option is documented in this file along with defaults that will build the demo projects but will almost certainly not be suitable for all ports or applications.
## Configuration Generator
Alternatively, you can use the configuration generator to ask questions about your project and generate the FreeRTOSConfig.h automatically.
### Install kconfiglib
The automatic generation requires kconfiglib which can be installed with python pip. This assumes you have python installed on your development machine.
```
pip3 install kconfiglib
```
### Generating a configuration

@ -0,0 +1,7 @@
# Configuration support for FreeRTOS
## Overview
Every FreeRTOS project requires FreeRTOSConfig.h located in their include path. In this folder you will find a sample FreeRTOSConfig.h that will assist you in preparing the configuration for your application.
The FreeRTOSConfig.h in this folder is used in the minimal_freertos_example project provided.
Loading…
Cancel
Save