1
0
Fork 0

2020 February 29 Breaking Changes Update (#8064)

This commit is contained in:
James Young 2020-02-29 12:00:00 -08:00
parent 85041ff05b
commit 26eef35f07
No known key found for this signature in database
GPG key ID: 06FAA77B63D48E80
362 changed files with 27772 additions and 8810 deletions

View file

@ -1,5 +1,5 @@
/*
ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -15,7 +15,7 @@
*/
/**
* @file templates/chconf.h
* @file rt/templates/chconf.h
* @brief Configuration file template.
* @details A copy of this file must be placed in each project directory, it
* contains the application specific kernel settings.
@ -29,6 +29,7 @@
# define CHCONF_H
# define _CHIBIOS_RT_CONF_
# define _CHIBIOS_RT_CONF_VER_6_0_
/*===========================================================================*/
/**
@ -41,14 +42,34 @@
* @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
# define CH_CFG_ST_RESOLUTION 32
# if !defined(CH_CFG_ST_RESOLUTION)
# define CH_CFG_ST_RESOLUTION 32
# endif
/**
* @brief System tick frequency.
* @details Frequency of the system timer that drives the system ticks. This
* setting also defines the system tick time unit.
*/
# define CH_CFG_ST_FREQUENCY 100000
# if !defined(CH_CFG_ST_FREQUENCY)
# define CH_CFG_ST_FREQUENCY 100000
# endif
/**
* @brief Time intervals data size.
* @note Allowed values are 16, 32 or 64 bits.
*/
# if !defined(CH_CFG_INTERVALS_SIZE)
# define CH_CFG_INTERVALS_SIZE 32
# endif
/**
* @brief Time types data size.
* @note Allowed values are 16 or 32 bits.
*/
# if !defined(CH_CFG_TIME_TYPES_SIZE)
# define CH_CFG_TIME_TYPES_SIZE 32
# endif
/**
* @brief Time delta constant for the tick-less mode.
@ -58,7 +79,9 @@
* The value one is not valid, timeouts are rounded up to
* this value.
*/
# define CH_CFG_ST_TIMEDELTA 2
# if !defined(CH_CFG_ST_TIMEDELTA)
# define CH_CFG_ST_TIMEDELTA 2
# endif
/** @} */
@ -81,7 +104,9 @@
* @note The round robin preemption is not supported in tickless mode and
* must be set to zero in that case.
*/
# define CH_CFG_TIME_QUANTUM 0
# if !defined(CH_CFG_TIME_QUANTUM)
# define CH_CFG_TIME_QUANTUM 0
# endif
/**
* @brief Managed RAM size.
@ -94,7 +119,9 @@
* provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
# define CH_CFG_MEMCORE_SIZE 0
# if !defined(CH_CFG_MEMCORE_SIZE)
# define CH_CFG_MEMCORE_SIZE 0
# endif
/**
* @brief Idle thread automatic spawn suppression.
@ -103,7 +130,9 @@
* function becomes the idle thread and must implement an
* infinite loop.
*/
# define CH_CFG_NO_IDLE_THREAD FALSE
# if !defined(CH_CFG_NO_IDLE_THREAD)
# define CH_CFG_NO_IDLE_THREAD FALSE
# endif
/** @} */
@ -122,7 +151,9 @@
* @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
# define CH_CFG_OPTIMIZE_SPEED TRUE
# if !defined(CH_CFG_OPTIMIZE_SPEED)
# define CH_CFG_OPTIMIZE_SPEED TRUE
# endif
/** @} */
@ -140,7 +171,9 @@
*
* @note The default is @p TRUE.
*/
# define CH_CFG_USE_TM TRUE
# if !defined(CH_CFG_USE_TM)
# define CH_CFG_USE_TM TRUE
# endif
/**
* @brief Threads registry APIs.
@ -148,7 +181,9 @@
*
* @note The default is @p TRUE.
*/
# define CH_CFG_USE_REGISTRY TRUE
# if !defined(CH_CFG_USE_REGISTRY)
# define CH_CFG_USE_REGISTRY TRUE
# endif
/**
* @brief Threads synchronization APIs.
@ -157,7 +192,9 @@
*
* @note The default is @p TRUE.
*/
# define CH_CFG_USE_WAITEXIT TRUE
# if !defined(CH_CFG_USE_WAITEXIT)
# define CH_CFG_USE_WAITEXIT TRUE
# endif
/**
* @brief Semaphores APIs.
@ -165,7 +202,9 @@
*
* @note The default is @p TRUE.
*/
# define CH_CFG_USE_SEMAPHORES TRUE
# if !defined(CH_CFG_USE_SEMAPHORES)
# define CH_CFG_USE_SEMAPHORES TRUE
# endif
/**
* @brief Semaphores queuing mode.
@ -176,7 +215,9 @@
* requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
# define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
# if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
# define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
# endif
/**
* @brief Mutexes APIs.
@ -184,7 +225,9 @@
*
* @note The default is @p TRUE.
*/
# define CH_CFG_USE_MUTEXES TRUE
# if !defined(CH_CFG_USE_MUTEXES)
# define CH_CFG_USE_MUTEXES TRUE
# endif
/**
* @brief Enables recursive behavior on mutexes.
@ -194,7 +237,9 @@
* @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
# define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
# if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
# define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
# endif
/**
* @brief Conditional Variables APIs.
@ -204,7 +249,9 @@
* @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
# define CH_CFG_USE_CONDVARS TRUE
# if !defined(CH_CFG_USE_CONDVARS)
# define CH_CFG_USE_CONDVARS TRUE
# endif
/**
* @brief Conditional Variables APIs with timeout.
@ -214,7 +261,9 @@
* @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
# define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
# if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
# define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
# endif
/**
* @brief Events Flags APIs.
@ -222,7 +271,9 @@
*
* @note The default is @p TRUE.
*/
# define CH_CFG_USE_EVENTS TRUE
# if !defined(CH_CFG_USE_EVENTS)
# define CH_CFG_USE_EVENTS TRUE
# endif
/**
* @brief Events Flags APIs with timeout.
@ -232,7 +283,9 @@
* @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
# define CH_CFG_USE_EVENTS_TIMEOUT TRUE
# if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
# define CH_CFG_USE_EVENTS_TIMEOUT TRUE
# endif
/**
* @brief Synchronous Messages APIs.
@ -241,7 +294,9 @@
*
* @note The default is @p TRUE.
*/
# define CH_CFG_USE_MESSAGES TRUE
# if !defined(CH_CFG_USE_MESSAGES)
# define CH_CFG_USE_MESSAGES TRUE
# endif
/**
* @brief Synchronous Messages queuing mode.
@ -252,7 +307,9 @@
* requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
# define CH_CFG_USE_MESSAGES_PRIORITY TRUE
# if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
# define CH_CFG_USE_MESSAGES_PRIORITY TRUE
# endif
/**
* @brief Mailboxes APIs.
@ -262,7 +319,9 @@
* @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
# define CH_CFG_USE_MAILBOXES TRUE
# if !defined(CH_CFG_USE_MAILBOXES)
# define CH_CFG_USE_MAILBOXES TRUE
# endif
/**
* @brief Core Memory Manager APIs.
@ -271,7 +330,9 @@
*
* @note The default is @p TRUE.
*/
# define CH_CFG_USE_MEMCORE TRUE
# if !defined(CH_CFG_USE_MEMCORE)
# define CH_CFG_USE_MEMCORE TRUE
# endif
/**
* @brief Heap Allocator APIs.
@ -283,7 +344,9 @@
* @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
# define CH_CFG_USE_HEAP TRUE
# if !defined(CH_CFG_USE_HEAP)
# define CH_CFG_USE_HEAP TRUE
# endif
/**
* @brief Memory Pools Allocator APIs.
@ -292,7 +355,31 @@
*
* @note The default is @p TRUE.
*/
# define CH_CFG_USE_MEMPOOLS TRUE
# if !defined(CH_CFG_USE_MEMPOOLS)
# define CH_CFG_USE_MEMPOOLS TRUE
# endif
/**
* @brief Objects FIFOs APIs.
* @details If enabled then the objects FIFOs APIs are included
* in the kernel.
*
* @note The default is @p TRUE.
*/
# if !defined(CH_CFG_USE_OBJ_FIFOS)
# define CH_CFG_USE_OBJ_FIFOS TRUE
# endif
/**
* @brief Pipes APIs.
* @details If enabled then the pipes APIs are included
* in the kernel.
*
* @note The default is @p TRUE.
*/
# if !defined(CH_CFG_USE_PIPES)
# define CH_CFG_USE_PIPES TRUE
# endif
/**
* @brief Dynamic Threads APIs.
@ -303,7 +390,80 @@
* @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
# define CH_CFG_USE_DYNAMIC TRUE
# if !defined(CH_CFG_USE_DYNAMIC)
# define CH_CFG_USE_DYNAMIC TRUE
# endif
/** @} */
/*===========================================================================*/
/**
* @name Objects factory options
* @{
*/
/*===========================================================================*/
/**
* @brief Objects Factory APIs.
* @details If enabled then the objects factory APIs are included in the
* kernel.
*
* @note The default is @p FALSE.
*/
# if !defined(CH_CFG_USE_FACTORY)
# define CH_CFG_USE_FACTORY TRUE
# endif
/**
* @brief Maximum length for object names.
* @details If the specified length is zero then the name is stored by
* pointer but this could have unintended side effects.
*/
# if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH)
# define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8
# endif
/**
* @brief Enables the registry of generic objects.
*/
# if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY)
# define CH_CFG_FACTORY_OBJECTS_REGISTRY TRUE
# endif
/**
* @brief Enables factory for generic buffers.
*/
# if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS)
# define CH_CFG_FACTORY_GENERIC_BUFFERS TRUE
# endif
/**
* @brief Enables factory for semaphores.
*/
# if !defined(CH_CFG_FACTORY_SEMAPHORES)
# define CH_CFG_FACTORY_SEMAPHORES TRUE
# endif
/**
* @brief Enables factory for mailboxes.
*/
# if !defined(CH_CFG_FACTORY_MAILBOXES)
# define CH_CFG_FACTORY_MAILBOXES TRUE
# endif
/**
* @brief Enables factory for objects FIFOs.
*/
# if !defined(CH_CFG_FACTORY_OBJ_FIFOS)
# define CH_CFG_FACTORY_OBJ_FIFOS TRUE
# endif
/**
* @brief Enables factory for Pipes.
*/
# if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__)
# define CH_CFG_FACTORY_PIPES TRUE
# endif
/** @} */
@ -319,7 +479,9 @@
*
* @note The default is @p FALSE.
*/
# define CH_DBG_STATISTICS FALSE
# if !defined(CH_DBG_STATISTICS)
# define CH_DBG_STATISTICS FALSE
# endif
/**
* @brief Debug option, system state check.
@ -328,7 +490,9 @@
*
* @note The default is @p FALSE.
*/
# define CH_DBG_SYSTEM_STATE_CHECK FALSE
# if !defined(CH_DBG_SYSTEM_STATE_CHECK)
# define CH_DBG_SYSTEM_STATE_CHECK FALSE
# endif
/**
* @brief Debug option, parameters checks.
@ -337,7 +501,9 @@
*
* @note The default is @p FALSE.
*/
# define CH_DBG_ENABLE_CHECKS FALSE
# if !defined(CH_DBG_ENABLE_CHECKS)
# define CH_DBG_ENABLE_CHECKS FALSE
# endif
/**
* @brief Debug option, consistency checks.
@ -347,7 +513,9 @@
*
* @note The default is @p FALSE.
*/
# define CH_DBG_ENABLE_ASSERTS FALSE
# if !defined(CH_DBG_ENABLE_ASSERTS)
# define CH_DBG_ENABLE_ASSERTS FALSE
# endif
/**
* @brief Debug option, trace buffer.
@ -355,14 +523,18 @@
*
* @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/
# define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED
# if !defined(CH_DBG_TRACE_MASK)
# define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED
# endif
/**
* @brief Trace buffer entries.
* @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
* different from @p CH_DBG_TRACE_MASK_DISABLED.
*/
# define CH_DBG_TRACE_BUFFER_SIZE 128
# if !defined(CH_DBG_TRACE_BUFFER_SIZE)
# define CH_DBG_TRACE_BUFFER_SIZE 128
# endif
/**
* @brief Debug option, stack checks.
@ -374,7 +546,9 @@
* @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
# define CH_DBG_ENABLE_STACK_CHECK TRUE
# if !defined(CH_DBG_ENABLE_STACK_CHECK)
# define CH_DBG_ENABLE_STACK_CHECK TRUE
# endif
/**
* @brief Debug option, stacks initialization.
@ -384,7 +558,9 @@
*
* @note The default is @p FALSE.
*/
# define CH_DBG_FILL_THREADS FALSE
# if !defined(CH_DBG_FILL_THREADS)
# define CH_DBG_FILL_THREADS FALSE
# endif
/**
* @brief Debug option, threads profiling.
@ -395,7 +571,9 @@
* @note This debug option is not currently compatible with the
* tickless mode.
*/
# define CH_DBG_THREADS_PROFILING FALSE
# if !defined(CH_DBG_THREADS_PROFILING)
# define CH_DBG_THREADS_PROFILING FALSE
# endif
/** @} */
@ -406,6 +584,21 @@
*/
/*===========================================================================*/
/**
* @brief System structure extension.
* @details User fields added to the end of the @p ch_system_t structure.
*/
# define CH_CFG_SYSTEM_EXTRA_FIELDS /* Add threads custom fields here.*/
/**
* @brief System initialization hook.
* @details User initialization code added to the @p chSysInit() function
* just before interrupts are enabled globally.
*/
# define CH_CFG_SYSTEM_INIT_HOOK() \
{ /* Add threads initialization code here.*/ \
}
/**
* @brief Threads descriptor structure extension.
* @details User fields added to the end of the @p thread_t structure.
@ -414,9 +607,9 @@
/**
* @brief Threads initialization hook.
* @details User initialization code added to the @p chThdInit() API.
* @details User initialization code added to the @p _thread_init() function.
*
* @note It is invoked from within @p chThdInit() and implicitly from all
* @note It is invoked from within @p _thread_init() and implicitly from all
* the threads creation APIs.
*/
# define CH_CFG_THREAD_INIT_HOOK(tp) \