1 project('freertos', 'c',
5 # For now Cortex M4 is our hardcoded port, and heap_3 our allocator.
6 # TODO: make it configurable, including static memory.
8 freertos_inc = include_directories('include')
9 freertos_inc_internal = include_directories(
10 '.', 'portable'/'GCC'/'ARM_CM4F')
12 # the linker can prune whatever core sources are unused
13 freertos_src_core = files(
14 'tasks.c', 'list.c', 'queue.c', 'port.c', 'timers.c',
15 'event_groups.c', 'stream_buffer.c', 'croutine.c')
16 freertos_src_mem = files('portable'/'MemMang'/'heap_3.c')
17 freertos_src_port = files('portable'/'GCC'/'ARM_CM4F'/'port.c')
21 subproject('cmsis-dfp-stm32f4').get_variable('cmsis_dfp_stm32f4_dep')
23 freertos_conf = configure_file(
24 input: 'armv7m'/'cortex-m4'/'FreeRTOSConfig.h.in',
25 output: 'FreeRTOSConfig.h',
28 'MIN_STACK_SIZE': get_property('freertos_min_stack_size'),
29 'USE_PREEMPTION': get_property('freertos_use_preemption'),
30 'USE_IDLE_HOOK': get_property('freertos_use_idle_hook'),
31 'USE_TICK_HOOK': get_property('freertos_use_tick_hook'),
32 'TICK_RATE_HSZ': get_property('freertos_tick_rate_hz')})
34 freertos_lib = library(
36 freertos_src_core + freertos_src_mem + freertos_src_port,
37 include_directories: freertos_inc + freertos_inc_internal,
38 dependencies: [cmsis_dfp_dep, freertos_conf])
40 freertos_dep = declare_dependency(
41 include_directories: freertos_inc,
42 link_with: freertos_lib)