diff options
author | Diego Ismirlian <dismirlian@gmail.com> | 2019-08-24 17:45:41 -0300 |
---|---|---|
committer | Diego Ismirlian <dismirlian@gmail.com> | 2019-08-24 17:45:41 -0300 |
commit | 7b2c61a676e024163057ec5ccc508a29ab3b9ed4 (patch) | |
tree | 5d1f5423a4e720d657681794ac81dc2a2004cbb0 /testhal | |
parent | 81391097156ce2c9fc71c3350457522841e10095 (diff) | |
parent | e346e779339636f578536785014609e46866fb9c (diff) | |
download | ChibiOS-Contrib-7b2c61a676e024163057ec5ccc508a29ab3b9ed4.tar.gz ChibiOS-Contrib-7b2c61a676e024163057ec5ccc508a29ab3b9ed4.tar.bz2 ChibiOS-Contrib-7b2c61a676e024163057ec5ccc508a29ab3b9ed4.zip |
Merge branch 'master' of https://github.com/ChibiOS/ChibiOS-Contrib
Diffstat (limited to 'testhal')
183 files changed, 22347 insertions, 6263 deletions
diff --git a/testhal/KINETIS/FRDM-K20D50M/I2C/Makefile b/testhal/KINETIS/FRDM-K20D50M/I2C/Makefile index a4de448..cb528f9 100644 --- a/testhal/KINETIS/FRDM-K20D50M/I2C/Makefile +++ b/testhal/KINETIS/FRDM-K20D50M/I2C/Makefile @@ -87,8 +87,10 @@ endif PROJECT = ch
# Imported source files and paths
-CHIBIOS = ../../../../../ChibiOS-RT
+CHIBIOS = ../../../../../ChibiOS
CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
+# Licensing files.
+include $(CHIBIOS)/os/license/license.mk
# Startup files.
include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_k20x5.mk
# HAL-OSAL files (optional).
@@ -106,18 +108,13 @@ LDSCRIPT= $(STARTUPLD)/MK20DX128.ld # C sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CSRC = $(STARTUPSRC) \
- $(KERNSRC) \
- $(PORTSRC) \
- $(OSALSRC) \
- $(HALSRC) \
- $(PLATFORMSRC) \
- $(BOARDSRC) \
+CSRC = $(ALLCSRC) \
+ $(TESTSRC) \
main.c
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CPPSRC =
+CPPSRC = $(ALLCPPSRC)
# C sources to be compiled in ARM mode regardless of the global setting.
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
@@ -140,13 +137,11 @@ TCSRC = TCPPSRC =
# List ASM source files here
-ASMSRC =
-ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
+ASMSRC = $(ALLASMSRC)
+ASMXSRC = $(ALLXASMSRC)
-INCDIR = $(CHIBIOS)/os/license \
- $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
- $(HALINC) $(PLATFORMINC) $(BOARDINC) \
- $(CHIBIOS)/os/various
+INCDIR = $(ALLINC) $(TESTINC) \
+ $(TESTHAL)
#
# Project, sources and paths
diff --git a/testhal/KINETIS/FRDM-K20D50M/I2C/chconf.h b/testhal/KINETIS/FRDM-K20D50M/I2C/chconf.h index 5f05547..1750f63 100644 --- a/testhal/KINETIS/FRDM-K20D50M/I2C/chconf.h +++ b/testhal/KINETIS/FRDM-K20D50M/I2C/chconf.h @@ -1,5 +1,5 @@ /*
- ChibiOS - Copyright (C) 2006..2015 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.
@@ -25,11 +25,11 @@ * @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
- -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_5_0_ +#ifndef CHCONF_H
+#define CHCONF_H
+
+#define _CHIBIOS_RT_CONF_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -59,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -82,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -95,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -104,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -123,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -141,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -149,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -158,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -166,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -177,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -185,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -195,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -205,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -215,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -223,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -233,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -242,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -253,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -263,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -272,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -284,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -293,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -304,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -320,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -329,7 +472,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 TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -338,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_CHECKS FALSE
+#if !defined(CH_DBG_ENABLE_CHECKS)
+#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -348,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_ASSERTS FALSE
+#if !defined(CH_DBG_ENABLE_ASSERTS)
+#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/
-#define CH_DBG_ENABLE_TRACE FALSE
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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.
+ */
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -369,7 +528,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 FALSE
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
+#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -379,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_FILL_THREADS FALSE
+#if !defined(CH_DBG_FILL_THREADS)
+#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -390,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -402,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -410,9 +591,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) { \
@@ -422,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -438,20 +615,20 @@ #define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \
/* Context switch code here.*/ \
}
- -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} +
+/**
+ * @brief ISR enter hook.
+ */
+#define CH_CFG_IRQ_PROLOGUE_HOOK() { \
+ /* IRQ prologue code here.*/ \
+}
+
+/**
+ * @brief ISR exit hook.
+ */
+#define CH_CFG_IRQ_EPILOGUE_HOOK() { \
+ /* IRQ epilogue code here.*/ \
+}
/**
* @brief Idle thread enter hook.
@@ -460,6 +637,7 @@ * @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -469,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -496,15 +675,15 @@ #define CH_CFG_SYSTEM_HALT_HOOK(reason) { \
/* System halt code here.*/ \
}
- -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +
+/**
+ * @brief Trace hook.
+ * @details This hook is invoked each time a new record is written in the
+ * trace buffer.
+ */
+#define CH_CFG_TRACE_HOOK(tep) { \
+ /* Trace code here.*/ \
+}
/** @} */
@@ -512,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/KINETIS/FRDM-K20D50M/I2C/halconf_community.h b/testhal/KINETIS/FRDM-K20D50M/I2C/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/KINETIS/FRDM-K20D50M/I2C/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/Makefile b/testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/Makefile index a5f4c68..4b2ede6 100644 --- a/testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/Makefile +++ b/testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/Makefile @@ -30,7 +30,7 @@ endif # Enable this if you want link time optimizations (LTO) ifeq ($(USE_LTO),) - USE_LTO = no + USE_LTO = yes endif # If enabled, this option allows to compile the application in THUMB mode. @@ -86,8 +86,10 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib +# Licensing files. +include $(CHIBIOS)/os/license/license.mk # Startup files. include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_k20x5.mk # HAL-OSAL files (optional). @@ -99,7 +101,9 @@ include $(CHIBIOS)/os/hal/osal/rt/osal.mk include $(CHIBIOS)/os/rt/rt.mk include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v7m.mk # Other files (optional). -include $(CHIBIOS)/test/rt/test.mk +include $(CHIBIOS)/test/lib/test.mk +include $(CHIBIOS)/test/rt/rt_test.mk +include $(CHIBIOS)/test/oslib/oslib_test.mk include $(CHIBIOS)/os/hal/lib/streams/streams.mk include $(CHIBIOS)/os/various/shell/shell.mk @@ -108,22 +112,14 @@ LDSCRIPT= $(STARTUPLD)/MK20DX128.ld # C sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CSRC = $(STARTUPSRC) \ - $(KERNSRC) \ - $(PORTSRC) \ - $(OSALSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ +CSRC = $(ALLCSRC) \ $(TESTSRC) \ - $(STREAMSSRC) \ - $(SHELLSRC) \ usbcfg.c \ main.c # C++ sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CPPSRC = +CPPSRC = $(ALLCPPSRC) # C sources to be compiled in ARM mode regardless of the global setting. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler @@ -146,13 +142,11 @@ TCSRC = TCPPSRC = # List ASM source files here -ASMSRC = -ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) +ASMSRC = $(ALLASMSRC) +ASMXSRC = $(ALLXASMSRC) -INCDIR = $(CHIBIOS)/os/license \ - $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ - $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ - $(STREAMSINC) $(SHELLINC) $(CHIBIOS)/os/various +INCDIR = $(ALLINC) $(TESTINC) \ + $(TESTHAL) # # Project, sources and paths diff --git a/testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/chconf.h b/testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/chconf.h index 222c5ea..0ac7be8 100644 --- a/testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/chconf.h +++ b/testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/chconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2015 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. @@ -25,11 +25,11 @@ * @{ */ -#ifndef _CHCONF_H_ -#define _CHCONF_H_ +#ifndef CHCONF_H +#define CHCONF_H #define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_5_0_ +#define _CHIBIOS_RT_CONF_VER_5_1_ /*===========================================================================*/ /** @@ -42,14 +42,34 @@ * @brief System time counter resolution. * @note Allowed values are 16 or 32 bits. */ +#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. */ +#if !defined(CH_CFG_ST_FREQUENCY) #define CH_CFG_ST_FREQUENCY 1000 +#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. @@ -59,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to * this value. */ +#if !defined(CH_CFG_ST_TIMEDELTA) #define CH_CFG_ST_TIMEDELTA 0 +#endif /** @} */ @@ -82,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 20 +#if !defined(CH_CFG_TIME_QUANTUM) +#define CH_CFG_TIME_QUANTUM 2 +#endif /** * @brief Managed RAM size. @@ -95,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols. * @note Requires @p CH_CFG_USE_MEMCORE. */ +#if !defined(CH_CFG_MEMCORE_SIZE) #define CH_CFG_MEMCORE_SIZE 0 +#endif /** * @brief Idle thread automatic spawn suppression. @@ -104,7 +130,9 @@ * function becomes the idle thread and must implement an * infinite loop. */ +#if !defined(CH_CFG_NO_IDLE_THREAD) #define CH_CFG_NO_IDLE_THREAD FALSE +#endif /** @} */ @@ -123,7 +151,9 @@ * @note This is not related to the compiler optimization options. * @note The default is @p TRUE. */ +#if !defined(CH_CFG_OPTIMIZE_SPEED) #define CH_CFG_OPTIMIZE_SPEED TRUE +#endif /** @} */ @@ -141,7 +171,9 @@ * * @note The default is @p TRUE. */ +#if !defined(CH_CFG_USE_TM) #define CH_CFG_USE_TM FALSE +#endif /** * @brief Threads registry APIs. @@ -149,7 +181,9 @@ * * @note The default is @p TRUE. */ +#if !defined(CH_CFG_USE_REGISTRY) #define CH_CFG_USE_REGISTRY TRUE +#endif /** * @brief Threads synchronization APIs. @@ -158,7 +192,9 @@ * * @note The default is @p TRUE. */ +#if !defined(CH_CFG_USE_WAITEXIT) #define CH_CFG_USE_WAITEXIT TRUE +#endif /** * @brief Semaphores APIs. @@ -166,7 +202,9 @@ * * @note The default is @p TRUE. */ +#if !defined(CH_CFG_USE_SEMAPHORES) #define CH_CFG_USE_SEMAPHORES TRUE +#endif /** * @brief Semaphores queuing mode. @@ -177,7 +215,9 @@ * requirements. * @note Requires @p CH_CFG_USE_SEMAPHORES. */ +#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) #define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE +#endif /** * @brief Mutexes APIs. @@ -185,7 +225,9 @@ * * @note The default is @p TRUE. */ +#if !defined(CH_CFG_USE_MUTEXES) #define CH_CFG_USE_MUTEXES TRUE +#endif /** * @brief Enables recursive behavior on mutexes. @@ -195,7 +237,9 @@ * @note The default is @p FALSE. * @note Requires @p CH_CFG_USE_MUTEXES. */ +#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) #define CH_CFG_USE_MUTEXES_RECURSIVE FALSE +#endif /** * @brief Conditional Variables APIs. @@ -205,7 +249,9 @@ * @note The default is @p TRUE. * @note Requires @p CH_CFG_USE_MUTEXES. */ +#if !defined(CH_CFG_USE_CONDVARS) #define CH_CFG_USE_CONDVARS TRUE +#endif /** * @brief Conditional Variables APIs with timeout. @@ -215,7 +261,9 @@ * @note The default is @p TRUE. * @note Requires @p CH_CFG_USE_CONDVARS. */ +#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) #define CH_CFG_USE_CONDVARS_TIMEOUT TRUE +#endif /** * @brief Events Flags APIs. @@ -223,7 +271,9 @@ * * @note The default is @p TRUE. */ +#if !defined(CH_CFG_USE_EVENTS) #define CH_CFG_USE_EVENTS TRUE +#endif /** * @brief Events Flags APIs with timeout. @@ -233,7 +283,9 @@ * @note The default is @p TRUE. * @note Requires @p CH_CFG_USE_EVENTS. */ +#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) #define CH_CFG_USE_EVENTS_TIMEOUT TRUE +#endif /** * @brief Synchronous Messages APIs. @@ -242,7 +294,9 @@ * * @note The default is @p TRUE. */ +#if !defined(CH_CFG_USE_MESSAGES) #define CH_CFG_USE_MESSAGES TRUE +#endif /** * @brief Synchronous Messages queuing mode. @@ -253,7 +307,9 @@ * requirements. * @note Requires @p CH_CFG_USE_MESSAGES. */ +#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) #define CH_CFG_USE_MESSAGES_PRIORITY FALSE +#endif /** * @brief Mailboxes APIs. @@ -263,7 +319,9 @@ * @note The default is @p TRUE. * @note Requires @p CH_CFG_USE_SEMAPHORES. */ +#if !defined(CH_CFG_USE_MAILBOXES) #define CH_CFG_USE_MAILBOXES TRUE +#endif /** * @brief Core Memory Manager APIs. @@ -272,7 +330,9 @@ * * @note The default is @p TRUE. */ +#if !defined(CH_CFG_USE_MEMCORE) #define CH_CFG_USE_MEMCORE TRUE +#endif /** * @brief Heap Allocator APIs. @@ -284,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES. * @note Mutexes are recommended. */ +#if !defined(CH_CFG_USE_HEAP) #define CH_CFG_USE_HEAP TRUE +#endif /** * @brief Memory Pools Allocator APIs. @@ -293,7 +355,20 @@ * * @note The default is @p 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 Dynamic Threads APIs. @@ -304,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT. * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. */ +#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 /** @} */ @@ -320,7 +461,9 @@ * * @note The default is @p FALSE. */ +#if !defined(CH_DBG_STATISTICS) #define CH_DBG_STATISTICS FALSE +#endif /** * @brief Debug option, system state check. @@ -329,7 +472,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 TRUE +#endif /** * @brief Debug option, parameters checks. @@ -338,7 +483,9 @@ * * @note The default is @p FALSE. */ -#define CH_DBG_ENABLE_CHECKS FALSE +#if !defined(CH_DBG_ENABLE_CHECKS) +#define CH_DBG_ENABLE_CHECKS TRUE +#endif /** * @brief Debug option, consistency checks. @@ -348,16 +495,28 @@ * * @note The default is @p FALSE. */ -#define CH_DBG_ENABLE_ASSERTS FALSE +#if !defined(CH_DBG_ENABLE_ASSERTS) +#define CH_DBG_ENABLE_ASSERTS TRUE +#endif /** * @brief Debug option, trace buffer. - * @details If enabled then the context switch circular trace buffer is - * activated. + * @details If enabled then the trace buffer is activated. * - * @note The default is @p FALSE. + * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. + */ +#if !defined(CH_DBG_TRACE_MASK) +#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL +#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_ENABLE_TRACE FALSE +#if !defined(CH_DBG_TRACE_BUFFER_SIZE) +#define CH_DBG_TRACE_BUFFER_SIZE 128 +#endif /** * @brief Debug option, stack checks. @@ -369,7 +528,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 FALSE +#if !defined(CH_DBG_ENABLE_STACK_CHECK) +#define CH_DBG_ENABLE_STACK_CHECK TRUE +#endif /** * @brief Debug option, stacks initialization. @@ -379,7 +540,9 @@ * * @note The default is @p FALSE. */ -#define CH_DBG_FILL_THREADS FALSE +#if !defined(CH_DBG_FILL_THREADS) +#define CH_DBG_FILL_THREADS TRUE +#endif /** * @brief Debug option, threads profiling. @@ -390,7 +553,9 @@ * @note This debug option is not currently compatible with the * tickless mode. */ +#if !defined(CH_DBG_THREADS_PROFILING) #define CH_DBG_THREADS_PROFILING FALSE +#endif /** @} */ @@ -402,6 +567,22 @@ /*===========================================================================*/ /** + * @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. */ @@ -410,9 +591,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) { \ @@ -422,10 +603,6 @@ /** * @brief Threads finalization hook. * @details User finalization code added to the @p chThdExit() API. - * - * @note It is inserted into lock zone. - * @note It is also invoked when the threads simply return in order to - * terminate. */ #define CH_CFG_THREAD_EXIT_HOOK(tp) { \ /* Add threads finalization code here.*/ \ @@ -460,6 +637,7 @@ * @note This macro can be used to activate a power saving mode. */ #define CH_CFG_IDLE_ENTER_HOOK() { \ + /* Idle-enter code here.*/ \ } /** @@ -469,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode. */ #define CH_CFG_IDLE_LEAVE_HOOK() { \ + /* Idle-leave code here.*/ \ } /** @@ -512,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */ /*===========================================================================*/ -#endif /* _CHCONF_H_ */ +#endif /* CHCONF_H */ /** @} */ diff --git a/testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/halconf_community.h b/testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/KINETIS/FRDM-KL25Z/ADC/Makefile b/testhal/KINETIS/FRDM-KL25Z/ADC/Makefile index d5120b9..b5150d5 100644 --- a/testhal/KINETIS/FRDM-KL25Z/ADC/Makefile +++ b/testhal/KINETIS/FRDM-KL25Z/ADC/Makefile @@ -5,12 +5,12 @@ # Compiler options here.
ifeq ($(USE_OPT),)
- USE_OPT = -O0 -ggdb -fomit-frame-pointer -falign-functions=16
+ USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16
endif
# C specific options here (added to USE_OPT).
ifeq ($(USE_COPT),)
- USE_COPT = -std=gnu99
+ USE_COPT =
endif
# C++ specific options here (added to USE_OPT).
@@ -30,7 +30,7 @@ endif # Enable this if you want link time optimizations (LTO)
ifeq ($(USE_LTO),)
- USE_LTO = no
+ USE_LTO = yes
endif
# If enabled, this option allows to compile the application in THUMB mode.
@@ -69,6 +69,11 @@ ifeq ($(USE_EXCEPTIONS_STACKSIZE),) USE_EXCEPTIONS_STACKSIZE = 0x400
endif
+# Enables the use of FPU on Cortex-M4 (no, softfp, hard).
+ifeq ($(USE_FPU),)
+ USE_FPU = no
+endif
+
#
# Architecture or project specific options
##############################################################################
@@ -81,34 +86,34 @@ endif PROJECT = ch
# Imported source files and paths
-CHIBIOS = ../../../../../ChibiOS-RT
+CHIBIOS = ../../../../../ChibiOS
CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
-
+# Licensing files.
+include $(CHIBIOS)/os/license/license.mk
+# Startup files.
include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_kl2x.mk
+# HAL-OSAL files (optional).
include $(CHIBIOS)/os/hal/hal.mk
include $(CHIBIOS_CONTRIB)/os/hal/ports/KINETIS/KL2x/platform.mk
include $(CHIBIOS_CONTRIB)/os/hal/boards/FREESCALE_FREEDOM_KL25Z/board.mk
include $(CHIBIOS)/os/hal/osal/rt/osal.mk
+# RTOS files (optional).
include $(CHIBIOS)/os/rt/rt.mk
include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v6m.mk
+# Other files (optional).
# Define linker script file here
LDSCRIPT= $(STARTUPLD)/MKL2xZ128.ld
# C sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CSRC = $(STARTUPSRC) \
- $(KERNSRC) \
- $(PORTSRC) \
- $(OSALSRC) \
- $(HALSRC) \
- $(PLATFORMSRC) \
- $(BOARDSRC) \
+CSRC = $(ALLCSRC) \
+ $(TESTSRC) \
main.c
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CPPSRC =
+CPPSRC = $(ALLCPPSRC)
# C sources to be compiled in ARM mode regardless of the global setting.
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
@@ -131,13 +136,11 @@ TCSRC = TCPPSRC =
# List ASM source files here
-ASMSRC =
-ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
+ASMSRC = $(ALLASMSRC)
+ASMXSRC = $(ALLXASMSRC)
-INCDIR = $(CHIBIOS)/os/license \
- $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
- $(HALINC) $(PLATFORMINC) $(BOARDINC) \
- $(CHIBIOS)/os/various
+INCDIR = $(ALLINC) $(TESTINC) \
+ $(TESTHAL)
#
# Project, sources and paths
@@ -160,6 +163,7 @@ LD = $(TRGT)gcc #LD = $(TRGT)g++
CP = $(TRGT)objcopy
AS = $(TRGT)gcc -x assembler-with-cpp
+AR = $(TRGT)ar
OD = $(TRGT)objdump
SZ = $(TRGT)size
HEX = $(CP) -O ihex
diff --git a/testhal/KINETIS/FRDM-KL25Z/ADC/chconf.h b/testhal/KINETIS/FRDM-KL25Z/ADC/chconf.h index 5f05547..1750f63 100644 --- a/testhal/KINETIS/FRDM-KL25Z/ADC/chconf.h +++ b/testhal/KINETIS/FRDM-KL25Z/ADC/chconf.h @@ -1,5 +1,5 @@ /*
- ChibiOS - Copyright (C) 2006..2015 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.
@@ -25,11 +25,11 @@ * @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
- -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_5_0_ +#ifndef CHCONF_H
+#define CHCONF_H
+
+#define _CHIBIOS_RT_CONF_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -59,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -82,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -95,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -104,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -123,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -141,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -149,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -158,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -166,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -177,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -185,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -195,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -205,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -215,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -223,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -233,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -242,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -253,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -263,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -272,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -284,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -293,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -304,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -320,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -329,7 +472,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 TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -338,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_CHECKS FALSE
+#if !defined(CH_DBG_ENABLE_CHECKS)
+#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -348,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_ASSERTS FALSE
+#if !defined(CH_DBG_ENABLE_ASSERTS)
+#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/
-#define CH_DBG_ENABLE_TRACE FALSE
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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.
+ */
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -369,7 +528,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 FALSE
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
+#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -379,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_FILL_THREADS FALSE
+#if !defined(CH_DBG_FILL_THREADS)
+#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -390,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -402,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -410,9 +591,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) { \
@@ -422,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -438,20 +615,20 @@ #define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \
/* Context switch code here.*/ \
}
- -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} +
+/**
+ * @brief ISR enter hook.
+ */
+#define CH_CFG_IRQ_PROLOGUE_HOOK() { \
+ /* IRQ prologue code here.*/ \
+}
+
+/**
+ * @brief ISR exit hook.
+ */
+#define CH_CFG_IRQ_EPILOGUE_HOOK() { \
+ /* IRQ epilogue code here.*/ \
+}
/**
* @brief Idle thread enter hook.
@@ -460,6 +637,7 @@ * @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -469,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -496,15 +675,15 @@ #define CH_CFG_SYSTEM_HALT_HOOK(reason) { \
/* System halt code here.*/ \
}
- -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +
+/**
+ * @brief Trace hook.
+ * @details This hook is invoked each time a new record is written in the
+ * trace buffer.
+ */
+#define CH_CFG_TRACE_HOOK(tep) { \
+ /* Trace code here.*/ \
+}
/** @} */
@@ -512,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/KINETIS/FRDM-KL25Z/ADC/halconf_community.h b/testhal/KINETIS/FRDM-KL25Z/ADC/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/KINETIS/FRDM-KL25Z/ADC/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/KINETIS/FRDM-KL25Z/GPT/Makefile b/testhal/KINETIS/FRDM-KL25Z/GPT/Makefile index 8ea9026..b5150d5 100644 --- a/testhal/KINETIS/FRDM-KL25Z/GPT/Makefile +++ b/testhal/KINETIS/FRDM-KL25Z/GPT/Makefile @@ -5,7 +5,7 @@ # Compiler options here.
ifeq ($(USE_OPT),)
- USE_OPT = -O0 -ggdb -fomit-frame-pointer -falign-functions=16
+ USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16
endif
# C specific options here (added to USE_OPT).
@@ -30,7 +30,7 @@ endif # Enable this if you want link time optimizations (LTO)
ifeq ($(USE_LTO),)
- USE_LTO = no
+ USE_LTO = yes
endif
# If enabled, this option allows to compile the application in THUMB mode.
@@ -69,6 +69,11 @@ ifeq ($(USE_EXCEPTIONS_STACKSIZE),) USE_EXCEPTIONS_STACKSIZE = 0x400
endif
+# Enables the use of FPU on Cortex-M4 (no, softfp, hard).
+ifeq ($(USE_FPU),)
+ USE_FPU = no
+endif
+
#
# Architecture or project specific options
##############################################################################
@@ -81,8 +86,10 @@ endif PROJECT = ch
# Imported source files and paths
-CHIBIOS = ../../../../../ChibiOS-RT
+CHIBIOS = ../../../../../ChibiOS
CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
+# Licensing files.
+include $(CHIBIOS)/os/license/license.mk
# Startup files.
include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_kl2x.mk
# HAL-OSAL files (optional).
@@ -94,25 +101,19 @@ include $(CHIBIOS)/os/hal/osal/rt/osal.mk include $(CHIBIOS)/os/rt/rt.mk
include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v6m.mk
# Other files (optional).
-include $(CHIBIOS)/test/rt/test.mk
# Define linker script file here
LDSCRIPT= $(STARTUPLD)/MKL2xZ128.ld
# C sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CSRC = $(STARTUPSRC) \
- $(KERNSRC) \
- $(PORTSRC) \
- $(OSALSRC) \
- $(HALSRC) \
- $(PLATFORMSRC) \
- $(BOARDSRC) \
+CSRC = $(ALLCSRC) \
+ $(TESTSRC) \
main.c
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CPPSRC =
+CPPSRC = $(ALLCPPSRC)
# C sources to be compiled in ARM mode regardless of the global setting.
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
@@ -135,12 +136,11 @@ TCSRC = TCPPSRC =
# List ASM source files here
-ASMSRC =
-ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
+ASMSRC = $(ALLASMSRC)
+ASMXSRC = $(ALLXASMSRC)
-INCDIR = $(CHIBIOS)/os/license \
- $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
- $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC)
+INCDIR = $(ALLINC) $(TESTINC) \
+ $(TESTHAL)
#
# Project, sources and paths
diff --git a/testhal/KINETIS/FRDM-KL25Z/GPT/chconf.h b/testhal/KINETIS/FRDM-KL25Z/GPT/chconf.h index 5d231c8..1750f63 100644 --- a/testhal/KINETIS/FRDM-KL25Z/GPT/chconf.h +++ b/testhal/KINETIS/FRDM-KL25Z/GPT/chconf.h @@ -1,5 +1,5 @@ /*
- ChibiOS - (C) 2015-2016 flabbergast <s3+flabbergast@sdfeu.org>
+ 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,19 +15,21 @@ */
/**
- * @file FRDM-KL25Z/GPT/chconf.h
- * @brief Configuration file.
+ * @file 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.
*
* @addtogroup config
* @details Kernel related settings and hooks.
* @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
+#ifndef CHCONF_H
+#define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -40,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -57,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -80,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -93,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -102,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -121,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -139,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -147,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -156,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -164,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -175,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -183,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -193,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -203,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -213,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -221,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -231,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -240,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -251,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -261,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -270,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -282,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -291,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -302,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -318,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -327,7 +472,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 TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -336,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_CHECKS FALSE
+#if !defined(CH_DBG_ENABLE_CHECKS)
+#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -346,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_ASSERTS FALSE
+#if !defined(CH_DBG_ENABLE_ASSERTS)
+#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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_ENABLE_TRACE FALSE
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -367,7 +528,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 FALSE
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
+#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -377,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_FILL_THREADS FALSE
+#if !defined(CH_DBG_FILL_THREADS)
+#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -388,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -400,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -408,9 +591,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) { \
@@ -420,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -458,6 +637,7 @@ * @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -467,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -510,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/KINETIS/FRDM-KL25Z/GPT/halconf_community.h b/testhal/KINETIS/FRDM-KL25Z/GPT/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/KINETIS/FRDM-KL25Z/GPT/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/KINETIS/FRDM-KL25Z/PWM/Makefile b/testhal/KINETIS/FRDM-KL25Z/PWM/Makefile index 8ea9026..b5150d5 100644 --- a/testhal/KINETIS/FRDM-KL25Z/PWM/Makefile +++ b/testhal/KINETIS/FRDM-KL25Z/PWM/Makefile @@ -5,7 +5,7 @@ # Compiler options here.
ifeq ($(USE_OPT),)
- USE_OPT = -O0 -ggdb -fomit-frame-pointer -falign-functions=16
+ USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16
endif
# C specific options here (added to USE_OPT).
@@ -30,7 +30,7 @@ endif # Enable this if you want link time optimizations (LTO)
ifeq ($(USE_LTO),)
- USE_LTO = no
+ USE_LTO = yes
endif
# If enabled, this option allows to compile the application in THUMB mode.
@@ -69,6 +69,11 @@ ifeq ($(USE_EXCEPTIONS_STACKSIZE),) USE_EXCEPTIONS_STACKSIZE = 0x400
endif
+# Enables the use of FPU on Cortex-M4 (no, softfp, hard).
+ifeq ($(USE_FPU),)
+ USE_FPU = no
+endif
+
#
# Architecture or project specific options
##############################################################################
@@ -81,8 +86,10 @@ endif PROJECT = ch
# Imported source files and paths
-CHIBIOS = ../../../../../ChibiOS-RT
+CHIBIOS = ../../../../../ChibiOS
CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
+# Licensing files.
+include $(CHIBIOS)/os/license/license.mk
# Startup files.
include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_kl2x.mk
# HAL-OSAL files (optional).
@@ -94,25 +101,19 @@ include $(CHIBIOS)/os/hal/osal/rt/osal.mk include $(CHIBIOS)/os/rt/rt.mk
include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v6m.mk
# Other files (optional).
-include $(CHIBIOS)/test/rt/test.mk
# Define linker script file here
LDSCRIPT= $(STARTUPLD)/MKL2xZ128.ld
# C sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CSRC = $(STARTUPSRC) \
- $(KERNSRC) \
- $(PORTSRC) \
- $(OSALSRC) \
- $(HALSRC) \
- $(PLATFORMSRC) \
- $(BOARDSRC) \
+CSRC = $(ALLCSRC) \
+ $(TESTSRC) \
main.c
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CPPSRC =
+CPPSRC = $(ALLCPPSRC)
# C sources to be compiled in ARM mode regardless of the global setting.
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
@@ -135,12 +136,11 @@ TCSRC = TCPPSRC =
# List ASM source files here
-ASMSRC =
-ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
+ASMSRC = $(ALLASMSRC)
+ASMXSRC = $(ALLXASMSRC)
-INCDIR = $(CHIBIOS)/os/license \
- $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
- $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC)
+INCDIR = $(ALLINC) $(TESTINC) \
+ $(TESTHAL)
#
# Project, sources and paths
diff --git a/testhal/KINETIS/FRDM-KL25Z/PWM/chconf.h b/testhal/KINETIS/FRDM-KL25Z/PWM/chconf.h index 2a25a25..1750f63 100644 --- a/testhal/KINETIS/FRDM-KL25Z/PWM/chconf.h +++ b/testhal/KINETIS/FRDM-KL25Z/PWM/chconf.h @@ -1,5 +1,5 @@ /*
- ChibiOS - (C) 2015-2016 flabbergast <s3+flabbergast@sdfeu.org>
+ 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,19 +15,21 @@ */
/**
- * @file FRDM-KL25Z/PWM/chconf.h
- * @brief Configuration file.
+ * @file 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.
*
* @addtogroup config
* @details Kernel related settings and hooks.
* @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
+#ifndef CHCONF_H
+#define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -40,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -57,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -80,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -93,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -102,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -121,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -139,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -147,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -156,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -164,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -175,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -183,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -193,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -203,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -213,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -221,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -231,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -240,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -251,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -261,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -270,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -282,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -291,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -302,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -318,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -327,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -336,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -346,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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_ENABLE_TRACE TRUE
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -367,7 +528,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -377,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -388,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -400,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -408,9 +591,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) { \
@@ -420,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -458,6 +637,7 @@ * @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -467,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -510,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/KINETIS/FRDM-KL25Z/PWM/halconf_community.h b/testhal/KINETIS/FRDM-KL25Z/PWM/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/KINETIS/FRDM-KL25Z/PWM/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/KINETIS/FRDM-KL25Z/USB_HID/Makefile b/testhal/KINETIS/FRDM-KL25Z/USB_HID/Makefile index 39c7ccd..3d4844d 100644 --- a/testhal/KINETIS/FRDM-KL25Z/USB_HID/Makefile +++ b/testhal/KINETIS/FRDM-KL25Z/USB_HID/Makefile @@ -5,7 +5,7 @@ # Compiler options here.
ifeq ($(USE_OPT),)
- USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16 --specs=nosys.specs -lnosys
+ USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16
endif
# C specific options here (added to USE_OPT).
@@ -30,7 +30,7 @@ endif # Enable this if you want link time optimizations (LTO)
ifeq ($(USE_LTO),)
- USE_LTO = no
+ USE_LTO = yes
endif
# If enabled, this option allows to compile the application in THUMB mode.
@@ -69,6 +69,11 @@ ifeq ($(USE_EXCEPTIONS_STACKSIZE),) USE_EXCEPTIONS_STACKSIZE = 0x400
endif
+# Enables the use of FPU on Cortex-M4 (no, softfp, hard).
+ifeq ($(USE_FPU),)
+ USE_FPU = no
+endif
+
#
# Architecture or project specific options
##############################################################################
@@ -81,8 +86,10 @@ endif PROJECT = ch
# Imported source files and paths
-CHIBIOS = ../../../../../ChibiOS-RT
+CHIBIOS = ../../../../../ChibiOS
CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
+# Licensing files.
+include $(CHIBIOS)/os/license/license.mk
# Startup files.
include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_kl2x.mk
# HAL-OSAL files (optional).
@@ -94,27 +101,24 @@ include $(CHIBIOS)/os/hal/osal/rt/osal.mk include $(CHIBIOS)/os/rt/rt.mk
include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v6m.mk
# Other files (optional).
-#include $(CHIBIOS)/test/rt/test.mk
-#include $(CHIBIOS)/os/hal/lib/streams/streams.mk
+include $(CHIBIOS)/test/lib/test.mk
+include $(CHIBIOS)/test/rt/rt_test.mk
+include $(CHIBIOS)/test/oslib/oslib_test.mk
+include $(CHIBIOS)/os/hal/lib/streams/streams.mk
# Define linker script file here
LDSCRIPT= $(STARTUPLD)/MKL2xZ128.ld
# C sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CSRC = $(STARTUPSRC) \
- $(KERNSRC) \
- $(PORTSRC) \
- $(OSALSRC) \
- $(HALSRC) \
- $(PLATFORMSRC) \
- $(BOARDSRC) \
+CSRC = $(ALLCSRC) \
+ $(TESTSRC) \
usbcfg.c \
main.c
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CPPSRC =
+CPPSRC = $(ALLCPPSRC)
# C sources to be compiled in ARM mode regardless of the global setting.
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
@@ -137,13 +141,11 @@ TCSRC = TCPPSRC =
# List ASM source files here
-ASMSRC =
-ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
-
-INCDIR = $(CHIBIOS)/os/license \
- $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
- $(HALINC) $(PLATFORMINC) $(BOARDINC)
+ASMSRC = $(ALLASMSRC)
+ASMXSRC = $(ALLXASMSRC)
+INCDIR = $(ALLINC) $(TESTINC) \
+ $(TESTHAL)
#
# Project, sources and paths
@@ -153,7 +155,7 @@ INCDIR = $(CHIBIOS)/os/license \ # Compiler settings
#
-MCU = cortex-m0
+MCU = cortex-m0plus
#TRGT = arm-elf-
TRGT = arm-none-eabi-
diff --git a/testhal/KINETIS/FRDM-KL25Z/USB_HID/chconf.h b/testhal/KINETIS/FRDM-KL25Z/USB_HID/chconf.h index 424cf02..1750f63 100644 --- a/testhal/KINETIS/FRDM-KL25Z/USB_HID/chconf.h +++ b/testhal/KINETIS/FRDM-KL25Z/USB_HID/chconf.h @@ -1,5 +1,5 @@ /*
- ChibiOS - Copyright (C) 2006..2015 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.
@@ -29,7 +29,7 @@ #define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -59,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -82,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -95,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -104,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -123,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -141,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -149,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -158,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -166,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -177,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -185,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -195,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -205,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -215,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -223,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -233,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -242,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -253,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -263,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -272,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -284,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -293,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -304,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -320,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -329,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -338,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -348,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/
-#define CH_DBG_ENABLE_TRACE TRUE
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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.
+ */
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -369,7 +528,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 FALSE
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
+#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -379,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -390,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -402,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -410,9 +591,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) { \
@@ -422,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -433,7 +610,14 @@ /**
* @brief Context switch hook.
- * @details This hook is invoked jus * @brief ISR enter hook.
+ * @details This hook is invoked just before switching between threads.
+ */
+#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \
+ /* Context switch code here.*/ \
+}
+
+/**
+ * @brief ISR enter hook.
*/
#define CH_CFG_IRQ_PROLOGUE_HOOK() { \
/* IRQ prologue code here.*/ \
@@ -447,19 +631,13 @@ }
/**
-t before switching between threads.
- */
-#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \
- /* Context switch code here.*/ \
-}
-
-/**
* @brief Idle thread enter hook.
* @note This hook is invoked within a critical zone, no OS functions
* should be invoked from here.
* @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -469,6 +647,7 @@ t before switching between threads. * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
diff --git a/testhal/KINETIS/FRDM-KL25Z/USB_HID/halconf_community.h b/testhal/KINETIS/FRDM-KL25Z/USB_HID/halconf_community.h index b2f75af..fb7ebf6 100644 --- a/testhal/KINETIS/FRDM-KL25Z/USB_HID/halconf_community.h +++ b/testhal/KINETIS/FRDM-KL25Z/USB_HID/halconf_community.h @@ -81,14 +81,35 @@ #endif
/**
+ * @brief Enables the TIMCAP subsystem.
+ */
+#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__)
+#define HAL_USE_COMP FALSE
+#endif
+
+/**
+ * @brief Enables the QEI subsystem.
+ */
+#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__)
+#define HAL_USE_QEI FALSE
+#endif
+
+/**
* @brief Enables the USBH subsystem.
*/
#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__)
-#define HAL_USE_USBH FALSE
+#define HAL_USE_USBH FALSE
+#endif
+
+/**
+ * @brief Enables the USB_MSD subsystem.
+ */
+#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__)
+#define HAL_USE_USB_MSD FALSE
#endif
/**
- * @brief Enables the USB HID subsystem.
+ * @brief Enables the USB_HID subsystem.
*/
#if !defined(HAL_USE_USB_HID) || defined(__DOXYGEN__)
#define HAL_USE_USB_HID TRUE
@@ -121,7 +142,25 @@ */
#define ONEWIRE_USE_SEARCH_ROM TRUE
- /*===========================================================================*/
+/*===========================================================================*/
+/* QEI driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables discard of overlow
+ */
+#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__)
+#define QEI_USE_OVERFLOW_DISCARD FALSE
+#endif
+
+/**
+ * @brief Enables min max of overlow
+ */
+#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__)
+#define QEI_USE_OVERFLOW_MINMAX FALSE
+#endif
+
+/*===========================================================================*/
/* EEProm driver related settings. */
/*===========================================================================*/
@@ -129,13 +168,12 @@ * @brief Enables 24xx series I2C eeprom device driver.
* @note Disabling this option saves both code and data space.
*/
-#define EEPROM_USE_EE24XX TRUE
+#define EEPROM_USE_EE24XX FALSE
/**
* @brief Enables 25xx series SPI eeprom device driver.
* @note Disabling this option saves both code and data space.
*/
-#define EEPROM_USE_EE25XX TRUE
-
+#define EEPROM_USE_EE25XX FALSE
#endif /* HALCONF_COMMUNITY_H */
diff --git a/testhal/KINETIS/FRDM-KL25Z/USB_SERIAL/Makefile b/testhal/KINETIS/FRDM-KL25Z/USB_SERIAL/Makefile index 57ab9e8..038f796 100644 --- a/testhal/KINETIS/FRDM-KL25Z/USB_SERIAL/Makefile +++ b/testhal/KINETIS/FRDM-KL25Z/USB_SERIAL/Makefile @@ -5,7 +5,7 @@ # Compiler options here.
ifeq ($(USE_OPT),)
- USE_OPT = -O0 -ggdb -fomit-frame-pointer -falign-functions=16
+ USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16
endif
# C specific options here (added to USE_OPT).
@@ -30,7 +30,7 @@ endif # Enable this if you want link time optimizations (LTO)
ifeq ($(USE_LTO),)
- USE_LTO = no
+ USE_LTO = yes
endif
# If enabled, this option allows to compile the application in THUMB mode.
@@ -69,6 +69,11 @@ ifeq ($(USE_EXCEPTIONS_STACKSIZE),) USE_EXCEPTIONS_STACKSIZE = 0x400
endif
+# Enables the use of FPU on Cortex-M4 (no, softfp, hard).
+ifeq ($(USE_FPU),)
+ USE_FPU = no
+endif
+
#
# Architecture or project specific options
##############################################################################
@@ -81,8 +86,10 @@ endif PROJECT = ch
# Imported source files and paths
-CHIBIOS = ../../../../../ChibiOS-RT
+CHIBIOS = ../../../../../ChibiOS
CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
+# Licensing files.
+include $(CHIBIOS)/os/license/license.mk
# Startup files.
include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_kl2x.mk
# HAL-OSAL files (optional).
@@ -94,7 +101,9 @@ include $(CHIBIOS)/os/hal/osal/rt/osal.mk include $(CHIBIOS)/os/rt/rt.mk
include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v6m.mk
# Other files (optional).
-include $(CHIBIOS)/test/rt/test.mk
+include $(CHIBIOS)/test/lib/test.mk
+include $(CHIBIOS)/test/rt/rt_test.mk
+include $(CHIBIOS)/test/oslib/oslib_test.mk
include $(CHIBIOS)/os/hal/lib/streams/streams.mk
include $(CHIBIOS)/os/various/shell/shell.mk
@@ -103,22 +112,14 @@ LDSCRIPT= $(STARTUPLD)/MKL2xZ128.ld # C sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CSRC = $(STARTUPSRC) \
- $(KERNSRC) \
- $(PORTSRC) \
- $(OSALSRC) \
- $(HALSRC) \
- $(PLATFORMSRC) \
- $(BOARDSRC) \
+CSRC = $(ALLCSRC) \
$(TESTSRC) \
- $(STREAMSSRC) \
- $(SHELLSRC) \
usbcfg.c \
- main.c \
+ main.c
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CPPSRC =
+CPPSRC = $(ALLCPPSRC)
# C sources to be compiled in ARM mode regardless of the global setting.
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
@@ -141,13 +142,11 @@ TCSRC = TCPPSRC =
# List ASM source files here
-ASMSRC =
-ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
+ASMSRC = $(ALLASMSRC)
+ASMXSRC = $(ALLXASMSRC)
-INCDIR = $(CHIBIOS)/os/license \
- $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
- $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
- $(STREAMSINC) $(SHELLINC)
+INCDIR = $(ALLINC) $(TESTINC) \
+ $(TESTHAL)
#
# Project, sources and paths
diff --git a/testhal/KINETIS/FRDM-KL25Z/USB_SERIAL/chconf.h b/testhal/KINETIS/FRDM-KL25Z/USB_SERIAL/chconf.h index e89ec1f..1750f63 100644 --- a/testhal/KINETIS/FRDM-KL25Z/USB_SERIAL/chconf.h +++ b/testhal/KINETIS/FRDM-KL25Z/USB_SERIAL/chconf.h @@ -1,5 +1,5 @@ /*
- ChibiOS - (C) 2015-2016 flabbergast <s3+flabbergast@sdfeu.org>
+ 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,19 +15,21 @@ */
/**
- * @file FRDM-KL25Z/USB_SERIAL/chconf.h
- * @brief Configuration file.
+ * @file 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.
*
* @addtogroup config
* @details Kernel related settings and hooks.
* @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
+#ifndef CHCONF_H
+#define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -40,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -57,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -80,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -93,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -102,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -121,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -139,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -147,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -156,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -164,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -175,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -183,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -193,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -203,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -213,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -221,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -231,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -240,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -251,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -261,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -270,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -282,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -291,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -302,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -318,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -327,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -336,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -346,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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_ENABLE_TRACE TRUE
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -367,7 +528,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 FALSE
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
+#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -377,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -388,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -400,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -408,9 +591,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) { \
@@ -420,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -458,6 +637,7 @@ * @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -467,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -510,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/KINETIS/FRDM-KL25Z/USB_SERIAL/halconf_community.h b/testhal/KINETIS/FRDM-KL25Z/USB_SERIAL/halconf_community.h new file mode 100644 index 0000000..cf0b508 --- /dev/null +++ b/testhal/KINETIS/FRDM-KL25Z/USB_SERIAL/halconf_community.h @@ -0,0 +1,180 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/** + * @brief Enables the USB_HID subsystem. + */ +#if !defined(HAL_USE_USB_HID) || defined(__DOXYGEN__) +#define HAL_USE_USB_HID FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/KINETIS/FRDM-KL26Z/I2C/Makefile b/testhal/KINETIS/FRDM-KL26Z/I2C/Makefile index 597f431..713d772 100644 --- a/testhal/KINETIS/FRDM-KL26Z/I2C/Makefile +++ b/testhal/KINETIS/FRDM-KL26Z/I2C/Makefile @@ -5,7 +5,7 @@ # Compiler options here.
ifeq ($(USE_OPT),)
- USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16 -DCRT0_INIT_STACKS=0
+ USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16
endif
# C specific options here (added to USE_OPT).
@@ -30,7 +30,7 @@ endif # Enable this if you want link time optimizations (LTO)
ifeq ($(USE_LTO),)
- USE_LTO = no
+ USE_LTO = yes
endif
# If enabled, this option allows to compile the application in THUMB mode.
@@ -69,6 +69,11 @@ ifeq ($(USE_EXCEPTIONS_STACKSIZE),) USE_EXCEPTIONS_STACKSIZE = 0x400
endif
+# Enables the use of FPU on Cortex-M4 (no, softfp, hard).
+ifeq ($(USE_FPU),)
+ USE_FPU = no
+endif
+
#
# Architecture or project specific options
##############################################################################
@@ -81,8 +86,10 @@ endif PROJECT = ch
# Imported source files and paths
-CHIBIOS = ../../../../../ChibiOS-RT
+CHIBIOS = ../../../../../ChibiOS
CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
+# Licensing files.
+include $(CHIBIOS)/os/license/license.mk
# Startup files.
include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_kl2x.mk
# HAL-OSAL files (optional).
@@ -100,18 +107,13 @@ LDSCRIPT= $(STARTUPLD)/MKL2xZ128.ld # C sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CSRC = $(STARTUPSRC) \
- $(KERNSRC) \
- $(PORTSRC) \
- $(OSALSRC) \
- $(HALSRC) \
- $(PLATFORMSRC) \
- $(BOARDSRC) \
+CSRC = $(ALLCSRC) \
+ $(TESTSRC) \
main.c
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CPPSRC =
+CPPSRC = $(ALLCPPSRC)
# C sources to be compiled in ARM mode regardless of the global setting.
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
@@ -134,12 +136,11 @@ TCSRC = TCPPSRC =
# List ASM source files here
-ASMSRC =
-ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
+ASMSRC = $(ALLASMSRC)
+ASMXSRC = $(ALLXASMSRC)
-INCDIR = $(CHIBIOS)/os/license \
- $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
- $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC)
+INCDIR = $(ALLINC) $(TESTINC) \
+ $(TESTHAL)
#
# Project, sources and paths
diff --git a/testhal/KINETIS/FRDM-KL26Z/I2C/chconf.h b/testhal/KINETIS/FRDM-KL26Z/I2C/chconf.h index 5f05547..1750f63 100644 --- a/testhal/KINETIS/FRDM-KL26Z/I2C/chconf.h +++ b/testhal/KINETIS/FRDM-KL26Z/I2C/chconf.h @@ -1,5 +1,5 @@ /*
- ChibiOS - Copyright (C) 2006..2015 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.
@@ -25,11 +25,11 @@ * @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
- -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_5_0_ +#ifndef CHCONF_H
+#define CHCONF_H
+
+#define _CHIBIOS_RT_CONF_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -59,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -82,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -95,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -104,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -123,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -141,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -149,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -158,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -166,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -177,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -185,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -195,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -205,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -215,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -223,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -233,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -242,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -253,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -263,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -272,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -284,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -293,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -304,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -320,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -329,7 +472,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 TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -338,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_CHECKS FALSE
+#if !defined(CH_DBG_ENABLE_CHECKS)
+#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -348,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_ASSERTS FALSE
+#if !defined(CH_DBG_ENABLE_ASSERTS)
+#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/
-#define CH_DBG_ENABLE_TRACE FALSE
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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.
+ */
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -369,7 +528,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 FALSE
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
+#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -379,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_FILL_THREADS FALSE
+#if !defined(CH_DBG_FILL_THREADS)
+#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -390,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -402,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -410,9 +591,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) { \
@@ -422,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -438,20 +615,20 @@ #define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \
/* Context switch code here.*/ \
}
- -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} +
+/**
+ * @brief ISR enter hook.
+ */
+#define CH_CFG_IRQ_PROLOGUE_HOOK() { \
+ /* IRQ prologue code here.*/ \
+}
+
+/**
+ * @brief ISR exit hook.
+ */
+#define CH_CFG_IRQ_EPILOGUE_HOOK() { \
+ /* IRQ epilogue code here.*/ \
+}
/**
* @brief Idle thread enter hook.
@@ -460,6 +637,7 @@ * @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -469,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -496,15 +675,15 @@ #define CH_CFG_SYSTEM_HALT_HOOK(reason) { \
/* System halt code here.*/ \
}
- -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +
+/**
+ * @brief Trace hook.
+ * @details This hook is invoked each time a new record is written in the
+ * trace buffer.
+ */
+#define CH_CFG_TRACE_HOOK(tep) { \
+ /* Trace code here.*/ \
+}
/** @} */
@@ -512,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/KINETIS/FRDM-KL26Z/I2C/halconf_community.h b/testhal/KINETIS/FRDM-KL26Z/I2C/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/KINETIS/FRDM-KL26Z/I2C/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/KINETIS/FRDM-KL26Z/PWM/Makefile b/testhal/KINETIS/FRDM-KL26Z/PWM/Makefile index bca626d..713d772 100644 --- a/testhal/KINETIS/FRDM-KL26Z/PWM/Makefile +++ b/testhal/KINETIS/FRDM-KL26Z/PWM/Makefile @@ -5,7 +5,7 @@ # Compiler options here.
ifeq ($(USE_OPT),)
- USE_OPT = -O0 -ggdb -fomit-frame-pointer -falign-functions=16
+ USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16
endif
# C specific options here (added to USE_OPT).
@@ -30,7 +30,7 @@ endif # Enable this if you want link time optimizations (LTO)
ifeq ($(USE_LTO),)
- USE_LTO = no
+ USE_LTO = yes
endif
# If enabled, this option allows to compile the application in THUMB mode.
@@ -69,6 +69,11 @@ ifeq ($(USE_EXCEPTIONS_STACKSIZE),) USE_EXCEPTIONS_STACKSIZE = 0x400
endif
+# Enables the use of FPU on Cortex-M4 (no, softfp, hard).
+ifeq ($(USE_FPU),)
+ USE_FPU = no
+endif
+
#
# Architecture or project specific options
##############################################################################
@@ -81,8 +86,10 @@ endif PROJECT = ch
# Imported source files and paths
-CHIBIOS = ../../../../../ChibiOS-RT
+CHIBIOS = ../../../../../ChibiOS
CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
+# Licensing files.
+include $(CHIBIOS)/os/license/license.mk
# Startup files.
include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_kl2x.mk
# HAL-OSAL files (optional).
@@ -94,25 +101,19 @@ include $(CHIBIOS)/os/hal/osal/rt/osal.mk include $(CHIBIOS)/os/rt/rt.mk
include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v6m.mk
# Other files (optional).
-include $(CHIBIOS)/test/rt/test.mk
# Define linker script file here
LDSCRIPT= $(STARTUPLD)/MKL2xZ128.ld
# C sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CSRC = $(STARTUPSRC) \
- $(KERNSRC) \
- $(PORTSRC) \
- $(OSALSRC) \
- $(HALSRC) \
- $(PLATFORMSRC) \
- $(BOARDSRC) \
+CSRC = $(ALLCSRC) \
+ $(TESTSRC) \
main.c
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CPPSRC =
+CPPSRC = $(ALLCPPSRC)
# C sources to be compiled in ARM mode regardless of the global setting.
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
@@ -135,12 +136,11 @@ TCSRC = TCPPSRC =
# List ASM source files here
-ASMSRC =
-ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
+ASMSRC = $(ALLASMSRC)
+ASMXSRC = $(ALLXASMSRC)
-INCDIR = $(CHIBIOS)/os/license \
- $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
- $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC)
+INCDIR = $(ALLINC) $(TESTINC) \
+ $(TESTHAL)
#
# Project, sources and paths
diff --git a/testhal/KINETIS/FRDM-KL26Z/PWM/chconf.h b/testhal/KINETIS/FRDM-KL26Z/PWM/chconf.h index 9f9b3e9..1750f63 100644 --- a/testhal/KINETIS/FRDM-KL26Z/PWM/chconf.h +++ b/testhal/KINETIS/FRDM-KL26Z/PWM/chconf.h @@ -1,5 +1,5 @@ /*
- ChibiOS - (C) 2015-2016 flabbergast <s3+flabbergast@sdfeu.org>
+ 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,19 +15,21 @@ */
/**
- * @file FRDM-KL26Z/PWM/chconf.h
- * @brief Configuration file.
+ * @file 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.
*
* @addtogroup config
* @details Kernel related settings and hooks.
* @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
+#ifndef CHCONF_H
+#define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -40,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -57,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -80,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -93,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -102,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -121,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -139,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -147,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -156,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -164,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -175,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -183,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -193,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -203,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -213,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -221,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -231,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -240,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -251,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -261,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -270,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -282,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -291,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -302,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -318,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -327,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -336,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -346,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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_ENABLE_TRACE TRUE
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -367,7 +528,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -377,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -388,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -400,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -408,9 +591,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) { \
@@ -420,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -458,6 +637,7 @@ * @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -467,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -510,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/KINETIS/FRDM-KL26Z/PWM/halconf_community.h b/testhal/KINETIS/FRDM-KL26Z/PWM/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/KINETIS/FRDM-KL26Z/PWM/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/KINETIS/FRDM-KL26Z/USB_SERIAL/Makefile b/testhal/KINETIS/FRDM-KL26Z/USB_SERIAL/Makefile index 3cf61b4..7327b35 100644 --- a/testhal/KINETIS/FRDM-KL26Z/USB_SERIAL/Makefile +++ b/testhal/KINETIS/FRDM-KL26Z/USB_SERIAL/Makefile @@ -5,7 +5,7 @@ # Compiler options here.
ifeq ($(USE_OPT),)
- USE_OPT = -O0 -ggdb -fomit-frame-pointer -falign-functions=16
+ USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16
endif
# C specific options here (added to USE_OPT).
@@ -30,7 +30,7 @@ endif # Enable this if you want link time optimizations (LTO)
ifeq ($(USE_LTO),)
- USE_LTO = no
+ USE_LTO = yes
endif
# If enabled, this option allows to compile the application in THUMB mode.
@@ -69,6 +69,11 @@ ifeq ($(USE_EXCEPTIONS_STACKSIZE),) USE_EXCEPTIONS_STACKSIZE = 0x400
endif
+# Enables the use of FPU on Cortex-M4 (no, softfp, hard).
+ifeq ($(USE_FPU),)
+ USE_FPU = no
+endif
+
#
# Architecture or project specific options
##############################################################################
@@ -81,8 +86,10 @@ endif PROJECT = ch
# Imported source files and paths
-CHIBIOS = ../../../../../ChibiOS-RT
+CHIBIOS = ../../../../../ChibiOS
CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
+# Licensing files.
+include $(CHIBIOS)/os/license/license.mk
# Startup files.
include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_kl2x.mk
# HAL-OSAL files (optional).
@@ -94,7 +101,9 @@ include $(CHIBIOS)/os/hal/osal/rt/osal.mk include $(CHIBIOS)/os/rt/rt.mk
include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v6m.mk
# Other files (optional).
-include $(CHIBIOS)/test/rt/test.mk
+include $(CHIBIOS)/test/lib/test.mk
+include $(CHIBIOS)/test/rt/rt_test.mk
+include $(CHIBIOS)/test/oslib/oslib_test.mk
include $(CHIBIOS)/os/hal/lib/streams/streams.mk
include $(CHIBIOS)/os/various/shell/shell.mk
@@ -103,22 +112,14 @@ LDSCRIPT= $(STARTUPLD)/MKL2xZ128.ld # C sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CSRC = $(STARTUPSRC) \
- $(KERNSRC) \
- $(PORTSRC) \
- $(OSALSRC) \
- $(HALSRC) \
- $(PLATFORMSRC) \
- $(BOARDSRC) \
+CSRC = $(ALLCSRC) \
$(TESTSRC) \
- $(STREAMSSRC) \
- $(SHELLSRC) \
- main.c \
usbcfg.c \
+ main.c
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CPPSRC =
+CPPSRC = $(ALLCPPSRC)
# C sources to be compiled in ARM mode regardless of the global setting.
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
@@ -141,13 +142,11 @@ TCSRC = TCPPSRC =
# List ASM source files here
-ASMSRC =
-ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
+ASMSRC = $(ALLASMSRC)
+ASMXSRC = $(ALLXASMSRC)
-INCDIR = $(CHIBIOS)/os/license \
- $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
- $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
- $(STREAMSINC) $(SHELLINC)
+INCDIR = $(ALLINC) $(TESTINC) \
+ $(TESTHAL)
#
# Project, sources and paths
diff --git a/testhal/KINETIS/FRDM-KL26Z/USB_SERIAL/chconf.h b/testhal/KINETIS/FRDM-KL26Z/USB_SERIAL/chconf.h index 9c9a479..1750f63 100644 --- a/testhal/KINETIS/FRDM-KL26Z/USB_SERIAL/chconf.h +++ b/testhal/KINETIS/FRDM-KL26Z/USB_SERIAL/chconf.h @@ -1,5 +1,5 @@ /*
- ChibiOS - (C) 2015-2016 flabbergast <s3+flabbergast@sdfeu.org>
+ 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,19 +15,21 @@ */
/**
- * @file FRDM-KL26Z/USB_SERIAL/chconf.h
- * @brief Configuration file.
+ * @file 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.
*
* @addtogroup config
* @details Kernel related settings and hooks.
* @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
+#ifndef CHCONF_H
+#define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -40,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -57,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -80,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -93,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -102,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -121,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -139,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -147,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -156,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -164,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -175,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -183,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -193,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -203,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -213,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -221,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -231,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -240,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -251,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -261,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -270,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -282,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -291,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -302,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -318,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -327,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -336,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -346,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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_ENABLE_TRACE TRUE
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -367,7 +528,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 FALSE
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
+#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -377,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -388,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -400,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -408,9 +591,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) { \
@@ -420,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -458,6 +637,7 @@ * @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -467,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -510,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/KINETIS/FRDM-KL26Z/USB_SERIAL/halconf_community.h b/testhal/KINETIS/FRDM-KL26Z/USB_SERIAL/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/KINETIS/FRDM-KL26Z/USB_SERIAL/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/KINETIS/KL27Z/BLINK/Makefile b/testhal/KINETIS/KL27Z/BLINK/Makefile index 16025f3..8348654 100644 --- a/testhal/KINETIS/KL27Z/BLINK/Makefile +++ b/testhal/KINETIS/KL27Z/BLINK/Makefile @@ -5,7 +5,7 @@ # Compiler options here. ifeq ($(USE_OPT),) - USE_OPT = -O0 -ggdb -fomit-frame-pointer -falign-functions=16 + USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16 endif # C specific options here (added to USE_OPT). @@ -30,7 +30,7 @@ endif # Enable this if you want link time optimizations (LTO) ifeq ($(USE_LTO),) - USE_LTO = no + USE_LTO = yes endif # If enabled, this option allows to compile the application in THUMB mode. @@ -69,6 +69,11 @@ ifeq ($(USE_EXCEPTIONS_STACKSIZE),) USE_EXCEPTIONS_STACKSIZE = 0x400 endif +# Enables the use of FPU on Cortex-M4 (no, softfp, hard). +ifeq ($(USE_FPU),) + USE_FPU = no +endif + # # Architecture or project specific options ############################################################################## @@ -81,8 +86,10 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib +# Licensing files. +include $(CHIBIOS)/os/license/license.mk # Startup files. include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_kl2x.mk # HAL-OSAL files (optional). @@ -100,18 +107,13 @@ LDSCRIPT= $(STARTUPLD)/MKL27Z256.ld # C sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CSRC = $(STARTUPSRC) \ - $(KERNSRC) \ - $(PORTSRC) \ - $(OSALSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ +CSRC = $(ALLCSRC) \ + $(TESTSRC) \ main.c # C++ sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CPPSRC = +CPPSRC = $(ALLCPPSRC) # C sources to be compiled in ARM mode regardless of the global setting. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler @@ -134,13 +136,11 @@ TCSRC = TCPPSRC = # List ASM source files here -ASMSRC = -ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) +ASMSRC = $(ALLASMSRC) +ASMXSRC = $(ALLXASMSRC) -INCDIR = $(CHIBIOS)/os/license \ - $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ - $(HALINC) $(PLATFORMINC) $(BOARDINC) \ - $(CHIBIOS)/os/various +INCDIR = $(ALLINC) $(TESTINC) \ + $(TESTHAL) # # Project, sources and paths diff --git a/testhal/KINETIS/KL27Z/BLINK/board/board.mk b/testhal/KINETIS/KL27Z/BLINK/board/board.mk index 14102c4..b410cdb 100644 --- a/testhal/KINETIS/KL27Z/BLINK/board/board.mk +++ b/testhal/KINETIS/KL27Z/BLINK/board/board.mk @@ -3,3 +3,7 @@ BOARDSRC = ./board/board.c # Required include directories
BOARDINC = ./board
+
+# Shared variables
+ALLCSRC += $(BOARDSRC)
+ALLINC += $(BOARDINC)
diff --git a/testhal/KINETIS/KL27Z/BLINK/chconf.h b/testhal/KINETIS/KL27Z/BLINK/chconf.h index 49d21ae..1750f63 100644 --- a/testhal/KINETIS/KL27Z/BLINK/chconf.h +++ b/testhal/KINETIS/KL27Z/BLINK/chconf.h @@ -1,5 +1,5 @@ /*
- ChibiOS - (C) 2015-2016 flabbergast <s3+flabbergast@sdfeu.org>
+ 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 KL27Z/BLINK/chconf.h
+ * @file 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.
@@ -25,11 +25,11 @@ * @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
+#ifndef CHCONF_H
+#define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -59,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -82,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -95,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -104,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -123,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -141,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -149,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -158,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -166,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -177,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
-#define CH_CFG_USE_SEMAPHORES_PRIORITY TRUE
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
+#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -185,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -195,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -205,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -215,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -223,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -233,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -242,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -253,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -263,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -272,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -284,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -293,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -304,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -320,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -329,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -338,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -348,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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_ENABLE_TRACE TRUE
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -369,7 +528,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -379,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -390,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -402,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -410,9 +591,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) { \
@@ -422,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -460,6 +637,7 @@ * @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -469,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -512,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/KINETIS/KL27Z/BLINK/halconf_community.h b/testhal/KINETIS/KL27Z/BLINK/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/KINETIS/KL27Z/BLINK/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/KINETIS/MCHCK/BOOTLOADER/Makefile b/testhal/KINETIS/MCHCK/BOOTLOADER/Makefile index 884d20e..c2fa3a0 100644 --- a/testhal/KINETIS/MCHCK/BOOTLOADER/Makefile +++ b/testhal/KINETIS/MCHCK/BOOTLOADER/Makefile @@ -30,7 +30,7 @@ endif # Enable this if you want link time optimizations (LTO) ifeq ($(USE_LTO),) - USE_LTO = no + USE_LTO = yes endif # If enabled, this option allows to compile the application in THUMB mode. @@ -86,8 +86,10 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib +# Licensing files. +include $(CHIBIOS)/os/license/license.mk # Startup files. include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_k20x5.mk # HAL-OSAL files (optional). @@ -106,19 +108,13 @@ LDSCRIPT= $(STARTUPLD)/MK20DX128BLDR4.ld # C sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CSRC = $(STARTUPSRC) \ - $(KERNSRC) \ - $(PORTSRC) \ - $(OSALSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ +CSRC = $(ALLCSRC) \ $(TESTSRC) \ main.c # C++ sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CPPSRC = +CPPSRC = $(ALLCPPSRC) # C sources to be compiled in ARM mode regardless of the global setting. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler @@ -141,13 +137,11 @@ TCSRC = TCPPSRC = # List ASM source files here -ASMSRC = -ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) +ASMSRC = $(ALLASMSRC) +ASMXSRC = $(ALLXASMSRC) -INCDIR = $(CHIBIOS)/os/license \ - $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ - $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ - $(CHIBIOS)/os/various +INCDIR = $(ALLINC) $(TESTINC) \ + $(TESTHAL) # # Project, sources and paths diff --git a/testhal/KINETIS/MCHCK/BOOTLOADER/chconf.h b/testhal/KINETIS/MCHCK/BOOTLOADER/chconf.h index a185459..1750f63 100644 --- a/testhal/KINETIS/MCHCK/BOOTLOADER/chconf.h +++ b/testhal/KINETIS/MCHCK/BOOTLOADER/chconf.h @@ -1,5 +1,5 @@ /*
- ChibiOS - (C) 2015-2016 flabbergast <s3+flabbergast@sdfeu.org>
+ 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,19 +15,21 @@ */
/**
- * @file MCHCK/BOOTLOADER/chconf.h
- * @brief Configuration file.
+ * @file 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.
*
* @addtogroup config
* @details Kernel related settings and hooks.
* @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
+#ifndef CHCONF_H
+#define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -40,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -57,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -80,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -93,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -102,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -121,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -139,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -147,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -156,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -164,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -175,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
-#define CH_CFG_USE_SEMAPHORES_PRIORITY TRUE
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
+#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -183,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -193,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -203,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -213,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -221,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -231,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -240,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -251,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -261,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -270,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -282,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -291,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -302,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -318,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -327,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -336,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -346,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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_ENABLE_TRACE TRUE
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -367,7 +528,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -377,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -388,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -400,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -408,9 +591,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) { \
@@ -420,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -458,6 +637,7 @@ * @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -467,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -510,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/KINETIS/MCHCK/BOOTLOADER/halconf_community.h b/testhal/KINETIS/MCHCK/BOOTLOADER/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/KINETIS/MCHCK/BOOTLOADER/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/KINETIS/MCHCK/PWM/Makefile b/testhal/KINETIS/MCHCK/PWM/Makefile index 884d20e..c2fa3a0 100644 --- a/testhal/KINETIS/MCHCK/PWM/Makefile +++ b/testhal/KINETIS/MCHCK/PWM/Makefile @@ -30,7 +30,7 @@ endif # Enable this if you want link time optimizations (LTO) ifeq ($(USE_LTO),) - USE_LTO = no + USE_LTO = yes endif # If enabled, this option allows to compile the application in THUMB mode. @@ -86,8 +86,10 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib +# Licensing files. +include $(CHIBIOS)/os/license/license.mk # Startup files. include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_k20x5.mk # HAL-OSAL files (optional). @@ -106,19 +108,13 @@ LDSCRIPT= $(STARTUPLD)/MK20DX128BLDR4.ld # C sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CSRC = $(STARTUPSRC) \ - $(KERNSRC) \ - $(PORTSRC) \ - $(OSALSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ +CSRC = $(ALLCSRC) \ $(TESTSRC) \ main.c # C++ sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CPPSRC = +CPPSRC = $(ALLCPPSRC) # C sources to be compiled in ARM mode regardless of the global setting. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler @@ -141,13 +137,11 @@ TCSRC = TCPPSRC = # List ASM source files here -ASMSRC = -ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) +ASMSRC = $(ALLASMSRC) +ASMXSRC = $(ALLXASMSRC) -INCDIR = $(CHIBIOS)/os/license \ - $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ - $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ - $(CHIBIOS)/os/various +INCDIR = $(ALLINC) $(TESTINC) \ + $(TESTHAL) # # Project, sources and paths diff --git a/testhal/KINETIS/MCHCK/PWM/chconf.h b/testhal/KINETIS/MCHCK/PWM/chconf.h index 2f2938a..1750f63 100644 --- a/testhal/KINETIS/MCHCK/PWM/chconf.h +++ b/testhal/KINETIS/MCHCK/PWM/chconf.h @@ -1,5 +1,5 @@ /*
- ChibiOS - (C) 2015-2016 flabbergast <s3+flabbergast@sdfeu.org>
+ 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,19 +15,21 @@ */
/**
- * @file MCHCK/PWM/chconf.h
- * @brief Configuration file.
+ * @file 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.
*
* @addtogroup config
* @details Kernel related settings and hooks.
* @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
+#ifndef CHCONF_H
+#define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -40,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -57,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -80,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -93,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -102,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -121,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -139,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -147,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -156,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -164,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -175,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -183,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -193,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -203,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -213,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -221,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -231,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -240,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -251,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -261,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -270,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -282,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -291,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -302,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -318,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -327,7 +472,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 TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -336,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_CHECKS FALSE
+#if !defined(CH_DBG_ENABLE_CHECKS)
+#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -346,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_ASSERTS FALSE
+#if !defined(CH_DBG_ENABLE_ASSERTS)
+#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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_ENABLE_TRACE FALSE
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -367,7 +528,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 FALSE
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
+#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -377,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_FILL_THREADS FALSE
+#if !defined(CH_DBG_FILL_THREADS)
+#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -388,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -400,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -408,9 +591,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) { \
@@ -420,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -458,6 +637,7 @@ * @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -467,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -510,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/KINETIS/MCHCK/PWM/halconf_community.h b/testhal/KINETIS/MCHCK/PWM/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/KINETIS/MCHCK/PWM/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/KINETIS/MCHCK/USB_SERIAL/Makefile b/testhal/KINETIS/MCHCK/USB_SERIAL/Makefile index b4d1ef8..31862bd 100644 --- a/testhal/KINETIS/MCHCK/USB_SERIAL/Makefile +++ b/testhal/KINETIS/MCHCK/USB_SERIAL/Makefile @@ -30,7 +30,7 @@ endif # Enable this if you want link time optimizations (LTO)
ifeq ($(USE_LTO),)
- USE_LTO = no
+ USE_LTO = yes
endif
# If enabled, this option allows to compile the application in THUMB mode.
@@ -86,8 +86,10 @@ endif PROJECT = ch
# Imported source files and paths
-CHIBIOS = ../../../../../ChibiOS-RT
+CHIBIOS = ../../../../../ChibiOS
CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
+# Licensing files.
+include $(CHIBIOS)/os/license/license.mk
# Startup files.
include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_k20x5.mk
# HAL-OSAL files (optional).
@@ -99,7 +101,9 @@ include $(CHIBIOS)/os/hal/osal/rt/osal.mk include $(CHIBIOS)/os/rt/rt.mk
include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v7m.mk
# Other files (optional).
-include $(CHIBIOS)/test/rt/test.mk
+include $(CHIBIOS)/test/lib/test.mk
+include $(CHIBIOS)/test/rt/rt_test.mk
+include $(CHIBIOS)/test/oslib/oslib_test.mk
include $(CHIBIOS)/os/hal/lib/streams/streams.mk
include $(CHIBIOS)/os/various/shell/shell.mk
@@ -109,22 +113,14 @@ LDSCRIPT= $(STARTUPLD)/MK20DX128BLDR4.ld # C sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CSRC = $(STARTUPSRC) \
- $(KERNSRC) \
- $(PORTSRC) \
- $(OSALSRC) \
- $(HALSRC) \
- $(PLATFORMSRC) \
- $(BOARDSRC) \
+CSRC = $(ALLCSRC) \
$(TESTSRC) \
- $(STREAMSSRC) \
- $(SHELLSRC) \
usbcfg.c \
- main.c \
+ main.c
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CPPSRC =
+CPPSRC = $(ALLCPPSRC)
# C sources to be compiled in ARM mode regardless of the global setting.
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
@@ -147,13 +143,11 @@ TCSRC = TCPPSRC =
# List ASM source files here
-ASMSRC =
-ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
+ASMSRC = $(ALLASMSRC)
+ASMXSRC = $(ALLXASMSRC)
-INCDIR = $(CHIBIOS)/os/license \
- $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
- $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
- $(STREAMSINC) $(SHELLINC)
+INCDIR = $(ALLINC) $(TESTINC) \
+ $(TESTHAL)
#
# Project, sources and paths
diff --git a/testhal/KINETIS/MCHCK/USB_SERIAL/chconf.h b/testhal/KINETIS/MCHCK/USB_SERIAL/chconf.h index 22272b1..1750f63 100644 --- a/testhal/KINETIS/MCHCK/USB_SERIAL/chconf.h +++ b/testhal/KINETIS/MCHCK/USB_SERIAL/chconf.h @@ -1,5 +1,5 @@ /*
- ChibiOS - (C) 2015-2016 flabbergast <s3+flabbergast@sdfeu.org>
+ 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,19 +15,21 @@ */
/**
- * @file MCHCK/USB_SERIAL/chconf.h
- * @brief Configuration file.
+ * @file 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.
*
* @addtogroup config
* @details Kernel related settings and hooks.
* @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
+#ifndef CHCONF_H
+#define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -40,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -57,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -80,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -93,15 +119,20 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
* @details When this option is activated the function @p chSysInit()
* does not spawn the idle thread. The application @p main()
* function becomes the idle thread and must implement an
- * infinite loop. */
+ * infinite loop.
+ */
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -120,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -138,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -146,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -155,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -163,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -174,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -182,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -192,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -202,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -212,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -220,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -230,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -239,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -250,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -260,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -269,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -281,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -290,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -301,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -317,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -326,7 +472,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 TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -335,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_CHECKS FALSE
+#if !defined(CH_DBG_ENABLE_CHECKS)
+#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -345,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_ASSERTS FALSE
+#if !defined(CH_DBG_ENABLE_ASSERTS)
+#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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_ENABLE_TRACE FALSE
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -366,7 +528,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 FALSE
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
+#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -376,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_FILL_THREADS FALSE
+#if !defined(CH_DBG_FILL_THREADS)
+#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -387,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -399,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -407,9 +591,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) { \
@@ -419,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -433,7 +613,7 @@ * @details This hook is invoked just before switching between threads.
*/
#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \
- /* System halt code here.*/ \
+ /* Context switch code here.*/ \
}
/**
@@ -456,7 +636,8 @@ * should be invoked from here.
* @note This macro can be used to activate a power saving mode.
*/
-#define CH_CFG_IDLE_ENTER_HOOK() { \
+#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -465,7 +646,8 @@ * should be invoked from here.
* @note This macro can be used to deactivate a power saving mode.
*/
-#define CH_CFG_IDLE_LEAVE_HOOK() { \
+#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -509,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/KINETIS/MCHCK/USB_SERIAL/halconf_community.h b/testhal/KINETIS/MCHCK/USB_SERIAL/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/KINETIS/MCHCK/USB_SERIAL/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/KINETIS/TEENSY3_x/ADC/Makefile b/testhal/KINETIS/TEENSY3_x/ADC/Makefile index 6510052..eee81be 100644 --- a/testhal/KINETIS/TEENSY3_x/ADC/Makefile +++ b/testhal/KINETIS/TEENSY3_x/ADC/Makefile @@ -30,7 +30,7 @@ endif # Enable this if you want link time optimizations (LTO) ifeq ($(USE_LTO),) - USE_LTO = no + USE_LTO = yes endif # If enabled, this option allows to compile the application in THUMB mode. @@ -86,8 +86,10 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib +# Licensing files. +include $(CHIBIOS)/os/license/license.mk # Startup files. include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_k20x7.mk # HAL-OSAL files (optional). @@ -105,19 +107,13 @@ LDSCRIPT= $(STARTUPLD)/MK20DX256.ld # C sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CSRC = $(STARTUPSRC) \ - $(KERNSRC) \ - $(PORTSRC) \ - $(OSALSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ +CSRC = $(ALLCSRC) \ $(TESTSRC) \ main.c # C++ sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CPPSRC = +CPPSRC = $(ALLCPPSRC) # C sources to be compiled in ARM mode regardless of the global setting. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler @@ -140,13 +136,11 @@ TCSRC = TCPPSRC = # List ASM source files here -ASMSRC = -ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) +ASMSRC = $(ALLASMSRC) +ASMXSRC = $(ALLXASMSRC) -INCDIR = $(CHIBIOS)/os/license \ - $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ - $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ - $(CHIBIOS)/os/various +INCDIR = $(ALLINC) $(TESTINC) \ + $(TESTHAL) # # Project, sources and paths diff --git a/testhal/KINETIS/TEENSY3_x/ADC/chconf.h b/testhal/KINETIS/TEENSY3_x/ADC/chconf.h index 029e4ec..1750f63 100644 --- a/testhal/KINETIS/TEENSY3_x/ADC/chconf.h +++ b/testhal/KINETIS/TEENSY3_x/ADC/chconf.h @@ -1,5 +1,5 @@ /*
- ChibiOS - (C) 2015 RedoX https://github.com/RedoXyde
+ 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,19 +15,21 @@ */
/**
- * @file TEENSY3_x/ADC/chconf.h
- * @brief Configuration file.
+ * @file 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.
*
* @addtogroup config
* @details Kernel related settings and hooks.
* @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
+#ifndef CHCONF_H
+#define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -40,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -57,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -80,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -93,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -102,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -121,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -139,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -147,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -156,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -164,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -175,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -183,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -193,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -203,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -213,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -221,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -231,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -240,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -251,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -261,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -270,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -282,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -291,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -302,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -318,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -327,7 +472,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 TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -336,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_CHECKS FALSE
+#if !defined(CH_DBG_ENABLE_CHECKS)
+#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -346,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_ASSERTS FALSE
+#if !defined(CH_DBG_ENABLE_ASSERTS)
+#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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_ENABLE_TRACE FALSE
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -367,7 +528,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 FALSE
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
+#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -377,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_FILL_THREADS FALSE
+#if !defined(CH_DBG_FILL_THREADS)
+#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -388,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -400,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -408,9 +591,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) { \
@@ -420,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -458,6 +637,7 @@ * @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -467,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -510,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/KINETIS/TEENSY3_x/ADC/halconf_community.h b/testhal/KINETIS/TEENSY3_x/ADC/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/KINETIS/TEENSY3_x/ADC/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/KINETIS/TEENSY3_x/EEPROM_EMU/Makefile b/testhal/KINETIS/TEENSY3_x/EEPROM_EMU/Makefile index fa5084c..626a52f 100644 --- a/testhal/KINETIS/TEENSY3_x/EEPROM_EMU/Makefile +++ b/testhal/KINETIS/TEENSY3_x/EEPROM_EMU/Makefile @@ -5,7 +5,7 @@ # Compiler options here. ifeq ($(USE_OPT),) - USE_OPT = -O0 -ggdb -fomit-frame-pointer -falign-functions=16 + USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16 endif # C specific options here (added to USE_OPT). @@ -30,7 +30,7 @@ endif # Enable this if you want link time optimizations (LTO) ifeq ($(USE_LTO),) - USE_LTO = no + USE_LTO = yes endif # If enabled, this option allows to compile the application in THUMB mode. @@ -86,8 +86,10 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib +# Licensing files. +include $(CHIBIOS)/os/license/license.mk # Startup files. include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_k20x7.mk # HAL-OSAL files (optional). @@ -105,19 +107,14 @@ LDSCRIPT= $(STARTUPLD)/MK20DX256.ld # C sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CSRC = $(STARTUPSRC) \ - $(KERNSRC) \ - $(PORTSRC) \ - $(OSALSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ +CSRC = $(ALLCSRC) \ + $(TESTSRC) \ eeprom.c \ main.c # C++ sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CPPSRC = +CPPSRC = $(ALLCPPSRC) # C sources to be compiled in ARM mode regardless of the global setting. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler @@ -140,13 +137,11 @@ TCSRC = TCPPSRC = # List ASM source files here -ASMSRC = -ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) +ASMSRC = $(ALLASMSRC) +ASMXSRC = $(ALLXASMSRC) -INCDIR = $(CHIBIOS)/os/license \ - $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ - $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ - $(CHIBIOS)/os/various +INCDIR = $(ALLINC) $(TESTINC) \ + $(TESTHAL) # # Project, sources and paths diff --git a/testhal/KINETIS/TEENSY3_x/EEPROM_EMU/chconf.h b/testhal/KINETIS/TEENSY3_x/EEPROM_EMU/chconf.h index 3bb57de..1750f63 100644 --- a/testhal/KINETIS/TEENSY3_x/EEPROM_EMU/chconf.h +++ b/testhal/KINETIS/TEENSY3_x/EEPROM_EMU/chconf.h @@ -1,5 +1,5 @@ /*
- ChibiOS - (C) 2015-2016 flabbergast <s3+flabbergast@sdfeu.org>
+ 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 TEENSY3_x/EEPROM_EMU/chconf.h
+ * @file 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.
@@ -25,11 +25,11 @@ * @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
+#ifndef CHCONF_H
+#define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -59,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -82,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -95,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -104,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -123,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -141,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -149,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -158,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -166,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -177,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
-#define CH_CFG_USE_SEMAPHORES_PRIORITY TRUE
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
+#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -185,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -195,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -205,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -215,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -223,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -233,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -242,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -253,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -263,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -272,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -284,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -293,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -304,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -320,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -329,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -338,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -348,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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_ENABLE_TRACE TRUE
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -369,7 +528,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -379,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -390,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -402,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -410,9 +591,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) { \
@@ -422,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -460,6 +637,7 @@ * @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -469,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -512,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/KINETIS/TEENSY3_x/EEPROM_EMU/halconf_community.h b/testhal/KINETIS/TEENSY3_x/EEPROM_EMU/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/KINETIS/TEENSY3_x/EEPROM_EMU/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/KINETIS/TEENSY3_x/EXT/Makefile b/testhal/KINETIS/TEENSY3_x/EXT/Makefile index 6510052..eee81be 100644 --- a/testhal/KINETIS/TEENSY3_x/EXT/Makefile +++ b/testhal/KINETIS/TEENSY3_x/EXT/Makefile @@ -30,7 +30,7 @@ endif # Enable this if you want link time optimizations (LTO) ifeq ($(USE_LTO),) - USE_LTO = no + USE_LTO = yes endif # If enabled, this option allows to compile the application in THUMB mode. @@ -86,8 +86,10 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib +# Licensing files. +include $(CHIBIOS)/os/license/license.mk # Startup files. include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_k20x7.mk # HAL-OSAL files (optional). @@ -105,19 +107,13 @@ LDSCRIPT= $(STARTUPLD)/MK20DX256.ld # C sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CSRC = $(STARTUPSRC) \ - $(KERNSRC) \ - $(PORTSRC) \ - $(OSALSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ +CSRC = $(ALLCSRC) \ $(TESTSRC) \ main.c # C++ sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CPPSRC = +CPPSRC = $(ALLCPPSRC) # C sources to be compiled in ARM mode regardless of the global setting. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler @@ -140,13 +136,11 @@ TCSRC = TCPPSRC = # List ASM source files here -ASMSRC = -ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) +ASMSRC = $(ALLASMSRC) +ASMXSRC = $(ALLXASMSRC) -INCDIR = $(CHIBIOS)/os/license \ - $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ - $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ - $(CHIBIOS)/os/various +INCDIR = $(ALLINC) $(TESTINC) \ + $(TESTHAL) # # Project, sources and paths diff --git a/testhal/KINETIS/TEENSY3_x/EXT/chconf.h b/testhal/KINETIS/TEENSY3_x/EXT/chconf.h index 0be6605..1750f63 100644 --- a/testhal/KINETIS/TEENSY3_x/EXT/chconf.h +++ b/testhal/KINETIS/TEENSY3_x/EXT/chconf.h @@ -1,5 +1,5 @@ /*
- ChibiOS - (C) 2015 RedoX https://github.com/RedoXyde
+ 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,19 +15,21 @@ */
/**
- * @file TEENSY3_x/EXT/chconf.h
- * @brief Configuration file.
+ * @file 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.
*
* @addtogroup config
* @details Kernel related settings and hooks.
* @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
+#ifndef CHCONF_H
+#define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -40,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -57,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -80,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -93,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -102,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -121,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -139,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -147,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -156,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -164,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -175,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -183,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -193,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -203,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -213,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -221,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -231,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -240,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -251,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -261,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -270,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -282,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -291,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -302,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -318,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -327,7 +472,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 TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -336,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_CHECKS FALSE
+#if !defined(CH_DBG_ENABLE_CHECKS)
+#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -346,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_ASSERTS FALSE
+#if !defined(CH_DBG_ENABLE_ASSERTS)
+#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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_ENABLE_TRACE FALSE
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -367,7 +528,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 FALSE
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
+#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -377,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_FILL_THREADS FALSE
+#if !defined(CH_DBG_FILL_THREADS)
+#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -388,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -400,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -408,9 +591,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) { \
@@ -420,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -458,6 +637,7 @@ * @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -467,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -510,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/KINETIS/TEENSY3_x/EXT/halconf_community.h b/testhal/KINETIS/TEENSY3_x/EXT/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/KINETIS/TEENSY3_x/EXT/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/KINETIS/TEENSY3_x/GPT/Makefile b/testhal/KINETIS/TEENSY3_x/GPT/Makefile index 6510052..eee81be 100644 --- a/testhal/KINETIS/TEENSY3_x/GPT/Makefile +++ b/testhal/KINETIS/TEENSY3_x/GPT/Makefile @@ -30,7 +30,7 @@ endif # Enable this if you want link time optimizations (LTO) ifeq ($(USE_LTO),) - USE_LTO = no + USE_LTO = yes endif # If enabled, this option allows to compile the application in THUMB mode. @@ -86,8 +86,10 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib +# Licensing files. +include $(CHIBIOS)/os/license/license.mk # Startup files. include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_k20x7.mk # HAL-OSAL files (optional). @@ -105,19 +107,13 @@ LDSCRIPT= $(STARTUPLD)/MK20DX256.ld # C sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CSRC = $(STARTUPSRC) \ - $(KERNSRC) \ - $(PORTSRC) \ - $(OSALSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ +CSRC = $(ALLCSRC) \ $(TESTSRC) \ main.c # C++ sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CPPSRC = +CPPSRC = $(ALLCPPSRC) # C sources to be compiled in ARM mode regardless of the global setting. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler @@ -140,13 +136,11 @@ TCSRC = TCPPSRC = # List ASM source files here -ASMSRC = -ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) +ASMSRC = $(ALLASMSRC) +ASMXSRC = $(ALLXASMSRC) -INCDIR = $(CHIBIOS)/os/license \ - $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ - $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ - $(CHIBIOS)/os/various +INCDIR = $(ALLINC) $(TESTINC) \ + $(TESTHAL) # # Project, sources and paths diff --git a/testhal/KINETIS/TEENSY3_x/GPT/chconf.h b/testhal/KINETIS/TEENSY3_x/GPT/chconf.h index 93ba7b8..1750f63 100644 --- a/testhal/KINETIS/TEENSY3_x/GPT/chconf.h +++ b/testhal/KINETIS/TEENSY3_x/GPT/chconf.h @@ -1,5 +1,5 @@ /*
- ChibiOS - (C) 2015 RedoX https://github.com/RedoXyde
+ 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,19 +15,21 @@ */
/**
- * @file TEENSY3_x/GPT/chconf.h
- * @brief Configuration file.
+ * @file 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.
*
* @addtogroup config
* @details Kernel related settings and hooks.
* @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
+#ifndef CHCONF_H
+#define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -40,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -57,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -80,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -93,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -102,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -121,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -139,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -147,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -156,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -164,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -175,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -183,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -193,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -203,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -213,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -221,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -231,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -240,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -251,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -261,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -270,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -282,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -291,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -302,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -318,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -327,7 +472,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 TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -336,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_CHECKS FALSE
+#if !defined(CH_DBG_ENABLE_CHECKS)
+#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -346,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_ASSERTS FALSE
+#if !defined(CH_DBG_ENABLE_ASSERTS)
+#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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_ENABLE_TRACE FALSE
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -367,7 +528,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 FALSE
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
+#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -377,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_FILL_THREADS FALSE
+#if !defined(CH_DBG_FILL_THREADS)
+#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -388,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -400,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -408,9 +591,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) { \
@@ -420,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -458,6 +637,7 @@ * @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -467,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -510,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/KINETIS/TEENSY3_x/GPT/halconf_community.h b/testhal/KINETIS/TEENSY3_x/GPT/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/KINETIS/TEENSY3_x/GPT/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/KINETIS/TEENSY3_x/PWM/Makefile b/testhal/KINETIS/TEENSY3_x/PWM/Makefile index 6510052..eee81be 100644 --- a/testhal/KINETIS/TEENSY3_x/PWM/Makefile +++ b/testhal/KINETIS/TEENSY3_x/PWM/Makefile @@ -30,7 +30,7 @@ endif # Enable this if you want link time optimizations (LTO) ifeq ($(USE_LTO),) - USE_LTO = no + USE_LTO = yes endif # If enabled, this option allows to compile the application in THUMB mode. @@ -86,8 +86,10 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib +# Licensing files. +include $(CHIBIOS)/os/license/license.mk # Startup files. include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_k20x7.mk # HAL-OSAL files (optional). @@ -105,19 +107,13 @@ LDSCRIPT= $(STARTUPLD)/MK20DX256.ld # C sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CSRC = $(STARTUPSRC) \ - $(KERNSRC) \ - $(PORTSRC) \ - $(OSALSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ +CSRC = $(ALLCSRC) \ $(TESTSRC) \ main.c # C++ sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CPPSRC = +CPPSRC = $(ALLCPPSRC) # C sources to be compiled in ARM mode regardless of the global setting. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler @@ -140,13 +136,11 @@ TCSRC = TCPPSRC = # List ASM source files here -ASMSRC = -ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) +ASMSRC = $(ALLASMSRC) +ASMXSRC = $(ALLXASMSRC) -INCDIR = $(CHIBIOS)/os/license \ - $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ - $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ - $(CHIBIOS)/os/various +INCDIR = $(ALLINC) $(TESTINC) \ + $(TESTHAL) # # Project, sources and paths diff --git a/testhal/KINETIS/TEENSY3_x/PWM/chconf.h b/testhal/KINETIS/TEENSY3_x/PWM/chconf.h index a661f7e..1750f63 100644 --- a/testhal/KINETIS/TEENSY3_x/PWM/chconf.h +++ b/testhal/KINETIS/TEENSY3_x/PWM/chconf.h @@ -1,5 +1,5 @@ /*
- ChibiOS - (C) 2015-2016 flabbergast <s3+flabbergast@sdfeu.org>
+ 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 TEENSY3_x/PWM/chconf.h
+ * @file 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.
@@ -25,11 +25,11 @@ * @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
+#ifndef CHCONF_H
+#define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -59,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -82,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -95,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -104,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -123,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -141,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -149,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -158,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -166,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -177,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -185,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -195,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -205,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -215,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -223,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -233,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -242,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -253,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -263,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -272,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -284,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -293,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -304,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -320,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -329,7 +472,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 TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -338,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_CHECKS FALSE
+#if !defined(CH_DBG_ENABLE_CHECKS)
+#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -348,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_ASSERTS FALSE
+#if !defined(CH_DBG_ENABLE_ASSERTS)
+#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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_ENABLE_TRACE FALSE
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -369,7 +528,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 FALSE
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
+#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -379,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_FILL_THREADS FALSE
+#if !defined(CH_DBG_FILL_THREADS)
+#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -390,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -402,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -410,9 +591,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) { \
@@ -422,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -460,6 +637,7 @@ * @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -469,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -512,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/KINETIS/TEENSY3_x/PWM/halconf_community.h b/testhal/KINETIS/TEENSY3_x/PWM/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/KINETIS/TEENSY3_x/PWM/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/KINETIS/TEENSY3_x/SERIAL/Makefile b/testhal/KINETIS/TEENSY3_x/SERIAL/Makefile index 6510052..eee81be 100644 --- a/testhal/KINETIS/TEENSY3_x/SERIAL/Makefile +++ b/testhal/KINETIS/TEENSY3_x/SERIAL/Makefile @@ -30,7 +30,7 @@ endif # Enable this if you want link time optimizations (LTO) ifeq ($(USE_LTO),) - USE_LTO = no + USE_LTO = yes endif # If enabled, this option allows to compile the application in THUMB mode. @@ -86,8 +86,10 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib +# Licensing files. +include $(CHIBIOS)/os/license/license.mk # Startup files. include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_k20x7.mk # HAL-OSAL files (optional). @@ -105,19 +107,13 @@ LDSCRIPT= $(STARTUPLD)/MK20DX256.ld # C sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CSRC = $(STARTUPSRC) \ - $(KERNSRC) \ - $(PORTSRC) \ - $(OSALSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ +CSRC = $(ALLCSRC) \ $(TESTSRC) \ main.c # C++ sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CPPSRC = +CPPSRC = $(ALLCPPSRC) # C sources to be compiled in ARM mode regardless of the global setting. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler @@ -140,13 +136,11 @@ TCSRC = TCPPSRC = # List ASM source files here -ASMSRC = -ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) +ASMSRC = $(ALLASMSRC) +ASMXSRC = $(ALLXASMSRC) -INCDIR = $(CHIBIOS)/os/license \ - $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ - $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ - $(CHIBIOS)/os/various +INCDIR = $(ALLINC) $(TESTINC) \ + $(TESTHAL) # # Project, sources and paths diff --git a/testhal/KINETIS/TEENSY3_x/SERIAL/chconf.h b/testhal/KINETIS/TEENSY3_x/SERIAL/chconf.h index 27ed81c..1750f63 100644 --- a/testhal/KINETIS/TEENSY3_x/SERIAL/chconf.h +++ b/testhal/KINETIS/TEENSY3_x/SERIAL/chconf.h @@ -1,5 +1,5 @@ /*
- ChibiOS - (C) 2015 RedoX https://github.com/RedoXyde
+ 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,19 +15,21 @@ */
/**
- * @file TEENSY3_x/SERIAL/chconf.h
- * @brief Configuration file.
+ * @file 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.
*
* @addtogroup config
* @details Kernel related settings and hooks.
* @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
+#ifndef CHCONF_H
+#define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -40,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -57,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -80,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -93,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -102,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -121,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -139,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -147,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -156,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -164,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -175,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -183,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -193,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -203,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -213,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -221,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -231,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -240,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -251,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -261,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -270,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -282,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -291,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -302,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -318,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -327,7 +472,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 TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -336,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_CHECKS FALSE
+#if !defined(CH_DBG_ENABLE_CHECKS)
+#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -346,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_ASSERTS FALSE
+#if !defined(CH_DBG_ENABLE_ASSERTS)
+#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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_ENABLE_TRACE FALSE
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -367,7 +528,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 FALSE
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
+#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -377,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_FILL_THREADS FALSE
+#if !defined(CH_DBG_FILL_THREADS)
+#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -388,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -400,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -408,9 +591,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) { \
@@ -420,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -458,6 +637,7 @@ * @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -467,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -510,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/KINETIS/TEENSY3_x/SERIAL/halconf_community.h b/testhal/KINETIS/TEENSY3_x/SERIAL/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/KINETIS/TEENSY3_x/SERIAL/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/KINETIS/TEENSY3_x/USB_SERIAL/Makefile b/testhal/KINETIS/TEENSY3_x/USB_SERIAL/Makefile index 055c3dc..4273fc6 100644 --- a/testhal/KINETIS/TEENSY3_x/USB_SERIAL/Makefile +++ b/testhal/KINETIS/TEENSY3_x/USB_SERIAL/Makefile @@ -1,225 +1,219 @@ -##############################################################################
-# Build global options
-# NOTE: Can be overridden externally.
-#
-
-# Compiler options here.
-ifeq ($(USE_OPT),)
- USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16
-endif
-
-# C specific options here (added to USE_OPT).
-ifeq ($(USE_COPT),)
- USE_COPT =
-endif
-
-# C++ specific options here (added to USE_OPT).
-ifeq ($(USE_CPPOPT),)
- USE_CPPOPT = -fno-rtti
-endif
-
-# Enable this if you want the linker to remove unused code and data
-ifeq ($(USE_LINK_GC),)
- USE_LINK_GC = yes
-endif
-
-# Linker extra options here.
-ifeq ($(USE_LDOPT),)
- USE_LDOPT =
-endif
-
-# Enable this if you want link time optimizations (LTO)
-ifeq ($(USE_LTO),)
- USE_LTO = no
-endif
-
-# If enabled, this option allows to compile the application in THUMB mode.
-ifeq ($(USE_THUMB),)
- USE_THUMB = yes
-endif
-
-# Enable this if you want to see the full log while compiling.
-ifeq ($(USE_VERBOSE_COMPILE),)
- USE_VERBOSE_COMPILE = no
-endif
-
-# If enabled, this option makes the build process faster by not compiling
-# modules not used in the current configuration.
-ifeq ($(USE_SMART_BUILD),)
- USE_SMART_BUILD = yes
-endif
-
-#
-# Build global options
-##############################################################################
-
-##############################################################################
-# Architecture or project specific options
-#
-
-# Stack size to be allocated to the Cortex-M process stack. This stack is
-# the stack used by the main() thread.
-ifeq ($(USE_PROCESS_STACKSIZE),)
- USE_PROCESS_STACKSIZE = 0x200
-endif
-
-# Stack size to the allocated to the Cortex-M main/exceptions stack. This
-# stack is used for processing interrupts and exceptions.
-ifeq ($(USE_EXCEPTIONS_STACKSIZE),)
- USE_EXCEPTIONS_STACKSIZE = 0x400
-endif
-
-# Enables the use of FPU on Cortex-M4 (no, softfp, hard).
-ifeq ($(USE_FPU),)
- USE_FPU = no
-endif
-
-#
-# Architecture or project specific options
-##############################################################################
-
-##############################################################################
-# Project, sources and paths
-#
-
-# Define project name here
-PROJECT = ch
-
-# Imported source files and paths
-CHIBIOS = ../../../../../ChibiOS-RT
-CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
-# Startup files.
-include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_k20x7.mk
-# HAL-OSAL files (optional).
-include $(CHIBIOS)/os/hal/hal.mk
-include $(CHIBIOS_CONTRIB)/os/hal/ports/KINETIS/K20x/platform.mk
-include $(CHIBIOS_CONTRIB)/os/hal/boards/PJRC_TEENSY_3_1/board.mk
-include $(CHIBIOS)/os/hal/osal/rt/osal.mk
-# RTOS files (optional).
-include $(CHIBIOS)/os/rt/rt.mk
-include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v7m.mk
-# Other files (optional).
-include $(CHIBIOS)/test/rt/test.mk
-include $(CHIBIOS)/os/hal/lib/streams/streams.mk
-include $(CHIBIOS)/os/various/shell/shell.mk
-
-# Define linker script file here
-LDSCRIPT= $(STARTUPLD)/MK20DX256.ld
-
-# C sources that can be compiled in ARM or THUMB mode depending on the global
-# setting.
-CSRC = $(STARTUPSRC) \
- $(KERNSRC) \
- $(PORTSRC) \
- $(OSALSRC) \
- $(HALSRC) \
- $(PLATFORMSRC) \
- $(BOARDSRC) \
- $(TESTSRC) \
- $(STREAMSSRC) \
- $(SHELLSRC) \
- usbcfg.c \
- main.c \
-
-# C++ sources that can be compiled in ARM or THUMB mode depending on the global
-# setting.
-CPPSRC =
-
-# C sources to be compiled in ARM mode regardless of the global setting.
-# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
-# option that results in lower performance and larger code size.
-ACSRC =
-
-# C++ sources to be compiled in ARM mode regardless of the global setting.
-# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
-# option that results in lower performance and larger code size.
-ACPPSRC =
-
-# C sources to be compiled in THUMB mode regardless of the global setting.
-# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
-# option that results in lower performance and larger code size.
-TCSRC =
-
-# C sources to be compiled in THUMB mode regardless of the global setting.
-# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
-# option that results in lower performance and larger code size.
-TCPPSRC =
-
-# List ASM source files here
-ASMSRC =
-ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
-
-INCDIR = $(CHIBIOS)/os/license \
- $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
- $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
- $(STREAMSINC) $(SHELLINC)
-
-#
-# Project, sources and paths
-##############################################################################
-
-##############################################################################
-# Compiler settings
-#
-
-MCU = cortex-m4
-
-#TRGT = arm-elf-
-TRGT = arm-none-eabi-
-CC = $(TRGT)gcc
-CPPC = $(TRGT)g++
-# Enable loading with g++ only if you need C++ runtime support.
-# NOTE: You can use C++ even without C++ support if you are careful. C++
-# runtime support makes code size explode.
-LD = $(TRGT)gcc
-#LD = $(TRGT)g++
-CP = $(TRGT)objcopy
-AS = $(TRGT)gcc -x assembler-with-cpp
-AR = $(TRGT)ar
-OD = $(TRGT)objdump
-SZ = $(TRGT)size
-HEX = $(CP) -O ihex
-BIN = $(CP) -O binary
-SREC = $(CP) -O srec
-
-# ARM-specific options here
-AOPT =
-
-# THUMB-specific options here
-TOPT = -mthumb -DTHUMB
-
-# Define C warning options here
-CWARN = -Wall -Wextra -Wundef -Wstrict-prototypes
-
-# Define C++ warning options here
-CPPWARN = -Wall -Wextra -Wundef
-
-#
-# Compiler settings
-##############################################################################
-
-##############################################################################
-# Start of user section
-#
-
-# List all user C define here, like -D_DEBUG=1
-UDEFS =
-
-# Define ASM defines here
-UADEFS =
-
-# List all user directories here
-UINCDIR =
-
-# List the user directory to look for the libraries here
-ULIBDIR =
-
-# List all user libraries here
-ULIBS =
-
-#
-# End of user defines
-##############################################################################
-
-RULESPATH = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC
-include $(RULESPATH)/rules.mk
+############################################################################## +# Build global options +# NOTE: Can be overridden externally. +# + +# Compiler options here. +ifeq ($(USE_OPT),) + USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16 +endif + +# C specific options here (added to USE_OPT). +ifeq ($(USE_COPT),) + USE_COPT = +endif + +# C++ specific options here (added to USE_OPT). +ifeq ($(USE_CPPOPT),) + USE_CPPOPT = -fno-rtti +endif + +# Enable this if you want the linker to remove unused code and data +ifeq ($(USE_LINK_GC),) + USE_LINK_GC = yes +endif + +# Linker extra options here. +ifeq ($(USE_LDOPT),) + USE_LDOPT = +endif + +# Enable this if you want link time optimizations (LTO) +ifeq ($(USE_LTO),) + USE_LTO = yes +endif + +# If enabled, this option allows to compile the application in THUMB mode. +ifeq ($(USE_THUMB),) + USE_THUMB = yes +endif + +# Enable this if you want to see the full log while compiling. +ifeq ($(USE_VERBOSE_COMPILE),) + USE_VERBOSE_COMPILE = no +endif + +# If enabled, this option makes the build process faster by not compiling +# modules not used in the current configuration. +ifeq ($(USE_SMART_BUILD),) + USE_SMART_BUILD = yes +endif + +# +# Build global options +############################################################################## + +############################################################################## +# Architecture or project specific options +# + +# Stack size to be allocated to the Cortex-M process stack. This stack is +# the stack used by the main() thread. +ifeq ($(USE_PROCESS_STACKSIZE),) + USE_PROCESS_STACKSIZE = 0x200 +endif + +# Stack size to the allocated to the Cortex-M main/exceptions stack. This +# stack is used for processing interrupts and exceptions. +ifeq ($(USE_EXCEPTIONS_STACKSIZE),) + USE_EXCEPTIONS_STACKSIZE = 0x400 +endif + +# Enables the use of FPU on Cortex-M4 (no, softfp, hard). +ifeq ($(USE_FPU),) + USE_FPU = no +endif + +# +# Architecture or project specific options +############################################################################## + +############################################################################## +# Project, sources and paths +# + +# Define project name here +PROJECT = ch + +# Imported source files and paths +CHIBIOS = ../../../../../ChibiOS +CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib +# Licensing files. +include $(CHIBIOS)/os/license/license.mk +# Startup files. +include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_k20x7.mk +# HAL-OSAL files (optional). +include $(CHIBIOS)/os/hal/hal.mk +include $(CHIBIOS_CONTRIB)/os/hal/ports/KINETIS/K20x/platform.mk +include $(CHIBIOS_CONTRIB)/os/hal/boards/PJRC_TEENSY_3_1/board.mk +include $(CHIBIOS)/os/hal/osal/rt/osal.mk +# RTOS files (optional). +include $(CHIBIOS)/os/rt/rt.mk +include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v7m.mk +# Other files (optional). +include $(CHIBIOS)/test/lib/test.mk +include $(CHIBIOS)/test/rt/rt_test.mk +include $(CHIBIOS)/test/oslib/oslib_test.mk +include $(CHIBIOS)/os/hal/lib/streams/streams.mk +include $(CHIBIOS)/os/various/shell/shell.mk + +# Define linker script file here +LDSCRIPT= $(STARTUPLD)/MK20DX256.ld + +# C sources that can be compiled in ARM or THUMB mode depending on the global +# setting. +CSRC = $(ALLCSRC) \ + $(TESTSRC) \ + usbcfg.c \ + main.c + +# C++ sources that can be compiled in ARM or THUMB mode depending on the global +# setting. +CPPSRC = $(ALLCPPSRC) + +# C sources to be compiled in ARM mode regardless of the global setting. +# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler +# option that results in lower performance and larger code size. +ACSRC = + +# C++ sources to be compiled in ARM mode regardless of the global setting. +# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler +# option that results in lower performance and larger code size. +ACPPSRC = + +# C sources to be compiled in THUMB mode regardless of the global setting. +# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler +# option that results in lower performance and larger code size. +TCSRC = + +# C sources to be compiled in THUMB mode regardless of the global setting. +# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler +# option that results in lower performance and larger code size. +TCPPSRC = + +# List ASM source files here +ASMSRC = $(ALLASMSRC) +ASMXSRC = $(ALLXASMSRC) + +INCDIR = $(ALLINC) $(TESTINC) \ + $(TESTHAL) + +# +# Project, sources and paths +############################################################################## + +############################################################################## +# Compiler settings +# + +MCU = cortex-m4 + +#TRGT = arm-elf- +TRGT = arm-none-eabi- +CC = $(TRGT)gcc +CPPC = $(TRGT)g++ +# Enable loading with g++ only if you need C++ runtime support. +# NOTE: You can use C++ even without C++ support if you are careful. C++ +# runtime support makes code size explode. +LD = $(TRGT)gcc +#LD = $(TRGT)g++ +CP = $(TRGT)objcopy +AS = $(TRGT)gcc -x assembler-with-cpp +AR = $(TRGT)ar +OD = $(TRGT)objdump +SZ = $(TRGT)size +HEX = $(CP) -O ihex +BIN = $(CP) -O binary +SREC = $(CP) -O srec + +# ARM-specific options here +AOPT = + +# THUMB-specific options here +TOPT = -mthumb -DTHUMB + +# Define C warning options here +CWARN = -Wall -Wextra -Wundef -Wstrict-prototypes + +# Define C++ warning options here +CPPWARN = -Wall -Wextra -Wundef + +# +# Compiler settings +############################################################################## + +############################################################################## +# Start of user section +# + +# List all user C define here, like -D_DEBUG=1 +UDEFS = + +# Define ASM defines here +UADEFS = + +# List all user directories here +UINCDIR = + +# List the user directory to look for the libraries here +ULIBDIR = + +# List all user libraries here +ULIBS = + +# +# End of user defines +############################################################################## + +RULESPATH = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC +include $(RULESPATH)/rules.mk diff --git a/testhal/KINETIS/TEENSY3_x/USB_SERIAL/chconf.h b/testhal/KINETIS/TEENSY3_x/USB_SERIAL/chconf.h index 6dbecb5..1750f63 100644 --- a/testhal/KINETIS/TEENSY3_x/USB_SERIAL/chconf.h +++ b/testhal/KINETIS/TEENSY3_x/USB_SERIAL/chconf.h @@ -1,5 +1,5 @@ /*
- ChibiOS - (C) 2015-2016 flabbergast <s3+flabbergast@sdfeu.org>
+ 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,19 +15,21 @@ */
/**
- * @file TEENSY3_x/USB_SERIAL/chconf.h
- * @brief Configuration file.
+ * @file 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.
*
* @addtogroup config
* @details Kernel related settings and hooks.
* @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
+#ifndef CHCONF_H
+#define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -40,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -57,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -80,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -93,15 +119,20 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
* @details When this option is activated the function @p chSysInit()
* does not spawn the idle thread. The application @p main()
* function becomes the idle thread and must implement an
- * infinite loop. */
+ * infinite loop.
+ */
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -120,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -138,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -146,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -155,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -163,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -174,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -182,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -192,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -202,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -212,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -220,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -230,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -239,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -250,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -260,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -269,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -281,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -290,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -301,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -317,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -326,7 +472,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 TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -335,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_CHECKS FALSE
+#if !defined(CH_DBG_ENABLE_CHECKS)
+#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -345,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_ASSERTS FALSE
+#if !defined(CH_DBG_ENABLE_ASSERTS)
+#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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_ENABLE_TRACE FALSE
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -366,7 +528,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 FALSE
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
+#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -376,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_FILL_THREADS FALSE
+#if !defined(CH_DBG_FILL_THREADS)
+#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -387,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -399,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -407,9 +591,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) { \
@@ -419,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -433,7 +613,7 @@ * @details This hook is invoked just before switching between threads.
*/
#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \
- /* System halt code here.*/ \
+ /* Context switch code here.*/ \
}
/**
@@ -456,7 +636,8 @@ * should be invoked from here.
* @note This macro can be used to activate a power saving mode.
*/
-#define CH_CFG_IDLE_ENTER_HOOK() { \
+#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -465,7 +646,8 @@ * should be invoked from here.
* @note This macro can be used to deactivate a power saving mode.
*/
-#define CH_CFG_IDLE_LEAVE_HOOK() { \
+#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -509,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/KINETIS/TEENSY3_x/USB_SERIAL/halconf_community.h b/testhal/KINETIS/TEENSY3_x/USB_SERIAL/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/KINETIS/TEENSY3_x/USB_SERIAL/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/KINETIS/TEENSY_LC/BOOTLOADER/Makefile b/testhal/KINETIS/TEENSY_LC/BOOTLOADER/Makefile index f868337..ba07396 100644 --- a/testhal/KINETIS/TEENSY_LC/BOOTLOADER/Makefile +++ b/testhal/KINETIS/TEENSY_LC/BOOTLOADER/Makefile @@ -5,7 +5,7 @@ # Compiler options here. ifeq ($(USE_OPT),) - USE_OPT = -O0 -ggdb -fomit-frame-pointer -falign-functions=16 + USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16 endif # C specific options here (added to USE_OPT). @@ -30,7 +30,7 @@ endif # Enable this if you want link time optimizations (LTO) ifeq ($(USE_LTO),) - USE_LTO = no + USE_LTO = yes endif # If enabled, this option allows to compile the application in THUMB mode. @@ -69,6 +69,11 @@ ifeq ($(USE_EXCEPTIONS_STACKSIZE),) USE_EXCEPTIONS_STACKSIZE = 0x400 endif +# Enables the use of FPU on Cortex-M4 (no, softfp, hard). +ifeq ($(USE_FPU),) + USE_FPU = no +endif + # # Architecture or project specific options ############################################################################## @@ -81,8 +86,10 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib +# Licensing files. +include $(CHIBIOS)/os/license/license.mk # Startup files. include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_kl2x.mk # HAL-OSAL files (optional). @@ -100,18 +107,13 @@ LDSCRIPT= $(STARTUPLD)/MKL26Z64.ld # C sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CSRC = $(STARTUPSRC) \ - $(KERNSRC) \ - $(PORTSRC) \ - $(OSALSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ +CSRC = $(ALLCSRC) \ + $(TESTSRC) \ main.c # C++ sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CPPSRC = +CPPSRC = $(ALLCPPSRC) # C sources to be compiled in ARM mode regardless of the global setting. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler @@ -134,13 +136,11 @@ TCSRC = TCPPSRC = # List ASM source files here -ASMSRC = -ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) +ASMSRC = $(ALLASMSRC) +ASMXSRC = $(ALLXASMSRC) -INCDIR = $(CHIBIOS)/os/license \ - $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ - $(HALINC) $(PLATFORMINC) $(BOARDINC) \ - $(CHIBIOS)/os/various +INCDIR = $(ALLINC) $(TESTINC) \ + $(TESTHAL) # # Project, sources and paths diff --git a/testhal/KINETIS/TEENSY_LC/BOOTLOADER/chconf.h b/testhal/KINETIS/TEENSY_LC/BOOTLOADER/chconf.h index f0c238c..1750f63 100644 --- a/testhal/KINETIS/TEENSY_LC/BOOTLOADER/chconf.h +++ b/testhal/KINETIS/TEENSY_LC/BOOTLOADER/chconf.h @@ -1,5 +1,5 @@ /*
- ChibiOS - (C) 2015-2016 flabbergast <s3+flabbergast@sdfeu.org>
+ 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,19 +15,21 @@ */
/**
- * @file TEENSY_LC/BOOTLOADER/chconf.h
- * @brief Configuration file.
+ * @file 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.
*
* @addtogroup config
* @details Kernel related settings and hooks.
* @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
+#ifndef CHCONF_H
+#define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -40,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -57,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -80,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -93,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -102,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -121,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -139,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -147,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -156,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -164,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -175,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
-#define CH_CFG_USE_SEMAPHORES_PRIORITY TRUE
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
+#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -183,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -193,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -203,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -213,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -221,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -231,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -240,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -251,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -261,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -270,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -282,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -291,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -302,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -318,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -327,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -336,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -346,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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_ENABLE_TRACE TRUE
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -367,7 +528,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -377,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -388,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -400,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -408,9 +591,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) { \
@@ -420,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -458,6 +637,7 @@ * @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -467,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -510,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/KINETIS/TEENSY_LC/BOOTLOADER/halconf_community.h b/testhal/KINETIS/TEENSY_LC/BOOTLOADER/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/KINETIS/TEENSY_LC/BOOTLOADER/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/KINETIS/TEENSY_LC/EEPROM_EMU/Makefile b/testhal/KINETIS/TEENSY_LC/EEPROM_EMU/Makefile index a9534fc..79b377a 100644 --- a/testhal/KINETIS/TEENSY_LC/EEPROM_EMU/Makefile +++ b/testhal/KINETIS/TEENSY_LC/EEPROM_EMU/Makefile @@ -5,7 +5,7 @@ # Compiler options here. ifeq ($(USE_OPT),) - USE_OPT = -O0 -ggdb -fomit-frame-pointer -falign-functions=16 + USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16 endif # C specific options here (added to USE_OPT). @@ -30,7 +30,7 @@ endif # Enable this if you want link time optimizations (LTO) ifeq ($(USE_LTO),) - USE_LTO = no + USE_LTO = yes endif # If enabled, this option allows to compile the application in THUMB mode. @@ -69,6 +69,11 @@ ifeq ($(USE_EXCEPTIONS_STACKSIZE),) USE_EXCEPTIONS_STACKSIZE = 0x400 endif +# Enables the use of FPU on Cortex-M4 (no, softfp, hard). +ifeq ($(USE_FPU),) + USE_FPU = no +endif + # # Architecture or project specific options ############################################################################## @@ -81,8 +86,10 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib +# Licensing files. +include $(CHIBIOS)/os/license/license.mk # Startup files. include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_kl2x.mk # HAL-OSAL files (optional). @@ -96,23 +103,18 @@ include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v6m.mk # Other files (optional). # Define linker script file here -LDSCRIPT = MKL26Z64.ld +LDSCRIPT= MKL26Z64.ld # C sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CSRC = $(STARTUPSRC) \ - $(KERNSRC) \ - $(PORTSRC) \ - $(OSALSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ +CSRC = $(ALLCSRC) \ + $(TESTSRC) \ eeprom.c \ main.c # C++ sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CPPSRC = +CPPSRC = $(ALLCPPSRC) # C sources to be compiled in ARM mode regardless of the global setting. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler @@ -135,13 +137,11 @@ TCSRC = TCPPSRC = # List ASM source files here -ASMSRC = -ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) +ASMSRC = $(ALLASMSRC) +ASMXSRC = $(ALLXASMSRC) -INCDIR = $(CHIBIOS)/os/license \ - $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ - $(HALINC) $(PLATFORMINC) $(BOARDINC) \ - $(CHIBIOS)/os/various +INCDIR = $(ALLINC) $(TESTINC) \ + $(TESTHAL) # # Project, sources and paths diff --git a/testhal/KINETIS/TEENSY_LC/EEPROM_EMU/chconf.h b/testhal/KINETIS/TEENSY_LC/EEPROM_EMU/chconf.h index 97c98b7..1750f63 100644 --- a/testhal/KINETIS/TEENSY_LC/EEPROM_EMU/chconf.h +++ b/testhal/KINETIS/TEENSY_LC/EEPROM_EMU/chconf.h @@ -1,5 +1,5 @@ /*
- ChibiOS - (C) 2015-2016 flabbergast <s3+flabbergast@sdfeu.org>
+ 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,19 +15,21 @@ */
/**
- * @file TEENSY_LC/EEPROM_EMU/chconf.h
- * @brief Configuration file.
+ * @file 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.
*
* @addtogroup config
* @details Kernel related settings and hooks.
* @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
+#ifndef CHCONF_H
+#define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -40,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -57,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -80,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -93,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -102,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -121,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -139,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -147,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -156,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -164,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -175,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
-#define CH_CFG_USE_SEMAPHORES_PRIORITY TRUE
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
+#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -183,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -193,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -203,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -213,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -221,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -231,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -240,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -251,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -261,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -270,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -282,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -291,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -302,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -318,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -327,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -336,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -346,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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_ENABLE_TRACE TRUE
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -367,7 +528,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -377,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -388,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -400,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -408,9 +591,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) { \
@@ -420,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -458,6 +637,7 @@ * @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -467,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -510,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/KINETIS/TEENSY_LC/EEPROM_EMU/halconf_community.h b/testhal/KINETIS/TEENSY_LC/EEPROM_EMU/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/KINETIS/TEENSY_LC/EEPROM_EMU/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/KINETIS/TEENSY_LC/PWM/Makefile b/testhal/KINETIS/TEENSY_LC/PWM/Makefile index f868337..ba07396 100644 --- a/testhal/KINETIS/TEENSY_LC/PWM/Makefile +++ b/testhal/KINETIS/TEENSY_LC/PWM/Makefile @@ -5,7 +5,7 @@ # Compiler options here. ifeq ($(USE_OPT),) - USE_OPT = -O0 -ggdb -fomit-frame-pointer -falign-functions=16 + USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16 endif # C specific options here (added to USE_OPT). @@ -30,7 +30,7 @@ endif # Enable this if you want link time optimizations (LTO) ifeq ($(USE_LTO),) - USE_LTO = no + USE_LTO = yes endif # If enabled, this option allows to compile the application in THUMB mode. @@ -69,6 +69,11 @@ ifeq ($(USE_EXCEPTIONS_STACKSIZE),) USE_EXCEPTIONS_STACKSIZE = 0x400 endif +# Enables the use of FPU on Cortex-M4 (no, softfp, hard). +ifeq ($(USE_FPU),) + USE_FPU = no +endif + # # Architecture or project specific options ############################################################################## @@ -81,8 +86,10 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib +# Licensing files. +include $(CHIBIOS)/os/license/license.mk # Startup files. include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_kl2x.mk # HAL-OSAL files (optional). @@ -100,18 +107,13 @@ LDSCRIPT= $(STARTUPLD)/MKL26Z64.ld # C sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CSRC = $(STARTUPSRC) \ - $(KERNSRC) \ - $(PORTSRC) \ - $(OSALSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ +CSRC = $(ALLCSRC) \ + $(TESTSRC) \ main.c # C++ sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CPPSRC = +CPPSRC = $(ALLCPPSRC) # C sources to be compiled in ARM mode regardless of the global setting. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler @@ -134,13 +136,11 @@ TCSRC = TCPPSRC = # List ASM source files here -ASMSRC = -ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) +ASMSRC = $(ALLASMSRC) +ASMXSRC = $(ALLXASMSRC) -INCDIR = $(CHIBIOS)/os/license \ - $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ - $(HALINC) $(PLATFORMINC) $(BOARDINC) \ - $(CHIBIOS)/os/various +INCDIR = $(ALLINC) $(TESTINC) \ + $(TESTHAL) # # Project, sources and paths diff --git a/testhal/KINETIS/TEENSY_LC/PWM/chconf.h b/testhal/KINETIS/TEENSY_LC/PWM/chconf.h index d910706..1750f63 100644 --- a/testhal/KINETIS/TEENSY_LC/PWM/chconf.h +++ b/testhal/KINETIS/TEENSY_LC/PWM/chconf.h @@ -1,5 +1,5 @@ /*
- ChibiOS - (C) 2015-2016 flabbergast <s3+flabbergast@sdfeu.org>
+ 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,19 +15,21 @@ */
/**
- * @file TEENSY_LC/PWM/chconf.h
- * @brief Configuration file.
+ * @file 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.
*
* @addtogroup config
* @details Kernel related settings and hooks.
* @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
+#ifndef CHCONF_H
+#define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -40,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -57,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -80,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -93,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -102,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -121,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -139,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -147,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -156,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -164,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -175,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -183,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -193,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -203,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -213,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -221,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -231,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -240,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -251,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -261,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -270,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -282,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -291,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -302,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -318,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -327,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -336,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -346,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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_ENABLE_TRACE TRUE
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -367,7 +528,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -377,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -388,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -400,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -408,9 +591,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) { \
@@ -420,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -458,6 +637,7 @@ * @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -467,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -510,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/KINETIS/TEENSY_LC/PWM/halconf_community.h b/testhal/KINETIS/TEENSY_LC/PWM/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/KINETIS/TEENSY_LC/PWM/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/MSP430X/EXP430FR5969/ADC/Makefile b/testhal/MSP430X/EXP430FR5969/ADC/Makefile index 89c32e0..0169cb1 100644 --- a/testhal/MSP430X/EXP430FR5969/ADC/Makefile +++ b/testhal/MSP430X/EXP430FR5969/ADC/Makefile @@ -100,7 +100,7 @@ endif PROJECT = nil
# Imported source files and paths
-CHIBIOS = ../../../../../ChibiOS-RT
+CHIBIOS = ../../../../../ChibiOS
CHIBIOS_CONTRIB = ../../../..
# Startup files.
include $(CHIBIOS_CONTRIB)/os/common/startup/MSP430X/compilers/GCC/mk/startup_msp430fr5xxx.mk
diff --git a/testhal/MSP430X/EXP430FR5969/DMA/Makefile b/testhal/MSP430X/EXP430FR5969/DMA/Makefile index cf81f18..5fe3473 100644 --- a/testhal/MSP430X/EXP430FR5969/DMA/Makefile +++ b/testhal/MSP430X/EXP430FR5969/DMA/Makefile @@ -100,7 +100,7 @@ endif PROJECT = nil
# Imported source files and paths
-CHIBIOS = ../../../../../ChibiOS-RT
+CHIBIOS = ../../../../../ChibiOS
CHIBIOS_CONTRIB = ../../../..
# Startup files.
include $(CHIBIOS_CONTRIB)/os/common/startup/MSP430X/compilers/GCC/mk/startup_msp430fr5xxx.mk
diff --git a/testhal/MSP430X/EXP430FR5969/SPI/Makefile b/testhal/MSP430X/EXP430FR5969/SPI/Makefile index cf81f18..5fe3473 100644 --- a/testhal/MSP430X/EXP430FR5969/SPI/Makefile +++ b/testhal/MSP430X/EXP430FR5969/SPI/Makefile @@ -100,7 +100,7 @@ endif PROJECT = nil
# Imported source files and paths
-CHIBIOS = ../../../../../ChibiOS-RT
+CHIBIOS = ../../../../../ChibiOS
CHIBIOS_CONTRIB = ../../../..
# Startup files.
include $(CHIBIOS_CONTRIB)/os/common/startup/MSP430X/compilers/GCC/mk/startup_msp430fr5xxx.mk
diff --git a/testhal/MSP430X/EXP430FR6989/ADC/Makefile b/testhal/MSP430X/EXP430FR6989/ADC/Makefile index b86021e..e79020d 100644 --- a/testhal/MSP430X/EXP430FR6989/ADC/Makefile +++ b/testhal/MSP430X/EXP430FR6989/ADC/Makefile @@ -100,7 +100,7 @@ endif PROJECT = nil
# Imported source files and paths
-CHIBIOS = ../../../../../ChibiOS-RT
+CHIBIOS = ../../../../../ChibiOS
CHIBIOS_CONTRIB = ../../../..
# Startup files.
include $(CHIBIOS_CONTRIB)/os/common/startup/MSP430X/compilers/GCC/mk/startup_msp430fr5xxx.mk
diff --git a/testhal/NRF51/NRF51822/ADC/Makefile b/testhal/NRF51/NRF51822/ADC/Makefile index 9024eb1..8ee59f9 100644 --- a/testhal/NRF51/NRF51822/ADC/Makefile +++ b/testhal/NRF51/NRF51822/ADC/Makefile @@ -81,8 +81,10 @@ endif PROJECT = ch
# Imported source files and paths
-CHIBIOS = ../../../../../ChibiOS-RT
+CHIBIOS = ../../../../../ChibiOS
CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
+# Licensing files.
+include $(CHIBIOS)/os/license/license.mk
# Startup files.
include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_nrf51.mk
# HAL-OSAL files (optional).
@@ -94,26 +96,20 @@ include $(CHIBIOS)/os/hal/osal/rt/osal.mk include $(CHIBIOS)/os/rt/rt.mk
include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v6m.mk
# Other files (optional).
-include $(CHIBIOS)/test/rt/test.mk
+#include $(CHIBIOS)/test/rt/test.mk
# Define linker script file here
LDSCRIPT= $(STARTUPLD)/NRF51822.ld
# C sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CSRC = $(STARTUPSRC) \
- $(KERNSRC) \
- $(PORTSRC) \
- $(OSALSRC) \
- $(HALSRC) \
- $(PLATFORMSRC) \
- $(BOARDSRC) \
+CSRC = $(ALLCSRC) \
$(TESTSRC) \
main.c
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CPPSRC =
+CPPSRC = $(ALLCPPSRC)
# C sources to be compiled in ARM mode regardless of the global setting.
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
@@ -136,11 +132,11 @@ TCSRC = TCPPSRC =
# List ASM source files here
-ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
+ASMSRC = $(ALLASMSRC)
+ASMXSRC = $(ALLXASMSRC)
-INCDIR = $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
- $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
- $(CHIBIOS)/os/various $(CHIBIOS)/os/license
+INCDIR = $(ALLINC) $(TESTINC) \
+ $(TESTHAL)
#
# Project, sources and paths
diff --git a/testhal/NRF51/NRF51822/ADC/chconf.h b/testhal/NRF51/NRF51822/ADC/chconf.h index 790132e..1750f63 100644 --- a/testhal/NRF51/NRF51822/ADC/chconf.h +++ b/testhal/NRF51/NRF51822/ADC/chconf.h @@ -1,5 +1,5 @@ /*
- Copyright (C) 2015 Stephen Caudle
+ 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.
@@ -25,11 +25,11 @@ * @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
+#ifndef CHCONF_H
+#define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -59,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -82,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -95,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -104,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -123,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -141,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -149,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -158,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -166,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -177,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -185,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -195,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -205,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -215,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -223,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -233,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -242,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -253,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -263,15 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
-
-/**
- * @brief I/O Queues APIs.
- * @details If enabled then the I/O queues APIs are included in the kernel.
- *
- * @note The default is @p TRUE.
- */
-#define CH_CFG_USE_QUEUES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -280,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -292,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -301,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -312,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -328,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -337,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -346,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -356,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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_ENABLE_TRACE TRUE
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -377,7 +528,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -387,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -398,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -410,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -418,9 +591,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) { \
@@ -430,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -468,6 +637,7 @@ * @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -477,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -520,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/NRF51/NRF51822/ADC/halconf_community.h b/testhal/NRF51/NRF51822/ADC/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/NRF51/NRF51822/ADC/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/NRF51/NRF51822/GPT/Makefile b/testhal/NRF51/NRF51822/GPT/Makefile index 9024eb1..8ee59f9 100644 --- a/testhal/NRF51/NRF51822/GPT/Makefile +++ b/testhal/NRF51/NRF51822/GPT/Makefile @@ -81,8 +81,10 @@ endif PROJECT = ch
# Imported source files and paths
-CHIBIOS = ../../../../../ChibiOS-RT
+CHIBIOS = ../../../../../ChibiOS
CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
+# Licensing files.
+include $(CHIBIOS)/os/license/license.mk
# Startup files.
include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_nrf51.mk
# HAL-OSAL files (optional).
@@ -94,26 +96,20 @@ include $(CHIBIOS)/os/hal/osal/rt/osal.mk include $(CHIBIOS)/os/rt/rt.mk
include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v6m.mk
# Other files (optional).
-include $(CHIBIOS)/test/rt/test.mk
+#include $(CHIBIOS)/test/rt/test.mk
# Define linker script file here
LDSCRIPT= $(STARTUPLD)/NRF51822.ld
# C sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CSRC = $(STARTUPSRC) \
- $(KERNSRC) \
- $(PORTSRC) \
- $(OSALSRC) \
- $(HALSRC) \
- $(PLATFORMSRC) \
- $(BOARDSRC) \
+CSRC = $(ALLCSRC) \
$(TESTSRC) \
main.c
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CPPSRC =
+CPPSRC = $(ALLCPPSRC)
# C sources to be compiled in ARM mode regardless of the global setting.
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
@@ -136,11 +132,11 @@ TCSRC = TCPPSRC =
# List ASM source files here
-ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
+ASMSRC = $(ALLASMSRC)
+ASMXSRC = $(ALLXASMSRC)
-INCDIR = $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
- $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
- $(CHIBIOS)/os/various $(CHIBIOS)/os/license
+INCDIR = $(ALLINC) $(TESTINC) \
+ $(TESTHAL)
#
# Project, sources and paths
diff --git a/testhal/NRF51/NRF51822/GPT/chconf.h b/testhal/NRF51/NRF51822/GPT/chconf.h index 790132e..1750f63 100644 --- a/testhal/NRF51/NRF51822/GPT/chconf.h +++ b/testhal/NRF51/NRF51822/GPT/chconf.h @@ -1,5 +1,5 @@ /*
- Copyright (C) 2015 Stephen Caudle
+ 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.
@@ -25,11 +25,11 @@ * @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
+#ifndef CHCONF_H
+#define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -59,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -82,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -95,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -104,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -123,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -141,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -149,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -158,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -166,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -177,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -185,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -195,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -205,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -215,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -223,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -233,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -242,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -253,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -263,15 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
-
-/**
- * @brief I/O Queues APIs.
- * @details If enabled then the I/O queues APIs are included in the kernel.
- *
- * @note The default is @p TRUE.
- */
-#define CH_CFG_USE_QUEUES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -280,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -292,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -301,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -312,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -328,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -337,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -346,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -356,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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_ENABLE_TRACE TRUE
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -377,7 +528,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -387,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -398,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -410,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -418,9 +591,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) { \
@@ -430,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -468,6 +637,7 @@ * @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -477,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -520,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/NRF51/NRF51822/GPT/halconf_community.h b/testhal/NRF51/NRF51822/GPT/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/NRF51/NRF51822/GPT/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/NRF51/NRF51822/I2C/Makefile b/testhal/NRF51/NRF51822/I2C/Makefile index 21c415a..ce37f2f 100644 --- a/testhal/NRF51/NRF51822/I2C/Makefile +++ b/testhal/NRF51/NRF51822/I2C/Makefile @@ -80,8 +80,10 @@ endif PROJECT = ch
# Imported source files and paths
-CHIBIOS = ../../../../../ChibiOS-RT
+CHIBIOS = ../../../../../ChibiOS
CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
+# Licensing files.
+include $(CHIBIOS)/os/license/license.mk
# Startup files.
include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_nrf51.mk
# HAL-OSAL files (optional).
@@ -93,26 +95,20 @@ include $(CHIBIOS)/os/hal/osal/rt/osal.mk include $(CHIBIOS)/os/rt/rt.mk
include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v6m.mk
# Other files (optional).
-include $(CHIBIOS)/test/rt/test.mk
+#include $(CHIBIOS)/test/rt/test.mk
# Define linker script file here
LDSCRIPT= $(STARTUPLD)/NRF51822.ld
# C sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CSRC = $(STARTUPSRC) \
- $(KERNSRC) \
- $(PORTSRC) \
- $(OSALSRC) \
- $(HALSRC) \
- $(PLATFORMSRC) \
- $(BOARDSRC) \
+CSRC = $(ALLCSRC) \
$(TESTSRC) \
main.c
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CPPSRC =
+CPPSRC = $(ALLCPPSRC)
# C sources to be compiled in ARM mode regardless of the global setting.
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
@@ -135,11 +131,11 @@ TCSRC = TCPPSRC =
# List ASM source files here
-ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
+ASMSRC = $(ALLASMSRC)
+ASMXSRC = $(ALLXASMSRC)
-INCDIR = $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
- $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
- $(CHIBIOS)/os/various $(CHIBIOS)/os/license
+INCDIR = $(ALLINC) $(TESTINC) \
+ $(TESTHAL)
#
# Project, sources and paths
diff --git a/testhal/NRF51/NRF51822/I2C/chconf.h b/testhal/NRF51/NRF51822/I2C/chconf.h index 3f6766a..1750f63 100644 --- a/testhal/NRF51/NRF51822/I2C/chconf.h +++ b/testhal/NRF51/NRF51822/I2C/chconf.h @@ -1,5 +1,5 @@ /*
- Copyright (C) 2015 Stephen Caudle
+ 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.
@@ -25,11 +25,11 @@ * @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
+#ifndef CHCONF_H
+#define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -59,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -82,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -95,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -104,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -123,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -141,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -149,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -158,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -166,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -177,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -185,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -195,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -205,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -215,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -223,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -233,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -242,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
-#define CH_CFG_USE_MESSAGES FALSE
+#if !defined(CH_CFG_USE_MESSAGES)
+#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -253,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -263,15 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
-#define CH_CFG_USE_MAILBOXES FALSE
-
-/**
- * @brief I/O Queues APIs.
- * @details If enabled then the I/O queues APIs are included in the kernel.
- *
- * @note The default is @p TRUE.
- */
-#define CH_CFG_USE_QUEUES FALSE
+#if !defined(CH_CFG_USE_MAILBOXES)
+#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -280,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
-#define CH_CFG_USE_MEMCORE FALSE
+#if !defined(CH_CFG_USE_MEMCORE)
+#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -292,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
-#define CH_CFG_USE_HEAP FALSE
+#if !defined(CH_CFG_USE_HEAP)
+#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -301,7 +355,20 @@ *
* @note The default is @p TRUE.
*/
-#define CH_CFG_USE_MEMPOOLS FALSE
+#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 Dynamic Threads APIs.
@@ -312,7 +379,73 @@ * @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 FALSE
+#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
/** @} */
@@ -328,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -337,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -346,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -356,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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_ENABLE_TRACE TRUE
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -377,7 +528,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -387,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -398,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -410,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -418,9 +591,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) { \
@@ -430,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -468,6 +637,7 @@ * @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -477,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -520,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/NRF51/NRF51822/I2C/halconf_community.h b/testhal/NRF51/NRF51822/I2C/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/NRF51/NRF51822/I2C/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/NRF51/NRF51822/EXT/Makefile b/testhal/NRF51/NRF51822/PAL/Makefile index 21c415a..79e226d 100644 --- a/testhal/NRF51/NRF51822/EXT/Makefile +++ b/testhal/NRF51/NRF51822/PAL/Makefile @@ -43,6 +43,12 @@ ifeq ($(USE_VERBOSE_COMPILE),) USE_VERBOSE_COMPILE = no
endif
+# If enabled, this option makes the build process faster by not compiling
+# modules not used in the current configuration.
+ifeq ($(USE_SMART_BUILD),)
+ USE_SMART_BUILD = yes
+endif
+
#
# Build global options
##############################################################################
@@ -80,8 +86,10 @@ endif PROJECT = ch
# Imported source files and paths
-CHIBIOS = ../../../../../ChibiOS-RT
+CHIBIOS = ../../../../../ChibiOS
CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
+# Licensing files.
+include $(CHIBIOS)/os/license/license.mk
# Startup files.
include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_nrf51.mk
# HAL-OSAL files (optional).
@@ -93,26 +101,20 @@ include $(CHIBIOS)/os/hal/osal/rt/osal.mk include $(CHIBIOS)/os/rt/rt.mk
include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v6m.mk
# Other files (optional).
-include $(CHIBIOS)/test/rt/test.mk
+#include $(CHIBIOS)/test/rt/test.mk
# Define linker script file here
LDSCRIPT= $(STARTUPLD)/NRF51822.ld
# C sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CSRC = $(STARTUPSRC) \
- $(KERNSRC) \
- $(PORTSRC) \
- $(OSALSRC) \
- $(HALSRC) \
- $(PLATFORMSRC) \
- $(BOARDSRC) \
+CSRC = $(ALLCSRC) \
$(TESTSRC) \
main.c
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CPPSRC =
+CPPSRC = $(ALLCPPSRC)
# C sources to be compiled in ARM mode regardless of the global setting.
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
@@ -135,11 +137,11 @@ TCSRC = TCPPSRC =
# List ASM source files here
-ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
+ASMSRC = $(ALLASMSRC)
+ASMXSRC = $(ALLXASMSRC)
-INCDIR = $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
- $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
- $(CHIBIOS)/os/various $(CHIBIOS)/os/license
+INCDIR = $(ALLINC) $(TESTINC) \
+ $(TESTHAL)
#
# Project, sources and paths
diff --git a/testhal/NRF51/NRF51822/EXT/chconf.h b/testhal/NRF51/NRF51822/PAL/chconf.h index eeb3fa3..0ac7be8 100644 --- a/testhal/NRF51/NRF51822/EXT/chconf.h +++ b/testhal/NRF51/NRF51822/PAL/chconf.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2015 Stephen Caudle + 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. @@ -25,11 +25,11 @@ * @{ */ -#ifndef _CHCONF_H_ -#define _CHCONF_H_ +#ifndef CHCONF_H +#define CHCONF_H #define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_5_0_ +#define _CHIBIOS_RT_CONF_VER_5_1_ /*===========================================================================*/ /** @@ -42,14 +42,34 @@ * @brief System time counter resolution. * @note Allowed values are 16 or 32 bits. */ +#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. */ +#if !defined(CH_CFG_ST_FREQUENCY) #define CH_CFG_ST_FREQUENCY 1000 +#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. @@ -59,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to * this value. */ +#if !defined(CH_CFG_ST_TIMEDELTA) #define CH_CFG_ST_TIMEDELTA 0 +#endif /** @} */ @@ -82,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 20 +#if !defined(CH_CFG_TIME_QUANTUM) +#define CH_CFG_TIME_QUANTUM 2 +#endif /** * @brief Managed RAM size. @@ -95,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols. * @note Requires @p CH_CFG_USE_MEMCORE. */ +#if !defined(CH_CFG_MEMCORE_SIZE) #define CH_CFG_MEMCORE_SIZE 0 +#endif /** * @brief Idle thread automatic spawn suppression. @@ -104,7 +130,9 @@ * function becomes the idle thread and must implement an * infinite loop. */ +#if !defined(CH_CFG_NO_IDLE_THREAD) #define CH_CFG_NO_IDLE_THREAD FALSE +#endif /** @} */ @@ -123,7 +151,9 @@ * @note This is not related to the compiler optimization options. * @note The default is @p TRUE. */ +#if !defined(CH_CFG_OPTIMIZE_SPEED) #define CH_CFG_OPTIMIZE_SPEED TRUE +#endif /** @} */ @@ -141,7 +171,9 @@ * * @note The default is @p TRUE. */ +#if !defined(CH_CFG_USE_TM) #define CH_CFG_USE_TM FALSE +#endif /** * @brief Threads registry APIs. @@ -149,7 +181,9 @@ * * @note The default is @p TRUE. */ +#if !defined(CH_CFG_USE_REGISTRY) #define CH_CFG_USE_REGISTRY TRUE +#endif /** * @brief Threads synchronization APIs. @@ -158,7 +192,9 @@ * * @note The default is @p TRUE. */ +#if !defined(CH_CFG_USE_WAITEXIT) #define CH_CFG_USE_WAITEXIT TRUE +#endif /** * @brief Semaphores APIs. @@ -166,7 +202,9 @@ * * @note The default is @p TRUE. */ +#if !defined(CH_CFG_USE_SEMAPHORES) #define CH_CFG_USE_SEMAPHORES TRUE +#endif /** * @brief Semaphores queuing mode. @@ -177,7 +215,9 @@ * requirements. * @note Requires @p CH_CFG_USE_SEMAPHORES. */ +#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) #define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE +#endif /** * @brief Mutexes APIs. @@ -185,7 +225,9 @@ * * @note The default is @p TRUE. */ +#if !defined(CH_CFG_USE_MUTEXES) #define CH_CFG_USE_MUTEXES TRUE +#endif /** * @brief Enables recursive behavior on mutexes. @@ -195,7 +237,9 @@ * @note The default is @p FALSE. * @note Requires @p CH_CFG_USE_MUTEXES. */ +#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) #define CH_CFG_USE_MUTEXES_RECURSIVE FALSE +#endif /** * @brief Conditional Variables APIs. @@ -205,7 +249,9 @@ * @note The default is @p TRUE. * @note Requires @p CH_CFG_USE_MUTEXES. */ +#if !defined(CH_CFG_USE_CONDVARS) #define CH_CFG_USE_CONDVARS TRUE +#endif /** * @brief Conditional Variables APIs with timeout. @@ -215,7 +261,9 @@ * @note The default is @p TRUE. * @note Requires @p CH_CFG_USE_CONDVARS. */ +#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) #define CH_CFG_USE_CONDVARS_TIMEOUT TRUE +#endif /** * @brief Events Flags APIs. @@ -223,7 +271,9 @@ * * @note The default is @p TRUE. */ +#if !defined(CH_CFG_USE_EVENTS) #define CH_CFG_USE_EVENTS TRUE +#endif /** * @brief Events Flags APIs with timeout. @@ -233,7 +283,9 @@ * @note The default is @p TRUE. * @note Requires @p CH_CFG_USE_EVENTS. */ +#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) #define CH_CFG_USE_EVENTS_TIMEOUT TRUE +#endif /** * @brief Synchronous Messages APIs. @@ -242,7 +294,9 @@ * * @note The default is @p TRUE. */ +#if !defined(CH_CFG_USE_MESSAGES) #define CH_CFG_USE_MESSAGES TRUE +#endif /** * @brief Synchronous Messages queuing mode. @@ -253,7 +307,9 @@ * requirements. * @note Requires @p CH_CFG_USE_MESSAGES. */ +#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) #define CH_CFG_USE_MESSAGES_PRIORITY FALSE +#endif /** * @brief Mailboxes APIs. @@ -263,15 +319,9 @@ * @note The default is @p TRUE. * @note Requires @p CH_CFG_USE_SEMAPHORES. */ +#if !defined(CH_CFG_USE_MAILBOXES) #define CH_CFG_USE_MAILBOXES TRUE - -/** - * @brief I/O Queues APIs. - * @details If enabled then the I/O queues APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_QUEUES TRUE +#endif /** * @brief Core Memory Manager APIs. @@ -280,7 +330,9 @@ * * @note The default is @p TRUE. */ +#if !defined(CH_CFG_USE_MEMCORE) #define CH_CFG_USE_MEMCORE TRUE +#endif /** * @brief Heap Allocator APIs. @@ -292,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES. * @note Mutexes are recommended. */ +#if !defined(CH_CFG_USE_HEAP) #define CH_CFG_USE_HEAP TRUE +#endif /** * @brief Memory Pools Allocator APIs. @@ -301,7 +355,20 @@ * * @note The default is @p 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 Dynamic Threads APIs. @@ -312,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT. * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. */ +#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 /** @} */ @@ -328,7 +461,9 @@ * * @note The default is @p FALSE. */ +#if !defined(CH_DBG_STATISTICS) #define CH_DBG_STATISTICS FALSE +#endif /** * @brief Debug option, system state check. @@ -337,7 +472,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 TRUE +#endif /** * @brief Debug option, parameters checks. @@ -346,7 +483,9 @@ * * @note The default is @p FALSE. */ -#define CH_DBG_ENABLE_CHECKS FALSE +#if !defined(CH_DBG_ENABLE_CHECKS) +#define CH_DBG_ENABLE_CHECKS TRUE +#endif /** * @brief Debug option, consistency checks. @@ -356,16 +495,28 @@ * * @note The default is @p FALSE. */ -#define CH_DBG_ENABLE_ASSERTS FALSE +#if !defined(CH_DBG_ENABLE_ASSERTS) +#define CH_DBG_ENABLE_ASSERTS TRUE +#endif /** * @brief Debug option, trace buffer. - * @details If enabled then the context switch circular trace buffer is - * activated. + * @details If enabled then the trace buffer is activated. * - * @note The default is @p FALSE. + * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. + */ +#if !defined(CH_DBG_TRACE_MASK) +#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL +#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_ENABLE_TRACE FALSE +#if !defined(CH_DBG_TRACE_BUFFER_SIZE) +#define CH_DBG_TRACE_BUFFER_SIZE 128 +#endif /** * @brief Debug option, stack checks. @@ -377,7 +528,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 FALSE +#if !defined(CH_DBG_ENABLE_STACK_CHECK) +#define CH_DBG_ENABLE_STACK_CHECK TRUE +#endif /** * @brief Debug option, stacks initialization. @@ -387,7 +540,9 @@ * * @note The default is @p FALSE. */ -#define CH_DBG_FILL_THREADS FALSE +#if !defined(CH_DBG_FILL_THREADS) +#define CH_DBG_FILL_THREADS TRUE +#endif /** * @brief Debug option, threads profiling. @@ -398,7 +553,9 @@ * @note This debug option is not currently compatible with the * tickless mode. */ +#if !defined(CH_DBG_THREADS_PROFILING) #define CH_DBG_THREADS_PROFILING FALSE +#endif /** @} */ @@ -410,6 +567,22 @@ /*===========================================================================*/ /** + * @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. */ @@ -418,9 +591,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) { \ @@ -430,10 +603,6 @@ /** * @brief Threads finalization hook. * @details User finalization code added to the @p chThdExit() API. - * - * @note It is inserted into lock zone. - * @note It is also invoked when the threads simply return in order to - * terminate. */ #define CH_CFG_THREAD_EXIT_HOOK(tp) { \ /* Add threads finalization code here.*/ \ @@ -468,6 +637,7 @@ * @note This macro can be used to activate a power saving mode. */ #define CH_CFG_IDLE_ENTER_HOOK() { \ + /* Idle-enter code here.*/ \ } /** @@ -477,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode. */ #define CH_CFG_IDLE_LEAVE_HOOK() { \ + /* Idle-leave code here.*/ \ } /** @@ -520,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */ /*===========================================================================*/ -#endif /* _CHCONF_H_ */ +#endif /* CHCONF_H */ /** @} */ diff --git a/testhal/NRF51/NRF51822/EXT/halconf.h b/testhal/NRF51/NRF51822/PAL/halconf.h index 407dd2f..c8c556a 100644 --- a/testhal/NRF51/NRF51822/EXT/halconf.h +++ b/testhal/NRF51/NRF51822/PAL/halconf.h @@ -55,7 +55,7 @@ * @brief Enables the EXT subsystem. */ #if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) -#define HAL_USE_EXT TRUE +#define HAL_USE_EXT FALSE #endif /** diff --git a/testhal/NRF51/NRF51822/PAL/halconf_community.h b/testhal/NRF51/NRF51822/PAL/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/NRF51/NRF51822/PAL/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/NRF51/NRF51822/EXT/main.c b/testhal/NRF51/NRF51822/PAL/main.c index f24eb5d..313291c 100644 --- a/testhal/NRF51/NRF51822/EXT/main.c +++ b/testhal/NRF51/NRF51822/PAL/main.c @@ -42,11 +42,9 @@ static void led2toggle(void *arg) { debouncing2 = false; } -static void extcb1(EXTDriver *extp, expchannel_t channel) +static void extcb1(void *arg) { - (void)extp; - (void)channel; - + (void)arg; uint8_t pad1 = palReadPad(IOPORT1, KEY1); if (!debouncing1 && (pad1 == PAL_LOW)) { @@ -63,11 +61,9 @@ static void extcb1(EXTDriver *extp, expchannel_t channel) } } -static void extcb2(EXTDriver *extp, expchannel_t channel) +static void extcb2(void *arg) { - (void)extp; - (void)channel; - + (void)arg; uint8_t pad2 = palReadPad(IOPORT1, KEY2); if (!debouncing2 && (pad2 == PAL_LOW)) { @@ -84,14 +80,6 @@ static void extcb2(EXTDriver *extp, expchannel_t channel) } } -static const EXTConfig extcfg = -{ - { - {EXT_CH_MODE_FALLING_EDGE | EXT_CH_MODE_AUTOSTART | (KEY1 << EXT_MODE_GPIO_OFFSET), extcb1}, - {EXT_CH_MODE_RISING_EDGE | EXT_CH_MODE_AUTOSTART | (KEY2 << EXT_MODE_GPIO_OFFSET), extcb2}, - } -}; - /* * Application entry point. */ @@ -106,8 +94,9 @@ int main(void) */ halInit(); chSysInit(); - - extStart(&EXTD1, &extcfg); + + palSetPadCallback(IOPORT1, KEY1, extcb1, NULL); + palSetPadCallback(IOPORT1, KEY2, extcb2, NULL); /* * Normal main() thread activity, in this demo it enables and disables the @@ -116,12 +105,12 @@ int main(void) while (TRUE) { palSetPad(IOPORT1, LED0); chThdSleepMilliseconds(5000); - extChannelDisable(&EXTD1, 0); - extChannelDisable(&EXTD1, 1); + palDisablePadEvent(IOPORT1, KEY1); + palDisablePadEvent(IOPORT1, KEY2); palClearPad(IOPORT1, LED0); chThdSleepMilliseconds(5000); - extChannelEnable(&EXTD1, 0); - extChannelEnable(&EXTD1, 1); + palEnablePadEvent(IOPORT1, KEY1, PAL_EVENT_MODE_FALLING_EDGE); + palEnablePadEvent(IOPORT1, KEY2, PAL_EVENT_MODE_RISING_EDGE); } return 0; diff --git a/testhal/NRF51/NRF51822/EXT/mcuconf.h b/testhal/NRF51/NRF51822/PAL/mcuconf.h index f3a0d85..f3a0d85 100644 --- a/testhal/NRF51/NRF51822/EXT/mcuconf.h +++ b/testhal/NRF51/NRF51822/PAL/mcuconf.h diff --git a/testhal/NRF51/NRF51822/PWM/Makefile b/testhal/NRF51/NRF51822/PWM/Makefile index de6ba9f..1924cfb 100644 --- a/testhal/NRF51/NRF51822/PWM/Makefile +++ b/testhal/NRF51/NRF51822/PWM/Makefile @@ -86,11 +86,13 @@ endif PROJECT = ch
# Imported source files and paths
-CHIBIOS = ../../../../../ChibiOS-RT
+CHIBIOS = ../../../../../ChibiOS
CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
# Startup files.
include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_nrf51.mk
+# Licensing files.
+include $(CHIBIOS)/os/license/license.mk
# HAL-OSAL files (optional).
include $(CHIBIOS)/os/hal/hal.mk
include $(CHIBIOS_CONTRIB)/os/hal/ports/NRF5/NRF51822/platform.mk
@@ -100,25 +102,20 @@ include $(CHIBIOS)/os/hal/osal/rt/osal.mk include $(CHIBIOS)/os/rt/rt.mk
include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v6m.mk
# Other files (optional).
-include $(CHIBIOS)/test/rt/test.mk
+#include $(CHIBIOS)/test/rt/test.mk
# Define linker script file here
LDSCRIPT= $(STARTUPLD)/NRF51822.ld
# C sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CSRC = $(STARTUPSRC) \
- $(KERNSRC) \
- $(PORTSRC) \
- $(OSALSRC) \
- $(HALSRC) \
- $(PLATFORMSRC) \
- $(BOARDSRC) \
+CSRC = $(ALLCSRC) \
+ $(TESTSRC) \
main.c
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CPPSRC =
+CPPSRC = $(ALLCPPSRC)
# C sources to be compiled in ARM mode regardless of the global setting.
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
@@ -141,13 +138,11 @@ TCSRC = TCPPSRC =
# List ASM source files here
-ASMSRC =
-ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
+ASMSRC = $(ALLASMSRC)
+ASMXSRC = $(ALLXASMSRC)
-INCDIR = $(CHIBIOS)/os/license \
- $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
- $(HALINC) $(PLATFORMINC) $(BOARDINC) \
- $(CHIBIOS)/os/various $(CHIBIOS)/os/license
+INCDIR = $(ALLINC) $(TESTINC) \
+ $(TESTHAL)
#
# Project, sources and paths
diff --git a/testhal/NRF51/NRF51822/PWM/chconf.h b/testhal/NRF51/NRF51822/PWM/chconf.h index 14c1bf3..1750f63 100644 --- a/testhal/NRF51/NRF51822/PWM/chconf.h +++ b/testhal/NRF51/NRF51822/PWM/chconf.h @@ -1,5 +1,5 @@ /*
- Copyright (C) 2015 Fabio Utzig
+ 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.
@@ -25,11 +25,11 @@ * @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
+#ifndef CHCONF_H
+#define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -59,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -82,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -95,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -104,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -123,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -141,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -149,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -158,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -166,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -177,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -185,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -195,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -205,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -215,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -223,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -233,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -242,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -253,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -263,15 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
-
-/**
- * @brief I/O Queues APIs.
- * @details If enabled then the I/O queues APIs are included in the kernel.
- *
- * @note The default is @p TRUE.
- */
-#define CH_CFG_USE_QUEUES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -280,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -292,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -301,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -312,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -328,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -337,7 +472,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 TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -346,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_CHECKS FALSE
+#if !defined(CH_DBG_ENABLE_CHECKS)
+#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -356,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_ASSERTS FALSE
+#if !defined(CH_DBG_ENABLE_ASSERTS)
+#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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_ENABLE_TRACE FALSE
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -377,7 +528,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 FALSE
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
+#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -387,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_FILL_THREADS FALSE
+#if !defined(CH_DBG_FILL_THREADS)
+#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -398,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -410,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -418,9 +591,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) { \
@@ -430,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -468,6 +637,7 @@ * @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -477,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -520,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/NRF51/NRF51822/PWM/halconf_community.h b/testhal/NRF51/NRF51822/PWM/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/NRF51/NRF51822/PWM/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/NRF51/NRF51822/PWM/main.c b/testhal/NRF51/NRF51822/PWM/main.c index 51179d8..5e7e825 100644 --- a/testhal/NRF51/NRF51822/PWM/main.c +++ b/testhal/NRF51/NRF51822/PWM/main.c @@ -46,8 +46,6 @@ int main(void) { .ioline = LINE_LED2,
.gpiote_channel = 0,
.ppi_channel = { 0, 1 } },
- { .mode = PWM_OUTPUT_DISABLED,
- .callback = NULL, },
},
};
diff --git a/testhal/NRF51/NRF51822/RNG/Makefile b/testhal/NRF51/NRF51822/RNG/Makefile index 1c2acf2..4a71207 100644 --- a/testhal/NRF51/NRF51822/RNG/Makefile +++ b/testhal/NRF51/NRF51822/RNG/Makefile @@ -81,13 +81,14 @@ endif PROJECT = ch
# Imported source files and paths
-CHIBIOS = ../../../../../ChibiOS-RT
+CHIBIOS = ../../../../../ChibiOS
CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
# Startup files.
include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_nrf51.mk
+# Licensing files.
+include $(CHIBIOS)/os/license/license.mk
# HAL-OSAL files (optional).
-include $(CHIBIOS)/os/hal/hal.mk
include $(CHIBIOS_CONTRIB)/os/hal/hal.mk
include $(CHIBIOS_CONTRIB)/os/hal/ports/NRF5/NRF51822/platform.mk
include $(CHIBIOS_CONTRIB)/os/hal/boards/NRF51-DK/board.mk
@@ -96,8 +97,11 @@ include $(CHIBIOS)/os/hal/osal/rt/osal.mk include $(CHIBIOS)/os/rt/rt.mk
include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v6m.mk
# Other files (optional).
-include $(CHIBIOS)/test/rt/test.mk
+include $(CHIBIOS)/test/lib/test.mk
+include $(CHIBIOS)/test/rt/rt_test.mk
+include $(CHIBIOS)/test/oslib/oslib_test.mk
include $(CHIBIOS)/os/various/shell/shell.mk
+include $(CHIBIOS)/os/hal/lib/streams/streams.mk
# Define linker script file here
@@ -105,22 +109,13 @@ LDSCRIPT= $(STARTUPLD)/NRF51822.ld # C sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CSRC = $(STARTUPSRC) \
- $(KERNSRC) \
- $(PORTSRC) \
- $(OSALSRC) \
- $(HALSRC) \
- $(PLATFORMSRC) \
- $(BOARDSRC) \
+CSRC = $(ALLCSRC) \
$(TESTSRC) \
- $(SHELLSRC) \
- $(CHIBIOS)/os/hal/lib/streams/memstreams.c \
- $(CHIBIOS)/os/hal/lib/streams/chprintf.c \
main.c
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CPPSRC =
+CPPSRC = $(ALLCPPSRC)
# C sources to be compiled in ARM mode regardless of the global setting.
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
@@ -143,15 +138,11 @@ TCSRC = TCPPSRC =
# List ASM source files here
-ASMSRC =
-ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
-
-INCDIR = $(CHIBIOS)/os/license \
- $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
- $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
- $(SHELLINC) \
- $(CHIBIOS)/os/hal/lib/streams \
- $(CHIBIOS)/os/various
+ASMSRC = $(ALLASMSRC)
+ASMXSRC = $(ALLXASMSRC)
+
+INCDIR = $(ALLINC) $(TESTINC) \
+ $(TESTHAL)
#
# Project, sources and paths
diff --git a/testhal/NRF51/NRF51822/RNG/chconf.h b/testhal/NRF51/NRF51822/RNG/chconf.h index ed43625..1750f63 100644 --- a/testhal/NRF51/NRF51822/RNG/chconf.h +++ b/testhal/NRF51/NRF51822/RNG/chconf.h @@ -1,5 +1,5 @@ /*
- Copyright (C) 2016 Stephane D'Alu
+ 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.
@@ -29,7 +29,7 @@ #define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -59,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -82,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -95,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -104,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -123,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -141,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -149,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -158,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -166,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -177,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -185,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -195,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -205,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -215,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -223,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -233,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -242,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -253,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -263,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -272,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -284,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -293,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -304,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -320,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -329,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -338,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -348,7 +495,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
@@ -356,14 +505,18 @@ *
* @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/
+#if !defined(CH_DBG_TRACE_MASK)
#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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.
*/
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -375,7 +528,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -385,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -396,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -408,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -416,9 +591,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) { \
diff --git a/testhal/NRF51/NRF51822/RNG/halconf_community.h b/testhal/NRF51/NRF51822/RNG/halconf_community.h index a85b95f..e655bfc 100644 --- a/testhal/NRF51/NRF51822/RNG/halconf_community.h +++ b/testhal/NRF51/NRF51822/RNG/halconf_community.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2016 Stéphane D'Alu + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,8 +14,8 @@ limitations under the License. */ -#ifndef _HALCONF_COMMUNITY_H_ -#define _HALCONF_COMMUNITY_H_ +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H /** * @brief Enables the community overlay. @@ -23,6 +23,7 @@ #if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) #define HAL_USE_COMMUNITY TRUE #endif + /** * @brief Enables the FSMC subsystem. */ @@ -52,19 +53,61 @@ #endif /** - * @brief Enables the community subsystem. + * @brief Enables the CRC subsystem. */ #if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) #define HAL_USE_CRC FALSE #endif /** - * @brief Enables the community subsystem. + * @brief Enables the RNG subsystem. */ #if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) #define HAL_USE_RNG TRUE #endif +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + /*===========================================================================*/ /* FSMCNAND driver related settings. */ /*===========================================================================*/ @@ -74,7 +117,7 @@ * @note Disabling this option saves both code and data space. */ #if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define NAND_USE_MUTUAL_EXCLUSION FALSE +#define NAND_USE_MUTUAL_EXCLUSION TRUE #endif /*===========================================================================*/ @@ -90,28 +133,41 @@ * @brief Enables search ROM feature. * @note Disabling this option saves both code and data space. */ -#define ONEWIRE_USE_SEARCH_ROM FALSE +#define ONEWIRE_USE_SEARCH_ROM TRUE /*===========================================================================*/ -/* CRC driver settings. */ +/* QEI driver related settings. */ /*===========================================================================*/ /** - * @brief Enables DMA engine when performing CRC transactions. - * @note Enabling this option also enables asynchronous API. + * @brief Enables discard of overlow */ -#if !defined(CRC_USE_DMA) || defined(__DOXYGEN__) -#define CRC_USE_DMA FALSE +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE #endif /** - * @brief Enables the @p crcAcquireUnit() and @p crcReleaseUnit() APIs. - * @note Disabling this option saves both code and data space. + * @brief Enables min max of overlow */ -#if !defined(CRC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define CRC_USE_MUTUAL_EXCLUSION FALSE +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE #endif -#endif /* _HALCONF_COMMUNITY_H_ */ +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ /** @} */ diff --git a/testhal/NRF51/NRF51822/SPI/Makefile b/testhal/NRF51/NRF51822/SPI/Makefile index b04500e..fa799b9 100644 --- a/testhal/NRF51/NRF51822/SPI/Makefile +++ b/testhal/NRF51/NRF51822/SPI/Makefile @@ -80,8 +80,10 @@ endif PROJECT = ch
# Imported source files and paths
-CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS
CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
+# Licensing files.
+include $(CHIBIOS)/os/license/license.mk
# Startup files.
include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_nrf51.mk
# HAL-OSAL files (optional).
@@ -93,26 +95,20 @@ include $(CHIBIOS)/os/hal/osal/rt/osal.mk include $(CHIBIOS)/os/rt/rt.mk
include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v6m.mk
# Other files (optional).
-include $(CHIBIOS)/test/rt/test.mk
+#include $(CHIBIOS)/test/rt/test.mk
# Define linker script file here
LDSCRIPT= $(STARTUPLD)/NRF51822.ld
# C sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CSRC = $(STARTUPSRC) \
- $(KERNSRC) \
- $(PORTSRC) \
- $(OSALSRC) \
- $(HALSRC) \
- $(PLATFORMSRC) \
- $(BOARDSRC) \
+CSRC = $(ALLCSRC) \
$(TESTSRC) \
main.c
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CPPSRC =
+CPPSRC = $(ALLCPPSRC)
# C sources to be compiled in ARM mode regardless of the global setting.
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
@@ -135,11 +131,11 @@ TCSRC = TCPPSRC =
# List ASM source files here
-ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
+ASMSRC = $(ALLASMSRC)
+ASMXSRC = $(ALLXASMSRC)
-INCDIR = $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
- $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
- $(CHIBIOS)/os/various $(CHIBIOS)/os/license
+INCDIR = $(ALLINC) $(TESTINC) \
+ $(TESTHAL)
#
# Project, sources and paths
diff --git a/testhal/NRF51/NRF51822/SPI/chconf.h b/testhal/NRF51/NRF51822/SPI/chconf.h index 49a050a..1750f63 100644 --- a/testhal/NRF51/NRF51822/SPI/chconf.h +++ b/testhal/NRF51/NRF51822/SPI/chconf.h @@ -1,5 +1,5 @@ /*
- Copyright (C) 2015 Stephen Caudle
+ 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.
@@ -25,11 +25,11 @@ * @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
+#ifndef CHCONF_H
+#define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -59,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -82,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -95,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -104,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -123,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -141,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -149,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -158,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -166,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -177,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -185,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -195,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -205,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -215,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -223,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -233,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -242,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -253,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -263,15 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
-
-/**
- * @brief I/O Queues APIs.
- * @details If enabled then the I/O queues APIs are included in the kernel.
- *
- * @note The default is @p TRUE.
- */
-#define CH_CFG_USE_QUEUES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -280,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -292,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -301,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -312,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -328,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -337,7 +472,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 TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -346,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_CHECKS FALSE
+#if !defined(CH_DBG_ENABLE_CHECKS)
+#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -356,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_ASSERTS FALSE
+#if !defined(CH_DBG_ENABLE_ASSERTS)
+#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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_ENABLE_TRACE FALSE
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -377,7 +528,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 FALSE
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
+#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -387,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
-#define CH_DBG_FILL_THREADS FALSE
+#if !defined(CH_DBG_FILL_THREADS)
+#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -398,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -410,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -418,9 +591,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) { \
@@ -430,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -468,6 +637,7 @@ * @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -477,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -520,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/NRF51/NRF51822/SPI/halconf_community.h b/testhal/NRF51/NRF51822/SPI/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/NRF51/NRF51822/SPI/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/NRF51/NRF51822/WDG/Makefile b/testhal/NRF51/NRF51822/WDG/Makefile index caa8b18..8cadfce 100644 --- a/testhal/NRF51/NRF51822/WDG/Makefile +++ b/testhal/NRF51/NRF51822/WDG/Makefile @@ -81,8 +81,10 @@ endif PROJECT = ch
# Imported source files and paths
-CHIBIOS = ../../../../../ChibiOS-RT
+CHIBIOS = ../../../../../ChibiOS
CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
+# Licensing files.
+include $(CHIBIOS)/os/license/license.mk
# Startup files.
include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_nrf51.mk
# HAL-OSAL files (optional).
@@ -99,19 +101,13 @@ LDSCRIPT= $(STARTUPLD)/NRF51822.ld # C sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CSRC = $(STARTUPSRC) \
- $(KERNSRC) \
- $(PORTSRC) \
- $(OSALSRC) \
- $(HALSRC) \
- $(PLATFORMSRC) \
- $(BOARDSRC) \
+CSRC = $(ALLCSRC) \
$(TESTSRC) \
main.c
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CPPSRC =
+CPPSRC = $(ALLCPPSRC)
# C sources to be compiled in ARM mode regardless of the global setting.
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
@@ -134,11 +130,11 @@ TCSRC = TCPPSRC =
# List ASM source files here
-ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
+ASMSRC = $(ALLASMSRC)
+ASMXSRC = $(ALLXASMSRC)
-INCDIR = $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
- $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
- $(CHIBIOS)/os/various $(CHIBIOS)/os/license
+INCDIR = $(ALLINC) $(TESTINC) \
+ $(TESTHAL)
#
# Project, sources and paths
diff --git a/testhal/NRF51/NRF51822/WDG/chconf.h b/testhal/NRF51/NRF51822/WDG/chconf.h index 9952575..1750f63 100644 --- a/testhal/NRF51/NRF51822/WDG/chconf.h +++ b/testhal/NRF51/NRF51822/WDG/chconf.h @@ -1,5 +1,5 @@ /*
- Copyright (C) 2016 Stephane D'Alu
+ 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.
@@ -25,11 +25,11 @@ * @{
*/
-#ifndef _CHCONF_H_
-#define _CHCONF_H_
+#ifndef CHCONF_H
+#define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,14 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 1000
+#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.
@@ -59,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -82,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 20
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
/**
* @brief Managed RAM size.
@@ -95,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -104,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -123,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -141,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -149,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -158,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -166,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -177,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -185,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -195,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -205,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -215,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -223,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -233,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -242,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -253,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -263,15 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
-
-/**
- * @brief I/O Queues APIs.
- * @details If enabled then the I/O queues APIs are included in the kernel.
- *
- * @note The default is @p TRUE.
- */
-#define CH_CFG_USE_QUEUES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -280,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -292,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -301,7 +355,20 @@ *
* @note The default is @p 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 Dynamic Threads APIs.
@@ -312,7 +379,73 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#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
/** @} */
@@ -328,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -337,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -346,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -356,16 +495,28 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
- * @details If enabled then the context switch circular trace buffer is
- * activated.
+ * @details If enabled then the trace buffer is activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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_ENABLE_TRACE TRUE
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -377,7 +528,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -387,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -398,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -410,6 +567,22 @@ /*===========================================================================*/
/**
+ * @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.
*/
@@ -418,9 +591,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) { \
@@ -430,10 +603,6 @@ /**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -468,6 +637,7 @@ * @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -477,6 +647,7 @@ * @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -520,6 +691,6 @@ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/
-#endif /* _CHCONF_H_ */
+#endif /* CHCONF_H */
/** @} */
diff --git a/testhal/NRF51/NRF51822/WDG/halconf_community.h b/testhal/NRF51/NRF51822/WDG/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/NRF51/NRF51822/WDG/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/NRF52/NRF52832/I2C/Makefile b/testhal/NRF52/NRF52832/I2C/Makefile new file mode 100644 index 0000000..edb407e --- /dev/null +++ b/testhal/NRF52/NRF52832/I2C/Makefile @@ -0,0 +1,207 @@ +##############################################################################
+# Build global options
+# NOTE: Can be overridden externally.
+#
+
+# Compiler options here.
+ifeq ($(USE_OPT),)
+ USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16
+endif
+
+# C specific options here (added to USE_OPT).
+ifeq ($(USE_COPT),)
+ USE_COPT =
+endif
+
+# C++ specific options here (added to USE_OPT).
+ifeq ($(USE_CPPOPT),)
+ USE_CPPOPT = -fno-rtti
+endif
+
+# Enable this if you want the linker to remove unused code and data
+ifeq ($(USE_LINK_GC),)
+ USE_LINK_GC = yes
+endif
+
+# Linker extra options here.
+ifeq ($(USE_LDOPT),)
+ USE_LDOPT =
+endif
+
+# Enable this if you want link time optimizations (LTO)
+ifeq ($(USE_LTO),)
+ USE_LTO = yes
+endif
+
+# If enabled, this option allows to compile the application in THUMB mode.
+ifeq ($(USE_THUMB),)
+ USE_THUMB = yes
+endif
+
+# Enable this if you want to see the full log while compiling.
+ifeq ($(USE_VERBOSE_COMPILE),)
+ USE_VERBOSE_COMPILE = no
+endif
+
+#
+# Build global options
+##############################################################################
+
+##############################################################################
+# Architecture or project specific options
+#
+
+# Stack size to be allocated to the Cortex-M process stack. This stack is
+# the stack used by the main() thread.
+ifeq ($(USE_PROCESS_STACKSIZE),)
+ USE_PROCESS_STACKSIZE = 0x400
+endif
+
+# Stack size to the allocated to the Cortex-M main/exceptions stack. This
+# stack is used for processing interrupts and exceptions.
+ifeq ($(USE_EXCEPTIONS_STACKSIZE),)
+ USE_EXCEPTIONS_STACKSIZE = 0x400
+endif
+
+# Enables the use of FPU on Cortex-M4 (no, softfp, hard).
+ifeq ($(USE_FPU),)
+ USE_FPU = no
+endif
+
+#
+# Architecture or project specific options
+##############################################################################
+
+##############################################################################
+# Project, sources and paths
+#
+
+# Define project name here
+PROJECT = ch
+
+# Imported source files and paths
+CHIBIOS = ../../../../../ChibiOS
+CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
+# Licensing files.
+include $(CHIBIOS)/os/license/license.mk
+# Startup files.
+include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_nrf52.mk
+# HAL-OSAL files (optional).
+include $(CHIBIOS)/os/hal/hal.mk
+include $(CHIBIOS_CONTRIB)/os/hal/ports/NRF5/NRF52832/platform.mk
+include $(CHIBIOS_CONTRIB)/os/hal/boards/NRF52-E73-2G4M04S/board.mk
+include $(CHIBIOS)/os/hal/osal/rt/osal.mk
+# RTOS files (optional).
+include $(CHIBIOS)/os/rt/rt.mk
+include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v7m.mk
+# Other files (optional).
+#include $(CHIBIOS)/test/rt/test.mk
+
+# Define linker script file here
+LDSCRIPT= $(STARTUPLD)/NRF52832.ld
+
+# C sources that can be compiled in ARM or THUMB mode depending on the global
+# setting.
+CSRC = $(ALLCSRC) \
+ $(TESTSRC) \
+ main.c
+
+# C++ sources that can be compiled in ARM or THUMB mode depending on the global
+# setting.
+CPPSRC = $(ALLCPPSRC)
+
+# C sources to be compiled in ARM mode regardless of the global setting.
+# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
+# option that results in lower performance and larger code size.
+ACSRC =
+
+# C++ sources to be compiled in ARM mode regardless of the global setting.
+# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
+# option that results in lower performance and larger code size.
+ACPPSRC =
+
+# C sources to be compiled in THUMB mode regardless of the global setting.
+# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
+# option that results in lower performance and larger code size.
+TCSRC =
+
+# C sources to be compiled in THUMB mode regardless of the global setting.
+# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
+# option that results in lower performance and larger code size.
+TCPPSRC =
+
+# List ASM source files here
+ASMSRC = $(ALLASMSRC)
+ASMXSRC = $(ALLXASMSRC)
+
+INCDIR = $(ALLINC) $(TESTINC) \
+ $(TESTHAL)
+
+#
+# Project, sources and paths
+##############################################################################
+
+##############################################################################
+# Compiler settings
+#
+
+MCU = cortex-m4
+
+TRGT = arm-none-eabi-
+CC = $(TRGT)gcc
+CPPC = $(TRGT)g++
+# Enable loading with g++ only if you need C++ runtime support.
+# NOTE: You can use C++ even without C++ support if you are careful. C++
+# runtime support makes code size explode.
+LD = $(TRGT)gcc
+#LD = $(TRGT)g++
+CP = $(TRGT)objcopy
+AS = $(TRGT)gcc -x assembler-with-cpp
+AR = $(TRGT)ar
+OD = $(TRGT)objdump
+SZ = $(TRGT)size
+HEX = $(CP) -O ihex
+BIN = $(CP) -O binary
+SREC = $(CP) -O srec
+
+# ARM-specific options here
+AOPT =
+
+# THUMB-specific options here
+TOPT = -mthumb -DTHUMB
+
+# Define C warning options here
+CWARN = -Wall -Wextra -Wstrict-prototypes
+
+# Define C++ warning options here
+CPPWARN = -Wall -Wextra
+
+#
+# Compiler settings
+##############################################################################
+
+##############################################################################
+# Start of user section
+#
+
+# List all user C define here, like -D_DEBUG=1
+UDEFS =
+
+# Define ASM defines here
+UADEFS =
+
+# List all user directories here
+UINCDIR =
+
+# List the user directory to look for the libraries here
+ULIBDIR =
+
+# List all user libraries here
+ULIBS =
+
+#
+# End of user defines
+##############################################################################
+
+RULESPATH = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC
+include $(RULESPATH)/rules.mk
diff --git a/testhal/NRF52/NRF52832/I2C/chconf.h b/testhal/NRF52/NRF52832/I2C/chconf.h new file mode 100644 index 0000000..1750f63 --- /dev/null +++ b/testhal/NRF52/NRF52832/I2C/chconf.h @@ -0,0 +1,696 @@ +/*
+ 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.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/**
+ * @file 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.
+ *
+ * @addtogroup config
+ * @details Kernel related settings and hooks.
+ * @{
+ */
+
+#ifndef CHCONF_H
+#define CHCONF_H
+
+#define _CHIBIOS_RT_CONF_
+#define _CHIBIOS_RT_CONF_VER_5_1_
+
+/*===========================================================================*/
+/**
+ * @name System timers settings
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief System time counter resolution.
+ * @note Allowed values are 16 or 32 bits.
+ */
+#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.
+ */
+#if !defined(CH_CFG_ST_FREQUENCY)
+#define CH_CFG_ST_FREQUENCY 1000
+#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.
+ * @note If this value is zero then the system uses the classic
+ * periodic tick. This value represents the minimum number
+ * of ticks that is safe to specify in a timeout directive.
+ * The value one is not valid, timeouts are rounded up to
+ * this value.
+ */
+#if !defined(CH_CFG_ST_TIMEDELTA)
+#define CH_CFG_ST_TIMEDELTA 0
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Kernel parameters and options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Round robin interval.
+ * @details This constant is the number of system ticks allowed for the
+ * threads before preemption occurs. Setting this value to zero
+ * disables the preemption for threads with equal priority and the
+ * round robin becomes cooperative. Note that higher priority
+ * threads can still preempt, the kernel is always preemptive.
+ * @note Disabling the round robin preemption makes the kernel more compact
+ * and generally faster.
+ * @note The round robin preemption is not supported in tickless mode and
+ * must be set to zero in that case.
+ */
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
+
+/**
+ * @brief Managed RAM size.
+ * @details Size of the RAM area to be managed by the OS. If set to zero
+ * then the whole available RAM is used. The core memory is made
+ * available to the heap allocator and/or can be used directly through
+ * the simplified core memory allocator.
+ *
+ * @note In order to let the OS manage the whole RAM the linker script must
+ * provide the @p __heap_base__ and @p __heap_end__ symbols.
+ * @note Requires @p CH_CFG_USE_MEMCORE.
+ */
+#if !defined(CH_CFG_MEMCORE_SIZE)
+#define CH_CFG_MEMCORE_SIZE 0
+#endif
+
+/**
+ * @brief Idle thread automatic spawn suppression.
+ * @details When this option is activated the function @p chSysInit()
+ * does not spawn the idle thread. The application @p main()
+ * function becomes the idle thread and must implement an
+ * infinite loop.
+ */
+#if !defined(CH_CFG_NO_IDLE_THREAD)
+#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Performance options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief OS optimization.
+ * @details If enabled then time efficient rather than space efficient code
+ * is used when two possible implementations exist.
+ *
+ * @note This is not related to the compiler optimization options.
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
+#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Subsystem options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Time Measurement APIs.
+ * @details If enabled then the time measurement APIs are included in
+ * the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_TM)
+#define CH_CFG_USE_TM FALSE
+#endif
+
+/**
+ * @brief Threads registry APIs.
+ * @details If enabled then the registry APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_REGISTRY)
+#define CH_CFG_USE_REGISTRY TRUE
+#endif
+
+/**
+ * @brief Threads synchronization APIs.
+ * @details If enabled then the @p chThdWait() function is included in
+ * the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_WAITEXIT)
+#define CH_CFG_USE_WAITEXIT TRUE
+#endif
+
+/**
+ * @brief Semaphores APIs.
+ * @details If enabled then the Semaphores APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_SEMAPHORES)
+#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
+
+/**
+ * @brief Semaphores queuing mode.
+ * @details If enabled then the threads are enqueued on semaphores by
+ * priority rather than in FIFO order.
+ *
+ * @note The default is @p FALSE. Enable this if you have special
+ * requirements.
+ * @note Requires @p CH_CFG_USE_SEMAPHORES.
+ */
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
+#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
+
+/**
+ * @brief Mutexes APIs.
+ * @details If enabled then the mutexes APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_MUTEXES)
+#define CH_CFG_USE_MUTEXES TRUE
+#endif
+
+/**
+ * @brief Enables recursive behavior on mutexes.
+ * @note Recursive mutexes are heavier and have an increased
+ * memory footprint.
+ *
+ * @note The default is @p FALSE.
+ * @note Requires @p CH_CFG_USE_MUTEXES.
+ */
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
+#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
+
+/**
+ * @brief Conditional Variables APIs.
+ * @details If enabled then the conditional variables APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_MUTEXES.
+ */
+#if !defined(CH_CFG_USE_CONDVARS)
+#define CH_CFG_USE_CONDVARS TRUE
+#endif
+
+/**
+ * @brief Conditional Variables APIs with timeout.
+ * @details If enabled then the conditional variables APIs with timeout
+ * specification are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_CONDVARS.
+ */
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
+#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
+
+/**
+ * @brief Events Flags APIs.
+ * @details If enabled then the event flags APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_EVENTS)
+#define CH_CFG_USE_EVENTS TRUE
+#endif
+
+/**
+ * @brief Events Flags APIs with timeout.
+ * @details If enabled then the events APIs with timeout specification
+ * are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_EVENTS.
+ */
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
+#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
+
+/**
+ * @brief Synchronous Messages APIs.
+ * @details If enabled then the synchronous messages APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_MESSAGES)
+#define CH_CFG_USE_MESSAGES TRUE
+#endif
+
+/**
+ * @brief Synchronous Messages queuing mode.
+ * @details If enabled then messages are served by priority rather than in
+ * FIFO order.
+ *
+ * @note The default is @p FALSE. Enable this if you have special
+ * requirements.
+ * @note Requires @p CH_CFG_USE_MESSAGES.
+ */
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
+#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
+
+/**
+ * @brief Mailboxes APIs.
+ * @details If enabled then the asynchronous messages (mailboxes) APIs are
+ * included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_SEMAPHORES.
+ */
+#if !defined(CH_CFG_USE_MAILBOXES)
+#define CH_CFG_USE_MAILBOXES TRUE
+#endif
+
+/**
+ * @brief Core Memory Manager APIs.
+ * @details If enabled then the core memory manager APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_MEMCORE)
+#define CH_CFG_USE_MEMCORE TRUE
+#endif
+
+/**
+ * @brief Heap Allocator APIs.
+ * @details If enabled then the memory heap allocator APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or
+ * @p CH_CFG_USE_SEMAPHORES.
+ * @note Mutexes are recommended.
+ */
+#if !defined(CH_CFG_USE_HEAP)
+#define CH_CFG_USE_HEAP TRUE
+#endif
+
+/**
+ * @brief Memory Pools Allocator APIs.
+ * @details If enabled then the memory pools allocator APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p 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 Dynamic Threads APIs.
+ * @details If enabled then the dynamic threads creation APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_WAITEXIT.
+ * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
+ */
+#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
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Debug options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Debug option, kernel statistics.
+ *
+ * @note The default is @p FALSE.
+ */
+#if !defined(CH_DBG_STATISTICS)
+#define CH_DBG_STATISTICS FALSE
+#endif
+
+/**
+ * @brief Debug option, system state check.
+ * @details If enabled the correct call protocol for system APIs is checked
+ * at runtime.
+ *
+ * @note The default is @p FALSE.
+ */
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
+#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
+
+/**
+ * @brief Debug option, parameters checks.
+ * @details If enabled then the checks on the API functions input
+ * parameters are activated.
+ *
+ * @note The default is @p FALSE.
+ */
+#if !defined(CH_DBG_ENABLE_CHECKS)
+#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
+
+/**
+ * @brief Debug option, consistency checks.
+ * @details If enabled then all the assertions in the kernel code are
+ * activated. This includes consistency checks inside the kernel,
+ * runtime anomalies and port-defined checks.
+ *
+ * @note The default is @p FALSE.
+ */
+#if !defined(CH_DBG_ENABLE_ASSERTS)
+#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
+
+/**
+ * @brief Debug option, trace buffer.
+ * @details If enabled then the trace buffer is activated.
+ *
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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.
+ */
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
+
+/**
+ * @brief Debug option, stack checks.
+ * @details If enabled then a runtime stack check is performed.
+ *
+ * @note The default is @p FALSE.
+ * @note The stack check is performed in a architecture/port dependent way.
+ * It may not be implemented or some ports.
+ * @note The default failure mode is to halt the system with the global
+ * @p panic_msg variable set to @p NULL.
+ */
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
+#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
+
+/**
+ * @brief Debug option, stacks initialization.
+ * @details If enabled then the threads working area is filled with a byte
+ * value when a thread is created. This can be useful for the
+ * runtime measurement of the used stack.
+ *
+ * @note The default is @p FALSE.
+ */
+#if !defined(CH_DBG_FILL_THREADS)
+#define CH_DBG_FILL_THREADS TRUE
+#endif
+
+/**
+ * @brief Debug option, threads profiling.
+ * @details If enabled then a field is added to the @p thread_t structure that
+ * counts the system ticks occurred while executing the thread.
+ *
+ * @note The default is @p FALSE.
+ * @note This debug option is not currently compatible with the
+ * tickless mode.
+ */
+#if !defined(CH_DBG_THREADS_PROFILING)
+#define CH_DBG_THREADS_PROFILING FALSE
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Kernel hooks
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @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.
+ */
+#define CH_CFG_THREAD_EXTRA_FIELDS \
+ /* Add threads custom fields here.*/
+
+/**
+ * @brief Threads initialization hook.
+ * @details User initialization code added to the @p _thread_init() function.
+ *
+ * @note It is invoked from within @p _thread_init() and implicitly from all
+ * the threads creation APIs.
+ */
+#define CH_CFG_THREAD_INIT_HOOK(tp) { \
+ /* Add threads initialization code here.*/ \
+}
+
+/**
+ * @brief Threads finalization hook.
+ * @details User finalization code added to the @p chThdExit() API.
+ */
+#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
+ /* Add threads finalization code here.*/ \
+}
+
+/**
+ * @brief Context switch hook.
+ * @details This hook is invoked just before switching between threads.
+ */
+#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \
+ /* Context switch code here.*/ \
+}
+
+/**
+ * @brief ISR enter hook.
+ */
+#define CH_CFG_IRQ_PROLOGUE_HOOK() { \
+ /* IRQ prologue code here.*/ \
+}
+
+/**
+ * @brief ISR exit hook.
+ */
+#define CH_CFG_IRQ_EPILOGUE_HOOK() { \
+ /* IRQ epilogue code here.*/ \
+}
+
+/**
+ * @brief Idle thread enter hook.
+ * @note This hook is invoked within a critical zone, no OS functions
+ * should be invoked from here.
+ * @note This macro can be used to activate a power saving mode.
+ */
+#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
+}
+
+/**
+ * @brief Idle thread leave hook.
+ * @note This hook is invoked within a critical zone, no OS functions
+ * should be invoked from here.
+ * @note This macro can be used to deactivate a power saving mode.
+ */
+#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
+}
+
+/**
+ * @brief Idle Loop hook.
+ * @details This hook is continuously invoked by the idle thread loop.
+ */
+#define CH_CFG_IDLE_LOOP_HOOK() { \
+ /* Idle loop code here.*/ \
+}
+
+/**
+ * @brief System tick event hook.
+ * @details This hook is invoked in the system tick handler immediately
+ * after processing the virtual timers queue.
+ */
+#define CH_CFG_SYSTEM_TICK_HOOK() { \
+ /* System tick event code here.*/ \
+}
+
+/**
+ * @brief System halt hook.
+ * @details This hook is invoked in case to a system halting error before
+ * the system is halted.
+ */
+#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \
+ /* System halt code here.*/ \
+}
+
+/**
+ * @brief Trace hook.
+ * @details This hook is invoked each time a new record is written in the
+ * trace buffer.
+ */
+#define CH_CFG_TRACE_HOOK(tep) { \
+ /* Trace code here.*/ \
+}
+
+/** @} */
+
+/*===========================================================================*/
+/* Port-specific settings (override port settings defaulted in chcore.h). */
+/*===========================================================================*/
+
+#endif /* CHCONF_H */
+
+/** @} */
diff --git a/testhal/NRF52/NRF52832/I2C/halconf.h b/testhal/NRF52/NRF52832/I2C/halconf.h new file mode 100644 index 0000000..1c3036a --- /dev/null +++ b/testhal/NRF52/NRF52832/I2C/halconf.h @@ -0,0 +1,327 @@ +/*
+ Copyright (C) 2015 Stephen Caudle
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/**
+ * @file templates/halconf.h
+ * @brief HAL configuration header.
+ * @details HAL configuration file, this file allows to enable or disable the
+ * various device drivers from your application. You may also use
+ * this file in order to override the device drivers default settings.
+ *
+ * @addtogroup HAL_CONF
+ * @{
+ */
+
+#ifndef _HALCONF_H_
+#define _HALCONF_H_
+
+#include "mcuconf.h"
+
+/**
+ * @brief Enables the PAL subsystem.
+ */
+#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__)
+#define HAL_USE_PAL TRUE
+#endif
+
+/**
+ * @brief Enables the ADC subsystem.
+ */
+#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__)
+#define HAL_USE_ADC FALSE
+#endif
+
+/**
+ * @brief Enables the CAN subsystem.
+ */
+#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__)
+#define HAL_USE_CAN FALSE
+#endif
+
+/**
+ * @brief Enables the EXT subsystem.
+ */
+#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__)
+#define HAL_USE_EXT FALSE
+#endif
+
+/**
+ * @brief Enables the GPT subsystem.
+ */
+#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__)
+#define HAL_USE_GPT FALSE
+#endif
+
+/**
+ * @brief Enables the I2C subsystem.
+ */
+#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__)
+#define HAL_USE_I2C TRUE
+#endif
+
+/**
+ * @brief Enables the I2S subsystem.
+ */
+#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__)
+#define HAL_USE_I2S FALSE
+#endif
+
+/**
+ * @brief Enables the ICU subsystem.
+ */
+#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__)
+#define HAL_USE_ICU FALSE
+#endif
+
+/**
+ * @brief Enables the MAC subsystem.
+ */
+#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__)
+#define HAL_USE_MAC FALSE
+#endif
+
+/**
+ * @brief Enables the MMC_SPI subsystem.
+ */
+#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__)
+#define HAL_USE_MMC_SPI FALSE
+#endif
+
+/**
+ * @brief Enables the PWM subsystem.
+ */
+#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__)
+#define HAL_USE_PWM FALSE
+#endif
+
+/**
+ * @brief Enables the RTC subsystem.
+ */
+#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__)
+#define HAL_USE_RTC FALSE
+#endif
+
+/**
+ * @brief Enables the SDC subsystem.
+ */
+#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__)
+#define HAL_USE_SDC FALSE
+#endif
+
+/**
+ * @brief Enables the SERIAL subsystem.
+ */
+#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__)
+#define HAL_USE_SERIAL FALSE
+#endif
+
+/**
+ * @brief Enables the SERIAL over USB subsystem.
+ */
+#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
+#define HAL_USE_SERIAL_USB FALSE
+#endif
+
+/**
+ * @brief Enables the SPI subsystem.
+ */
+#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__)
+#define HAL_USE_SPI FALSE
+#endif
+
+/**
+ * @brief Enables the UART subsystem.
+ */
+#if !defined(HAL_USE_UART) || defined(__DOXYGEN__)
+#define HAL_USE_UART FALSE
+#endif
+
+/**
+ * @brief Enables the USB subsystem.
+ */
+#if !defined(HAL_USE_USB) || defined(__DOXYGEN__)
+#define HAL_USE_USB FALSE
+#endif
+
+/*===========================================================================*/
+/* ADC driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__)
+#define ADC_USE_WAIT TRUE
+#endif
+
+/**
+ * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+#define ADC_USE_MUTUAL_EXCLUSION TRUE
+#endif
+
+/*===========================================================================*/
+/* CAN driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Sleep mode related APIs inclusion switch.
+ */
+#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__)
+#define CAN_USE_SLEEP_MODE TRUE
+#endif
+
+/*===========================================================================*/
+/* I2C driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables the mutual exclusion APIs on the I2C bus.
+ */
+#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+#define I2C_USE_MUTUAL_EXCLUSION TRUE
+#endif
+
+/*===========================================================================*/
+/* MAC driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables an event sources for incoming packets.
+ */
+#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__)
+#define MAC_USE_ZERO_COPY FALSE
+#endif
+
+/**
+ * @brief Enables an event sources for incoming packets.
+ */
+#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__)
+#define MAC_USE_EVENTS TRUE
+#endif
+
+/*===========================================================================*/
+/* MMC_SPI driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Delays insertions.
+ * @details If enabled this options inserts delays into the MMC waiting
+ * routines releasing some extra CPU time for the threads with
+ * lower priority, this may slow down the driver a bit however.
+ * This option is recommended also if the SPI driver does not
+ * use a DMA channel and heavily loads the CPU.
+ */
+#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__)
+#define MMC_NICE_WAITING TRUE
+#endif
+
+/*===========================================================================*/
+/* SDC driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Number of initialization attempts before rejecting the card.
+ * @note Attempts are performed at 10mS intervals.
+ */
+#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__)
+#define SDC_INIT_RETRY 100
+#endif
+
+/**
+ * @brief Include support for MMC cards.
+ * @note MMC support is not yet implemented so this option must be kept
+ * at @p FALSE.
+ */
+#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__)
+#define SDC_MMC_SUPPORT FALSE
+#endif
+
+/**
+ * @brief Delays insertions.
+ * @details If enabled this options inserts delays into the MMC waiting
+ * routines releasing some extra CPU time for the threads with
+ * lower priority, this may slow down the driver a bit however.
+ */
+#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__)
+#define SDC_NICE_WAITING TRUE
+#endif
+
+/*===========================================================================*/
+/* SERIAL driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Default bit rate.
+ * @details Configuration parameter, this is the baud rate selected for the
+ * default configuration.
+ */
+#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__)
+#define SERIAL_DEFAULT_BITRATE 38400
+#endif
+
+/**
+ * @brief Serial buffers size.
+ * @details Configuration parameter, you can change the depth of the queue
+ * buffers depending on the requirements of your application.
+ * @note The default is 64 bytes for both the transmission and receive
+ * buffers.
+ */
+#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
+#define SERIAL_BUFFERS_SIZE 16
+#endif
+
+/*===========================================================================*/
+/* SERIAL_USB driver related setting. */
+/*===========================================================================*/
+
+/**
+ * @brief Serial over USB buffers size.
+ * @details Configuration parameter, the buffer size must be a multiple of
+ * the USB data endpoint maximum packet size.
+ * @note The default is 64 bytes for both the transmission and receive
+ * buffers.
+ */
+#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__)
+#define SERIAL_USB_BUFFERS_SIZE 256
+#endif
+
+/*===========================================================================*/
+/* SPI driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__)
+#define SPI_USE_WAIT TRUE
+#endif
+
+/**
+ * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+#define SPI_USE_MUTUAL_EXCLUSION TRUE
+#endif
+
+#endif /* _HALCONF_H_ */
+
+/** @} */
diff --git a/testhal/NRF52/NRF52832/I2C/halconf_community.h b/testhal/NRF52/NRF52832/I2C/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/NRF52/NRF52832/I2C/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/NRF52/NRF52832/I2C/main.c b/testhal/NRF52/NRF52832/I2C/main.c new file mode 100644 index 0000000..88fb1e8 --- /dev/null +++ b/testhal/NRF52/NRF52832/I2C/main.c @@ -0,0 +1,165 @@ +/*
+ Copyright (C) 2015 Stephen Caudle
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/*
+ This demo:
+ 1) Writes bytes to the EEPROM
+ 2) Reads the same bytes back
+ 3) Inverts the byte values
+ 4) Writes them
+ 5) Reads them back
+ */
+
+#include <stdlib.h>
+
+#include "ch.h"
+#include "hal.h"
+
+#define I2C_ADDR 0x50
+#define I2C_FAKE_ADDR 0x4C
+#define EEPROM_START_ADDR 0x00
+
+/*
+ * EEPROM thread.
+ */
+static THD_WORKING_AREA(PollEepromThreadWA, 1024);
+static THD_FUNCTION(PollEepromThread, arg) {
+
+ unsigned i;
+ uint8_t tx_data[6];
+ uint8_t rx_data[4];
+ msg_t status;
+
+ (void)arg;
+
+ chRegSetThreadName("PollEeprom");
+
+ /* set initial data to write */
+ tx_data[0] = EEPROM_START_ADDR;
+ tx_data[1] = EEPROM_START_ADDR;
+ tx_data[2] = 0xA0;
+ tx_data[3] = 0xA1;
+ tx_data[4] = 0xA2;
+ tx_data[5] = 0xA3;
+
+ while (true) {
+
+ /* write out initial data */
+ i2cAcquireBus(&I2CD1);
+ status = i2cMasterTransmitTimeout(&I2CD1, I2C_ADDR, tx_data, sizeof(tx_data), NULL, 0, TIME_INFINITE);
+ i2cReleaseBus(&I2CD1);
+ osalDbgCheck(MSG_OK == status);
+
+ /* read back inital data */
+ osalThreadSleepMilliseconds(2);
+ i2cAcquireBus(&I2CD1);
+ status = i2cMasterTransmitTimeout(&I2CD1, I2C_ADDR, tx_data, 2, rx_data, sizeof(rx_data), TIME_INFINITE);
+ i2cReleaseBus(&I2CD1);
+ osalDbgCheck(MSG_OK == status);
+
+ /* invert the data */
+ for (i = 2; i < sizeof(tx_data); i++)
+ tx_data[i] ^= 0xff;
+
+ /* write out inverted data */
+ osalThreadSleepMilliseconds(2);
+ i2cAcquireBus(&I2CD1);
+ status = i2cMasterTransmitTimeout(&I2CD1, I2C_ADDR, tx_data, sizeof(tx_data), NULL, 0, TIME_INFINITE);
+ i2cReleaseBus(&I2CD1);
+ osalDbgCheck(MSG_OK == status);
+
+ /* read back inverted data */
+ osalThreadSleepMilliseconds(2);
+ i2cAcquireBus(&I2CD1);
+ status = i2cMasterTransmitTimeout(&I2CD1, I2C_ADDR, tx_data, 2, rx_data, sizeof(rx_data), TIME_INFINITE);
+ i2cReleaseBus(&I2CD1);
+ osalDbgCheck(MSG_OK == status);
+
+ osalThreadSleepMilliseconds(TIME_INFINITE);
+ }
+}
+
+/*
+ * Fake polling thread.
+ */
+static THD_WORKING_AREA(PollFakeThreadWA, 256);
+static THD_FUNCTION(PollFakeThread, arg) {
+
+ (void)arg;
+
+ chRegSetThreadName("PollFake");
+ while (true) {
+
+ msg_t status;
+ uint8_t rx_data[2];
+ i2cflags_t errors;
+
+ i2cAcquireBus(&I2CD1);
+ status = i2cMasterReceiveTimeout(&I2CD1, I2C_FAKE_ADDR, rx_data, 2, TIME_MS2I(4));
+ i2cReleaseBus(&I2CD1);
+
+ if (status == MSG_RESET){
+ errors = i2cGetErrors(&I2CD1);
+ osalDbgCheck(I2C_ACK_FAILURE == errors);
+ }
+
+ palTogglePad(IOPORT1, LED1); /* on */
+ osalThreadSleepMilliseconds(1000);
+ }
+}
+
+/*
+ * I2C1 config.
+ */
+static const I2CConfig i2cfg = {
+ 100000,
+ I2C_SCL,
+ I2C_SDA,
+};
+
+/*
+ * Entry point, note, the main() function is already a thread in the system
+ * on entry.
+ */
+int main(void) {
+
+ halInit();
+ chSysInit();
+
+ i2cStart(&I2CD1, &i2cfg);
+
+ /* Create EEPROM thread. */
+ chThdCreateStatic(PollEepromThreadWA,
+ sizeof(PollEepromThreadWA),
+ NORMALPRIO,
+ PollEepromThread,
+ NULL);
+
+ /* Create not responding thread. */
+ chThdCreateStatic(PollFakeThreadWA,
+ sizeof(PollFakeThreadWA),
+ NORMALPRIO,
+ PollFakeThread,
+ NULL);
+
+ /* main loop handles LED */
+ while (true) {
+ palTogglePad(IOPORT1, LED2); /* on */
+ osalThreadSleepMilliseconds(500);
+ }
+
+ return 0;
+}
diff --git a/testhal/NRF52/NRF52832/I2C/mcuconf.h b/testhal/NRF52/NRF52832/I2C/mcuconf.h new file mode 100644 index 0000000..fd238a2 --- /dev/null +++ b/testhal/NRF52/NRF52832/I2C/mcuconf.h @@ -0,0 +1,25 @@ +/*
+ Copyright (C) 2015 Stephen Caudle
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#ifndef _MCUCONF_H_
+#define _MCUCONF_H_
+
+/*
+ * HAL driver system settings.
+ */
+#define NRF5_I2C_USE_I2C0 TRUE
+
+#endif /* _MCUCONF_H_ */
diff --git a/testhal/NRF52/NRF52832/I2C/readme.txt b/testhal/NRF52/NRF52832/I2C/readme.txt new file mode 100644 index 0000000..281bd3e --- /dev/null +++ b/testhal/NRF52/NRF52832/I2C/readme.txt @@ -0,0 +1,21 @@ +*****************************************************************************
+** ChibiOS/HAL - I2C driver demo for NRF52832. **
+*****************************************************************************
+
+** TARGET **
+
+The demo runs on an EByte E73-2G4M04S board.
+
+** The Demo **
+
+The application demonstrates the use of the NRF52832 I2C driver.
+
+** Board Setup **
+
+- Connect AT24CXX EEPROM board to I2C port on E73-2G4M04S board
+
+** Build Procedure **
+
+The demo has been tested using the free Codesourcery GCC-based toolchain
+and YAGARTO.
+Just modify the TRGT line in the makefile in order to use different GCC ports.
diff --git a/testhal/NRF52/NRF52832/PWM-ICU/Makefile b/testhal/NRF52/NRF52832/PWM-ICU/Makefile new file mode 100644 index 0000000..237bcbe --- /dev/null +++ b/testhal/NRF52/NRF52832/PWM-ICU/Makefile @@ -0,0 +1,228 @@ +##############################################################################
+# Build global options
+# NOTE: Can be overridden externally.
+#
+
+# Compiler options here.
+ifeq ($(USE_OPT),)
+ USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16
+endif
+
+# C specific options here (added to USE_OPT).
+ifeq ($(USE_COPT),)
+ USE_COPT =
+endif
+
+# C++ specific options here (added to USE_OPT).
+ifeq ($(USE_CPPOPT),)
+ USE_CPPOPT = -fno-rtti
+endif
+
+# Enable this if you want the linker to remove unused code and data
+ifeq ($(USE_LINK_GC),)
+ USE_LINK_GC = yes
+endif
+
+# Linker extra options here.
+ifeq ($(USE_LDOPT),)
+ USE_LDOPT =
+endif
+
+# Enable this if you want link time optimizations (LTO)
+ifeq ($(USE_LTO),)
+ USE_LTO = yes
+endif
+
+# If enabled, this option allows to compile the application in THUMB mode.
+ifeq ($(USE_THUMB),)
+ USE_THUMB = yes
+endif
+
+# Enable this if you want to see the full log while compiling.
+ifeq ($(USE_VERBOSE_COMPILE),)
+ USE_VERBOSE_COMPILE = no
+endif
+
+# If enabled, this option makes the build process faster by not compiling
+# modules not used in the current configuration.
+ifeq ($(USE_SMART_BUILD),)
+ USE_SMART_BUILD = yes
+endif
+
+#
+# Build global options
+##############################################################################
+
+##############################################################################
+# Architecture or project specific options
+#
+
+# Stack size to be allocated to the Cortex-M process stack. This stack is
+# the stack used by the main() thread.
+ifeq ($(USE_PROCESS_STACKSIZE),)
+ USE_PROCESS_STACKSIZE = 0x400
+endif
+
+# Stack size to the allocated to the Cortex-M main/exceptions stack. This
+# stack is used for processing interrupts and exceptions.
+ifeq ($(USE_EXCEPTIONS_STACKSIZE),)
+ USE_EXCEPTIONS_STACKSIZE = 0x400
+endif
+
+# Enables the use of FPU on Cortex-M4 (no, softfp, hard).
+ifeq ($(USE_FPU),)
+ USE_FPU = no
+endif
+
+#
+# Architecture or project specific options
+##############################################################################
+
+##############################################################################
+# Project, sources and paths
+#
+
+# Define project name here
+PROJECT = ch
+
+# Imported source files and paths
+CHIBIOS = ../../../../../ChibiOS
+CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
+
+# Startup files.
+include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_nrf52.mk
+# Licensing files.
+include $(CHIBIOS)/os/license/license.mk
+# HAL-OSAL files (optional).
+include $(CHIBIOS)/os/hal/hal.mk
+include $(CHIBIOS_CONTRIB)/os/hal/ports/NRF5/NRF52832/platform.mk
+include $(CHIBIOS_CONTRIB)/os/hal/boards/NRF52-E73-2G4M04S/board.mk
+include $(CHIBIOS)/os/hal/osal/rt/osal.mk
+# RTOS files (optional).
+include $(CHIBIOS)/os/rt/rt.mk
+include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v7m.mk
+# Other files (optional).
+#include $(CHIBIOS)/test/rt/test.mk
+
+# Define linker script file here
+LDSCRIPT= $(STARTUPLD)/NRF52832.ld
+
+# C sources that can be compiled in ARM or THUMB mode depending on the global
+# setting.
+CSRC = $(ALLCSRC) \
+ $(TESTSRC) \
+ $(CHIBIOS)/os/hal/lib/streams/memstreams.c \
+ $(CHIBIOS)/os/hal/lib/streams/chprintf.c \
+ main.c
+
+# C++ sources that can be compiled in ARM or THUMB mode depending on the global
+# setting.
+CPPSRC = $(ALLCPPSRC)
+
+# C sources to be compiled in ARM mode regardless of the global setting.
+# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
+# option that results in lower performance and larger code size.
+ACSRC =
+
+# C++ sources to be compiled in ARM mode regardless of the global setting.
+# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
+# option that results in lower performance and larger code size.
+ACPPSRC =
+
+# C sources to be compiled in THUMB mode regardless of the global setting.
+# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
+# option that results in lower performance and larger code size.
+TCSRC =
+
+# C sources to be compiled in THUMB mode regardless of the global setting.
+# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
+# option that results in lower performance and larger code size.
+TCPPSRC =
+
+# List ASM source files here
+ASMSRC = $(ALLASMSRC)
+ASMXSRC = $(ALLXASMSRC)
+
+INCDIR = $(ALLINC) $(TESTINC) \
+ $(CHIBIOS)/os/hal/lib/streams \
+ $(TESTHAL)
+
+#
+# Project, sources and paths
+##############################################################################
+
+##############################################################################
+# Compiler settings
+#
+
+MCU = cortex-m4
+
+TRGT = arm-none-eabi-
+CC = $(TRGT)gcc
+CPPC = $(TRGT)g++
+# Enable loading with g++ only if you need C++ runtime support.
+# NOTE: You can use C++ even without C++ support if you are careful. C++
+# runtime support makes code size explode.
+LD = $(TRGT)gcc
+#LD = $(TRGT)g++
+CP = $(TRGT)objcopy
+AS = $(TRGT)gcc -x assembler-with-cpp
+AR = $(TRGT)ar
+OD = $(TRGT)objdump
+SZ = $(TRGT)size
+HEX = $(CP) -O ihex
+BIN = $(CP) -O binary
+SREC = $(CP) -O srec
+
+# ARM-specific options here
+AOPT =
+
+# THUMB-specific options here
+TOPT = -mthumb -DTHUMB
+
+# Define C warning options here
+CWARN = -Wall -Wextra -Wstrict-prototypes
+
+# Define C++ warning options here
+CPPWARN = -Wall -Wextra
+
+#
+# Compiler settings
+##############################################################################
+
+##############################################################################
+# Start of user section
+#
+
+# List all user C define here, like -D_DEBUG=1
+UDEFS =
+
+# Define ASM defines here
+UADEFS =
+
+# List all user directories here
+UINCDIR =
+
+# List the user directory to look for the libraries here
+ULIBDIR =
+
+# List all user libraries here
+ULIBS =
+
+#
+# End of user defines
+##############################################################################
+
+RULESPATH = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC
+include $(RULESPATH)/rules.mk
+
+
+include $(CHIBIOS_CONTRIB)/os/various/jlink.mk
+
+
+JLINK_DEVICE = nrf51422
+JLINK_PRE_FLASH = w4 4001e504 1
+JLINK_ERASE_ALL = w4 4001e504 2\nw4 4001e50c 1\nsleep 100
+
+flash: all jlink-flash
+
diff --git a/testhal/NRF52/NRF52832/PWM-ICU/chconf.h b/testhal/NRF52/NRF52832/PWM-ICU/chconf.h new file mode 100644 index 0000000..1750f63 --- /dev/null +++ b/testhal/NRF52/NRF52832/PWM-ICU/chconf.h @@ -0,0 +1,696 @@ +/*
+ 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.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/**
+ * @file 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.
+ *
+ * @addtogroup config
+ * @details Kernel related settings and hooks.
+ * @{
+ */
+
+#ifndef CHCONF_H
+#define CHCONF_H
+
+#define _CHIBIOS_RT_CONF_
+#define _CHIBIOS_RT_CONF_VER_5_1_
+
+/*===========================================================================*/
+/**
+ * @name System timers settings
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief System time counter resolution.
+ * @note Allowed values are 16 or 32 bits.
+ */
+#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.
+ */
+#if !defined(CH_CFG_ST_FREQUENCY)
+#define CH_CFG_ST_FREQUENCY 1000
+#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.
+ * @note If this value is zero then the system uses the classic
+ * periodic tick. This value represents the minimum number
+ * of ticks that is safe to specify in a timeout directive.
+ * The value one is not valid, timeouts are rounded up to
+ * this value.
+ */
+#if !defined(CH_CFG_ST_TIMEDELTA)
+#define CH_CFG_ST_TIMEDELTA 0
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Kernel parameters and options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Round robin interval.
+ * @details This constant is the number of system ticks allowed for the
+ * threads before preemption occurs. Setting this value to zero
+ * disables the preemption for threads with equal priority and the
+ * round robin becomes cooperative. Note that higher priority
+ * threads can still preempt, the kernel is always preemptive.
+ * @note Disabling the round robin preemption makes the kernel more compact
+ * and generally faster.
+ * @note The round robin preemption is not supported in tickless mode and
+ * must be set to zero in that case.
+ */
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
+
+/**
+ * @brief Managed RAM size.
+ * @details Size of the RAM area to be managed by the OS. If set to zero
+ * then the whole available RAM is used. The core memory is made
+ * available to the heap allocator and/or can be used directly through
+ * the simplified core memory allocator.
+ *
+ * @note In order to let the OS manage the whole RAM the linker script must
+ * provide the @p __heap_base__ and @p __heap_end__ symbols.
+ * @note Requires @p CH_CFG_USE_MEMCORE.
+ */
+#if !defined(CH_CFG_MEMCORE_SIZE)
+#define CH_CFG_MEMCORE_SIZE 0
+#endif
+
+/**
+ * @brief Idle thread automatic spawn suppression.
+ * @details When this option is activated the function @p chSysInit()
+ * does not spawn the idle thread. The application @p main()
+ * function becomes the idle thread and must implement an
+ * infinite loop.
+ */
+#if !defined(CH_CFG_NO_IDLE_THREAD)
+#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Performance options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief OS optimization.
+ * @details If enabled then time efficient rather than space efficient code
+ * is used when two possible implementations exist.
+ *
+ * @note This is not related to the compiler optimization options.
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
+#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Subsystem options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Time Measurement APIs.
+ * @details If enabled then the time measurement APIs are included in
+ * the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_TM)
+#define CH_CFG_USE_TM FALSE
+#endif
+
+/**
+ * @brief Threads registry APIs.
+ * @details If enabled then the registry APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_REGISTRY)
+#define CH_CFG_USE_REGISTRY TRUE
+#endif
+
+/**
+ * @brief Threads synchronization APIs.
+ * @details If enabled then the @p chThdWait() function is included in
+ * the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_WAITEXIT)
+#define CH_CFG_USE_WAITEXIT TRUE
+#endif
+
+/**
+ * @brief Semaphores APIs.
+ * @details If enabled then the Semaphores APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_SEMAPHORES)
+#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
+
+/**
+ * @brief Semaphores queuing mode.
+ * @details If enabled then the threads are enqueued on semaphores by
+ * priority rather than in FIFO order.
+ *
+ * @note The default is @p FALSE. Enable this if you have special
+ * requirements.
+ * @note Requires @p CH_CFG_USE_SEMAPHORES.
+ */
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
+#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
+
+/**
+ * @brief Mutexes APIs.
+ * @details If enabled then the mutexes APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_MUTEXES)
+#define CH_CFG_USE_MUTEXES TRUE
+#endif
+
+/**
+ * @brief Enables recursive behavior on mutexes.
+ * @note Recursive mutexes are heavier and have an increased
+ * memory footprint.
+ *
+ * @note The default is @p FALSE.
+ * @note Requires @p CH_CFG_USE_MUTEXES.
+ */
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
+#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
+
+/**
+ * @brief Conditional Variables APIs.
+ * @details If enabled then the conditional variables APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_MUTEXES.
+ */
+#if !defined(CH_CFG_USE_CONDVARS)
+#define CH_CFG_USE_CONDVARS TRUE
+#endif
+
+/**
+ * @brief Conditional Variables APIs with timeout.
+ * @details If enabled then the conditional variables APIs with timeout
+ * specification are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_CONDVARS.
+ */
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
+#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
+
+/**
+ * @brief Events Flags APIs.
+ * @details If enabled then the event flags APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_EVENTS)
+#define CH_CFG_USE_EVENTS TRUE
+#endif
+
+/**
+ * @brief Events Flags APIs with timeout.
+ * @details If enabled then the events APIs with timeout specification
+ * are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_EVENTS.
+ */
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
+#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
+
+/**
+ * @brief Synchronous Messages APIs.
+ * @details If enabled then the synchronous messages APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_MESSAGES)
+#define CH_CFG_USE_MESSAGES TRUE
+#endif
+
+/**
+ * @brief Synchronous Messages queuing mode.
+ * @details If enabled then messages are served by priority rather than in
+ * FIFO order.
+ *
+ * @note The default is @p FALSE. Enable this if you have special
+ * requirements.
+ * @note Requires @p CH_CFG_USE_MESSAGES.
+ */
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
+#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
+
+/**
+ * @brief Mailboxes APIs.
+ * @details If enabled then the asynchronous messages (mailboxes) APIs are
+ * included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_SEMAPHORES.
+ */
+#if !defined(CH_CFG_USE_MAILBOXES)
+#define CH_CFG_USE_MAILBOXES TRUE
+#endif
+
+/**
+ * @brief Core Memory Manager APIs.
+ * @details If enabled then the core memory manager APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_MEMCORE)
+#define CH_CFG_USE_MEMCORE TRUE
+#endif
+
+/**
+ * @brief Heap Allocator APIs.
+ * @details If enabled then the memory heap allocator APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or
+ * @p CH_CFG_USE_SEMAPHORES.
+ * @note Mutexes are recommended.
+ */
+#if !defined(CH_CFG_USE_HEAP)
+#define CH_CFG_USE_HEAP TRUE
+#endif
+
+/**
+ * @brief Memory Pools Allocator APIs.
+ * @details If enabled then the memory pools allocator APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p 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 Dynamic Threads APIs.
+ * @details If enabled then the dynamic threads creation APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_WAITEXIT.
+ * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
+ */
+#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
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Debug options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Debug option, kernel statistics.
+ *
+ * @note The default is @p FALSE.
+ */
+#if !defined(CH_DBG_STATISTICS)
+#define CH_DBG_STATISTICS FALSE
+#endif
+
+/**
+ * @brief Debug option, system state check.
+ * @details If enabled the correct call protocol for system APIs is checked
+ * at runtime.
+ *
+ * @note The default is @p FALSE.
+ */
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
+#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
+
+/**
+ * @brief Debug option, parameters checks.
+ * @details If enabled then the checks on the API functions input
+ * parameters are activated.
+ *
+ * @note The default is @p FALSE.
+ */
+#if !defined(CH_DBG_ENABLE_CHECKS)
+#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
+
+/**
+ * @brief Debug option, consistency checks.
+ * @details If enabled then all the assertions in the kernel code are
+ * activated. This includes consistency checks inside the kernel,
+ * runtime anomalies and port-defined checks.
+ *
+ * @note The default is @p FALSE.
+ */
+#if !defined(CH_DBG_ENABLE_ASSERTS)
+#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
+
+/**
+ * @brief Debug option, trace buffer.
+ * @details If enabled then the trace buffer is activated.
+ *
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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.
+ */
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
+
+/**
+ * @brief Debug option, stack checks.
+ * @details If enabled then a runtime stack check is performed.
+ *
+ * @note The default is @p FALSE.
+ * @note The stack check is performed in a architecture/port dependent way.
+ * It may not be implemented or some ports.
+ * @note The default failure mode is to halt the system with the global
+ * @p panic_msg variable set to @p NULL.
+ */
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
+#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
+
+/**
+ * @brief Debug option, stacks initialization.
+ * @details If enabled then the threads working area is filled with a byte
+ * value when a thread is created. This can be useful for the
+ * runtime measurement of the used stack.
+ *
+ * @note The default is @p FALSE.
+ */
+#if !defined(CH_DBG_FILL_THREADS)
+#define CH_DBG_FILL_THREADS TRUE
+#endif
+
+/**
+ * @brief Debug option, threads profiling.
+ * @details If enabled then a field is added to the @p thread_t structure that
+ * counts the system ticks occurred while executing the thread.
+ *
+ * @note The default is @p FALSE.
+ * @note This debug option is not currently compatible with the
+ * tickless mode.
+ */
+#if !defined(CH_DBG_THREADS_PROFILING)
+#define CH_DBG_THREADS_PROFILING FALSE
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Kernel hooks
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @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.
+ */
+#define CH_CFG_THREAD_EXTRA_FIELDS \
+ /* Add threads custom fields here.*/
+
+/**
+ * @brief Threads initialization hook.
+ * @details User initialization code added to the @p _thread_init() function.
+ *
+ * @note It is invoked from within @p _thread_init() and implicitly from all
+ * the threads creation APIs.
+ */
+#define CH_CFG_THREAD_INIT_HOOK(tp) { \
+ /* Add threads initialization code here.*/ \
+}
+
+/**
+ * @brief Threads finalization hook.
+ * @details User finalization code added to the @p chThdExit() API.
+ */
+#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
+ /* Add threads finalization code here.*/ \
+}
+
+/**
+ * @brief Context switch hook.
+ * @details This hook is invoked just before switching between threads.
+ */
+#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \
+ /* Context switch code here.*/ \
+}
+
+/**
+ * @brief ISR enter hook.
+ */
+#define CH_CFG_IRQ_PROLOGUE_HOOK() { \
+ /* IRQ prologue code here.*/ \
+}
+
+/**
+ * @brief ISR exit hook.
+ */
+#define CH_CFG_IRQ_EPILOGUE_HOOK() { \
+ /* IRQ epilogue code here.*/ \
+}
+
+/**
+ * @brief Idle thread enter hook.
+ * @note This hook is invoked within a critical zone, no OS functions
+ * should be invoked from here.
+ * @note This macro can be used to activate a power saving mode.
+ */
+#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
+}
+
+/**
+ * @brief Idle thread leave hook.
+ * @note This hook is invoked within a critical zone, no OS functions
+ * should be invoked from here.
+ * @note This macro can be used to deactivate a power saving mode.
+ */
+#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
+}
+
+/**
+ * @brief Idle Loop hook.
+ * @details This hook is continuously invoked by the idle thread loop.
+ */
+#define CH_CFG_IDLE_LOOP_HOOK() { \
+ /* Idle loop code here.*/ \
+}
+
+/**
+ * @brief System tick event hook.
+ * @details This hook is invoked in the system tick handler immediately
+ * after processing the virtual timers queue.
+ */
+#define CH_CFG_SYSTEM_TICK_HOOK() { \
+ /* System tick event code here.*/ \
+}
+
+/**
+ * @brief System halt hook.
+ * @details This hook is invoked in case to a system halting error before
+ * the system is halted.
+ */
+#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \
+ /* System halt code here.*/ \
+}
+
+/**
+ * @brief Trace hook.
+ * @details This hook is invoked each time a new record is written in the
+ * trace buffer.
+ */
+#define CH_CFG_TRACE_HOOK(tep) { \
+ /* Trace code here.*/ \
+}
+
+/** @} */
+
+/*===========================================================================*/
+/* Port-specific settings (override port settings defaulted in chcore.h). */
+/*===========================================================================*/
+
+#endif /* CHCONF_H */
+
+/** @} */
diff --git a/testhal/NRF52/NRF52832/PWM-ICU/halconf.h b/testhal/NRF52/NRF52832/PWM-ICU/halconf.h new file mode 100644 index 0000000..6674ab5 --- /dev/null +++ b/testhal/NRF52/NRF52832/PWM-ICU/halconf.h @@ -0,0 +1,327 @@ +/*
+ Copyright (C) 2015 Fabio Utzig
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/**
+ * @file templates/halconf.h
+ * @brief HAL configuration header.
+ * @details HAL configuration file, this file allows to enable or disable the
+ * various device drivers from your application. You may also use
+ * this file in order to override the device drivers default settings.
+ *
+ * @addtogroup HAL_CONF
+ * @{
+ */
+
+#ifndef _HALCONF_H_
+#define _HALCONF_H_
+
+#include "mcuconf.h"
+
+/**
+ * @brief Enables the PAL subsystem.
+ */
+#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__)
+#define HAL_USE_PAL TRUE
+#endif
+
+/**
+ * @brief Enables the ADC subsystem.
+ */
+#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__)
+#define HAL_USE_ADC FALSE
+#endif
+
+/**
+ * @brief Enables the CAN subsystem.
+ */
+#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__)
+#define HAL_USE_CAN FALSE
+#endif
+
+/**
+ * @brief Enables the EXT subsystem.
+ */
+#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__)
+#define HAL_USE_EXT FALSE
+#endif
+
+/**
+ * @brief Enables the GPT subsystem.
+ */
+#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__)
+#define HAL_USE_GPT FALSE
+#endif
+
+/**
+ * @brief Enables the I2C subsystem.
+ */
+#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__)
+#define HAL_USE_I2C FALSE
+#endif
+
+/**
+ * @brief Enables the I2S subsystem.
+ */
+#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__)
+#define HAL_USE_I2S FALSE
+#endif
+
+/**
+ * @brief Enables the ICU subsystem.
+ */
+#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__)
+#define HAL_USE_ICU TRUE
+#endif
+
+/**
+ * @brief Enables the MAC subsystem.
+ */
+#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__)
+#define HAL_USE_MAC FALSE
+#endif
+
+/**
+ * @brief Enables the MMC_SPI subsystem.
+ */
+#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__)
+#define HAL_USE_MMC_SPI FALSE
+#endif
+
+/**
+ * @brief Enables the PWM subsystem.
+ */
+#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__)
+#define HAL_USE_PWM TRUE
+#endif
+
+/**
+ * @brief Enables the RTC subsystem.
+ */
+#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__)
+#define HAL_USE_RTC FALSE
+#endif
+
+/**
+ * @brief Enables the SDC subsystem.
+ */
+#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__)
+#define HAL_USE_SDC FALSE
+#endif
+
+/**
+ * @brief Enables the SERIAL subsystem.
+ */
+#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__)
+#define HAL_USE_SERIAL TRUE
+#endif
+
+/**
+ * @brief Enables the SERIAL over USB subsystem.
+ */
+#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
+#define HAL_USE_SERIAL_USB FALSE
+#endif
+
+/**
+ * @brief Enables the SPI subsystem.
+ */
+#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__)
+#define HAL_USE_SPI FALSE
+#endif
+
+/**
+ * @brief Enables the UART subsystem.
+ */
+#if !defined(HAL_USE_UART) || defined(__DOXYGEN__)
+#define HAL_USE_UART FALSE
+#endif
+
+/**
+ * @brief Enables the USB subsystem.
+ */
+#if !defined(HAL_USE_USB) || defined(__DOXYGEN__)
+#define HAL_USE_USB FALSE
+#endif
+
+/*===========================================================================*/
+/* ADC driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__)
+#define ADC_USE_WAIT TRUE
+#endif
+
+/**
+ * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+#define ADC_USE_MUTUAL_EXCLUSION TRUE
+#endif
+
+/*===========================================================================*/
+/* CAN driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Sleep mode related APIs inclusion switch.
+ */
+#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__)
+#define CAN_USE_SLEEP_MODE TRUE
+#endif
+
+/*===========================================================================*/
+/* I2C driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables the mutual exclusion APIs on the I2C bus.
+ */
+#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+#define I2C_USE_MUTUAL_EXCLUSION TRUE
+#endif
+
+/*===========================================================================*/
+/* MAC driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables an event sources for incoming packets.
+ */
+#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__)
+#define MAC_USE_ZERO_COPY FALSE
+#endif
+
+/**
+ * @brief Enables an event sources for incoming packets.
+ */
+#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__)
+#define MAC_USE_EVENTS TRUE
+#endif
+
+/*===========================================================================*/
+/* MMC_SPI driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Delays insertions.
+ * @details If enabled this options inserts delays into the MMC waiting
+ * routines releasing some extra CPU time for the threads with
+ * lower priority, this may slow down the driver a bit however.
+ * This option is recommended also if the SPI driver does not
+ * use a DMA channel and heavily loads the CPU.
+ */
+#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__)
+#define MMC_NICE_WAITING TRUE
+#endif
+
+/*===========================================================================*/
+/* SDC driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Number of initialization attempts before rejecting the card.
+ * @note Attempts are performed at 10mS intervals.
+ */
+#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__)
+#define SDC_INIT_RETRY 100
+#endif
+
+/**
+ * @brief Include support for MMC cards.
+ * @note MMC support is not yet implemented so this option must be kept
+ * at @p FALSE.
+ */
+#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__)
+#define SDC_MMC_SUPPORT FALSE
+#endif
+
+/**
+ * @brief Delays insertions.
+ * @details If enabled this options inserts delays into the MMC waiting
+ * routines releasing some extra CPU time for the threads with
+ * lower priority, this may slow down the driver a bit however.
+ */
+#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__)
+#define SDC_NICE_WAITING TRUE
+#endif
+
+/*===========================================================================*/
+/* SERIAL driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Default bit rate.
+ * @details Configuration parameter, this is the baud rate selected for the
+ * default configuration.
+ */
+#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__)
+#define SERIAL_DEFAULT_BITRATE 38400
+#endif
+
+/**
+ * @brief Serial buffers size.
+ * @details Configuration parameter, you can change the depth of the queue
+ * buffers depending on the requirements of your application.
+ * @note The default is 64 bytes for both the transmission and receive
+ * buffers.
+ */
+#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
+#define SERIAL_BUFFERS_SIZE 16
+#endif
+
+/*===========================================================================*/
+/* SERIAL_USB driver related setting. */
+/*===========================================================================*/
+
+/**
+ * @brief Serial over USB buffers size.
+ * @details Configuration parameter, the buffer size must be a multiple of
+ * the USB data endpoint maximum packet size.
+ * @note The default is 64 bytes for both the transmission and receive
+ * buffers.
+ */
+#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__)
+#define SERIAL_USB_BUFFERS_SIZE 256
+#endif
+
+/*===========================================================================*/
+/* SPI driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__)
+#define SPI_USE_WAIT TRUE
+#endif
+
+/**
+ * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+#define SPI_USE_MUTUAL_EXCLUSION TRUE
+#endif
+
+#endif /* _HALCONF_H_ */
+
+/** @} */
diff --git a/testhal/NRF52/NRF52832/PWM-ICU/halconf_community.h b/testhal/NRF52/NRF52832/PWM-ICU/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/NRF52/NRF52832/PWM-ICU/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/NRF52/NRF52832/PWM-ICU/main.c b/testhal/NRF52/NRF52832/PWM-ICU/main.c new file mode 100644 index 0000000..6ad8a4c --- /dev/null +++ b/testhal/NRF52/NRF52832/PWM-ICU/main.c @@ -0,0 +1,122 @@ +/*
+ Copyright (C) 2018 andru
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#include "ch.h"
+#include "hal.h"
+#include "chprintf.h"
+
+static icucnt_t last_width, last_period;
+
+static SerialConfig serial_config = {
+ .speed = 38400,
+ .tx_pad = UART_TX,
+ .rx_pad = UART_RX,
+#if NRF5_SERIAL_USE_HWFLOWCTRL == TRUE
+ .rts_pad = UART_RTS,
+ .cts_pad = UART_CTS,
+#endif
+};
+
+static void pwm_cb_period(PWMDriver *pwmp) {
+ (void)pwmp;
+ palTogglePad(IOPORT1, LED1);
+}
+
+void icu_width_cb(ICUDriver *icup) { + last_width = icuGetWidthX(icup); +} + +void icu_period_cb(ICUDriver *icup) { + last_period = icuGetPeriodX(icup); +} + +ICUConfig icucfg = { + .frequency = ICU_FREQUENCY_250KHZ, + .width_cb = icu_width_cb, + .period_cb = icu_period_cb, + NULL, + .iccfgp = { + { + .ioline = { BTN1, BTN2 }, + .mode = ICU_INPUT_ACTIVE_HIGH, + .gpiote_channel = { 0, 1 }, + .ppi_channel = { 0, 1 }, + }, + }, +}; +
+PWMConfig pwmcfg = {
+ .frequency = PWM_FREQUENCY_125KHZ,
+ .period = 12500,
+ .callback = pwm_cb_period,
+ {
+ { .mode = PWM_OUTPUT_DISABLED,
+ },
+ { .mode = PWM_OUTPUT_ACTIVE_HIGH,
+ .ioline = LINE_LED2,
+ },
+ },
+};
+
+/*
+ * Application entry point.
+ */
+int main(void) {
+ /*
+ * System initializations.
+ * - HAL initialization, this also initializes the configured device drivers
+ * and performs the board-specific initializations.
+ * - Kernel initialization, the main() function becomes a thread and the
+ * RTOS is active.
+ */
+ halInit();
+ chSysInit();
+
+ sdStart(&SD1, &serial_config);
+
+ /*
+ *
+ */
+ pwmStart(&PWMD1, &pwmcfg);
+ pwmEnablePeriodicNotification(&PWMD1);
+ + icuStart(&ICUD1, &icucfg); + icuStartCapture(&ICUD1); +
+ pwmEnableChannel(&PWMD1, 1, PWM_PERCENTAGE_TO_WIDTH(&PWMD1, 2500)); // 25%
+ chThdSleepMilliseconds(5000);
+ chprintf((BaseSequentialStream *) &SD1, "period=%d, width=%d\r\n", last_period, last_width);
+
+ pwmEnableChannel(&PWMD1, 1, PWM_PERCENTAGE_TO_WIDTH(&PWMD1, 5000)); // 50%
+ chThdSleepMilliseconds(5000);
+ chprintf((BaseSequentialStream *) &SD1, "period=%d, width=%d\r\n", last_period, last_width);
+
+ pwmEnableChannel(&PWMD1, 1, PWM_PERCENTAGE_TO_WIDTH(&PWMD1, 7500)); // 75%
+ chThdSleepMilliseconds(5000);
+ chprintf((BaseSequentialStream *) &SD1, "period=%d, width=%d\r\n", last_period, last_width);
+
+ pwmChangePeriod(&PWMD1, 5000);
+ chThdSleepMilliseconds(5000);
+
+ pwmDisableChannel(&PWMD1, 1);
+ pwmStop(&PWMD1);
+ icuStopCapture(&ICUD1);
+ icuStop(&ICUD1);
+
+ while (true) {
+ chThdSleepMilliseconds(500);
+ }
+}
diff --git a/testhal/NRF52/NRF52832/PWM-ICU/mcuconf.h b/testhal/NRF52/NRF52832/PWM-ICU/mcuconf.h new file mode 100644 index 0000000..e2fbdb8 --- /dev/null +++ b/testhal/NRF52/NRF52832/PWM-ICU/mcuconf.h @@ -0,0 +1,33 @@ +/*
+ Copyright (C) 2015 Fabio Utzig
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#ifndef _MCUCONF_H_
+#define _MCUCONF_H_
+
+/*
+ * HAL driver system settings.
+ */
+#define NRF5_SERIAL_USE_UART0 TRUE
+#define NRF5_ST_USE_RTC0 TRUE
+#define NRF5_ST_USE_RTC1 FALSE
+#define NRF5_ST_USE_TIMER0 FALSE
+#define NRF5_PWM_USE_PWM0 TRUE
+#define NRF5_PWM_PWM0_PRIORITY 6
+#define NRF5_ICU_USE_TIMER0 TRUE
+#define NRF5_ICU_GPIOTE_IRQ_PRIORITY 4
+#define NRF5_ICU_TIMER0_IRQ_PRIORITY 4
+
+#endif /* _MCUCONF_H_ */
diff --git a/testhal/NRF52/NRF52832/RADIO-ESB/Makefile b/testhal/NRF52/NRF52832/RADIO-ESB/Makefile new file mode 100644 index 0000000..a01eb88 --- /dev/null +++ b/testhal/NRF52/NRF52832/RADIO-ESB/Makefile @@ -0,0 +1,212 @@ +##############################################################################
+# Build global options
+# NOTE: Can be overridden externally.
+#
+
+# Compiler options here.
+ifeq ($(USE_OPT),)
+ USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16
+endif
+
+# C specific options here (added to USE_OPT).
+ifeq ($(USE_COPT),)
+ USE_COPT =
+endif
+
+# C++ specific options here (added to USE_OPT).
+ifeq ($(USE_CPPOPT),)
+ USE_CPPOPT = -fno-rtti
+endif
+
+# Enable this if you want the linker to remove unused code and data
+ifeq ($(USE_LINK_GC),)
+ USE_LINK_GC = yes
+endif
+
+# Linker extra options here.
+ifeq ($(USE_LDOPT),)
+ USE_LDOPT =
+endif
+
+# Enable this if you want link time optimizations (LTO)
+ifeq ($(USE_LTO),)
+ USE_LTO = yes
+endif
+
+# If enabled, this option allows to compile the application in THUMB mode.
+ifeq ($(USE_THUMB),)
+ USE_THUMB = yes
+endif
+
+# Enable this if you want to see the full log while compiling.
+ifeq ($(USE_VERBOSE_COMPILE),)
+ USE_VERBOSE_COMPILE = no
+endif
+
+#
+# Build global options
+##############################################################################
+
+##############################################################################
+# Architecture or project specific options
+#
+
+# Stack size to be allocated to the Cortex-M process stack. This stack is
+# the stack used by the main() thread.
+ifeq ($(USE_PROCESS_STACKSIZE),)
+ USE_PROCESS_STACKSIZE = 0x400
+endif
+
+# Stack size to the allocated to the Cortex-M main/exceptions stack. This
+# stack is used for processing interrupts and exceptions.
+ifeq ($(USE_EXCEPTIONS_STACKSIZE),)
+ USE_EXCEPTIONS_STACKSIZE = 0x400
+endif
+
+# Enables the use of FPU on Cortex-M4 (no, softfp, hard).
+ifeq ($(USE_FPU),)
+ USE_FPU = no
+endif
+
+#
+# Architecture or project specific options
+##############################################################################
+
+##############################################################################
+# Project, sources and paths
+#
+
+# Define project name here
+PROJECT = ch
+
+# Imported source files and paths
+CHIBIOS = ../../../../../ChibiOS
+CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
+# Licensing files.
+include $(CHIBIOS)/os/license/license.mk
+# Startup files.
+include $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_nrf52.mk
+# HAL-OSAL files (optional).
+include $(CHIBIOS)/os/hal/hal.mk
+include $(CHIBIOS_CONTRIB)/os/hal/ports/NRF5/NRF52832/platform.mk
+include $(CHIBIOS_CONTRIB)/os/hal/boards/NRF52-E73-2G4M04S/board.mk
+include $(CHIBIOS)/os/hal/osal/rt/osal.mk
+# RTOS files (optional).
+include $(CHIBIOS)/os/rt/rt.mk
+include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v7m.mk
+# Other files (optional).
+#include $(CHIBIOS)/test/rt/test.mk
+
+# Define linker script file here
+LDSCRIPT= $(STARTUPLD)/NRF52832.ld
+
+# C sources that can be compiled in ARM or THUMB mode depending on the global
+# setting.
+CSRC = $(ALLCSRC) \
+ $(TESTSRC) \
+ $(CHIBIOS)/os/various/syscalls.c \
+ $(CHIBIOS)/os/hal/lib/streams/memstreams.c \
+ $(CHIBIOS)/os/hal/lib/streams/chprintf.c \
+ nrf52_radio.c \
+ main.c
+
+# C++ sources that can be compiled in ARM or THUMB mode depending on the global
+# setting.
+CPPSRC = $(ALLCPPSRC)
+
+# C sources to be compiled in ARM mode regardless of the global setting.
+# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
+# option that results in lower performance and larger code size.
+ACSRC =
+
+# C++ sources to be compiled in ARM mode regardless of the global setting.
+# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
+# option that results in lower performance and larger code size.
+ACPPSRC =
+
+# C sources to be compiled in THUMB mode regardless of the global setting.
+# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
+# option that results in lower performance and larger code size.
+TCSRC =
+
+# C sources to be compiled in THUMB mode regardless of the global setting.
+# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
+# option that results in lower performance and larger code size.
+TCPPSRC =
+
+# List ASM source files here
+ASMSRC = $(ALLASMSRC)
+ASMXSRC = $(ALLXASMSRC)
+
+INCDIR = $(ALLINC) $(TESTINC) \
+ $(CHIBIOS)/os/hal/lib/streams \
+ $(TESTHAL)
+
+#
+# Project, sources and paths
+##############################################################################
+
+##############################################################################
+# Compiler settings
+#
+
+MCU = cortex-m4
+
+TRGT = arm-none-eabi-
+CC = $(TRGT)gcc
+CPPC = $(TRGT)g++
+# Enable loading with g++ only if you need C++ runtime support.
+# NOTE: You can use C++ even without C++ support if you are careful. C++
+# runtime support makes code size explode.
+LD = $(TRGT)gcc
+#LD = $(TRGT)g++
+CP = $(TRGT)objcopy
+AS = $(TRGT)gcc -x assembler-with-cpp
+AR = $(TRGT)ar
+OD = $(TRGT)objdump
+SZ = $(TRGT)size
+HEX = $(CP) -O ihex
+BIN = $(CP) -O binary
+SREC = $(CP) -O srec
+
+# ARM-specific options here
+AOPT =
+
+# THUMB-specific options here
+TOPT = -mthumb -DTHUMB
+
+# Define C warning options here
+CWARN = -Wall -Wextra -Wstrict-prototypes
+
+# Define C++ warning options here
+CPPWARN = -Wall -Wextra
+
+#
+# Compiler settings
+##############################################################################
+
+##############################################################################
+# Start of user section
+#
+
+# List all user C define here, like -D_DEBUG=1
+UDEFS =
+
+# Define ASM defines here
+UADEFS =
+
+# List all user directories here
+UINCDIR =
+
+# List the user directory to look for the libraries here
+ULIBDIR =
+
+# List all user libraries here
+ULIBS =
+
+#
+# End of user defines
+##############################################################################
+
+RULESPATH = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC
+include $(RULESPATH)/rules.mk
diff --git a/testhal/NRF52/NRF52832/RADIO-ESB/chconf.h b/testhal/NRF52/NRF52832/RADIO-ESB/chconf.h new file mode 100644 index 0000000..1750f63 --- /dev/null +++ b/testhal/NRF52/NRF52832/RADIO-ESB/chconf.h @@ -0,0 +1,696 @@ +/*
+ 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.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/**
+ * @file 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.
+ *
+ * @addtogroup config
+ * @details Kernel related settings and hooks.
+ * @{
+ */
+
+#ifndef CHCONF_H
+#define CHCONF_H
+
+#define _CHIBIOS_RT_CONF_
+#define _CHIBIOS_RT_CONF_VER_5_1_
+
+/*===========================================================================*/
+/**
+ * @name System timers settings
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief System time counter resolution.
+ * @note Allowed values are 16 or 32 bits.
+ */
+#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.
+ */
+#if !defined(CH_CFG_ST_FREQUENCY)
+#define CH_CFG_ST_FREQUENCY 1000
+#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.
+ * @note If this value is zero then the system uses the classic
+ * periodic tick. This value represents the minimum number
+ * of ticks that is safe to specify in a timeout directive.
+ * The value one is not valid, timeouts are rounded up to
+ * this value.
+ */
+#if !defined(CH_CFG_ST_TIMEDELTA)
+#define CH_CFG_ST_TIMEDELTA 0
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Kernel parameters and options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Round robin interval.
+ * @details This constant is the number of system ticks allowed for the
+ * threads before preemption occurs. Setting this value to zero
+ * disables the preemption for threads with equal priority and the
+ * round robin becomes cooperative. Note that higher priority
+ * threads can still preempt, the kernel is always preemptive.
+ * @note Disabling the round robin preemption makes the kernel more compact
+ * and generally faster.
+ * @note The round robin preemption is not supported in tickless mode and
+ * must be set to zero in that case.
+ */
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 2
+#endif
+
+/**
+ * @brief Managed RAM size.
+ * @details Size of the RAM area to be managed by the OS. If set to zero
+ * then the whole available RAM is used. The core memory is made
+ * available to the heap allocator and/or can be used directly through
+ * the simplified core memory allocator.
+ *
+ * @note In order to let the OS manage the whole RAM the linker script must
+ * provide the @p __heap_base__ and @p __heap_end__ symbols.
+ * @note Requires @p CH_CFG_USE_MEMCORE.
+ */
+#if !defined(CH_CFG_MEMCORE_SIZE)
+#define CH_CFG_MEMCORE_SIZE 0
+#endif
+
+/**
+ * @brief Idle thread automatic spawn suppression.
+ * @details When this option is activated the function @p chSysInit()
+ * does not spawn the idle thread. The application @p main()
+ * function becomes the idle thread and must implement an
+ * infinite loop.
+ */
+#if !defined(CH_CFG_NO_IDLE_THREAD)
+#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Performance options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief OS optimization.
+ * @details If enabled then time efficient rather than space efficient code
+ * is used when two possible implementations exist.
+ *
+ * @note This is not related to the compiler optimization options.
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
+#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Subsystem options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Time Measurement APIs.
+ * @details If enabled then the time measurement APIs are included in
+ * the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_TM)
+#define CH_CFG_USE_TM FALSE
+#endif
+
+/**
+ * @brief Threads registry APIs.
+ * @details If enabled then the registry APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_REGISTRY)
+#define CH_CFG_USE_REGISTRY TRUE
+#endif
+
+/**
+ * @brief Threads synchronization APIs.
+ * @details If enabled then the @p chThdWait() function is included in
+ * the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_WAITEXIT)
+#define CH_CFG_USE_WAITEXIT TRUE
+#endif
+
+/**
+ * @brief Semaphores APIs.
+ * @details If enabled then the Semaphores APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_SEMAPHORES)
+#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
+
+/**
+ * @brief Semaphores queuing mode.
+ * @details If enabled then the threads are enqueued on semaphores by
+ * priority rather than in FIFO order.
+ *
+ * @note The default is @p FALSE. Enable this if you have special
+ * requirements.
+ * @note Requires @p CH_CFG_USE_SEMAPHORES.
+ */
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
+#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
+
+/**
+ * @brief Mutexes APIs.
+ * @details If enabled then the mutexes APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_MUTEXES)
+#define CH_CFG_USE_MUTEXES TRUE
+#endif
+
+/**
+ * @brief Enables recursive behavior on mutexes.
+ * @note Recursive mutexes are heavier and have an increased
+ * memory footprint.
+ *
+ * @note The default is @p FALSE.
+ * @note Requires @p CH_CFG_USE_MUTEXES.
+ */
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
+#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
+
+/**
+ * @brief Conditional Variables APIs.
+ * @details If enabled then the conditional variables APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_MUTEXES.
+ */
+#if !defined(CH_CFG_USE_CONDVARS)
+#define CH_CFG_USE_CONDVARS TRUE
+#endif
+
+/**
+ * @brief Conditional Variables APIs with timeout.
+ * @details If enabled then the conditional variables APIs with timeout
+ * specification are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_CONDVARS.
+ */
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
+#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
+
+/**
+ * @brief Events Flags APIs.
+ * @details If enabled then the event flags APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_EVENTS)
+#define CH_CFG_USE_EVENTS TRUE
+#endif
+
+/**
+ * @brief Events Flags APIs with timeout.
+ * @details If enabled then the events APIs with timeout specification
+ * are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_EVENTS.
+ */
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
+#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
+
+/**
+ * @brief Synchronous Messages APIs.
+ * @details If enabled then the synchronous messages APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_MESSAGES)
+#define CH_CFG_USE_MESSAGES TRUE
+#endif
+
+/**
+ * @brief Synchronous Messages queuing mode.
+ * @details If enabled then messages are served by priority rather than in
+ * FIFO order.
+ *
+ * @note The default is @p FALSE. Enable this if you have special
+ * requirements.
+ * @note Requires @p CH_CFG_USE_MESSAGES.
+ */
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
+#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
+
+/**
+ * @brief Mailboxes APIs.
+ * @details If enabled then the asynchronous messages (mailboxes) APIs are
+ * included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_SEMAPHORES.
+ */
+#if !defined(CH_CFG_USE_MAILBOXES)
+#define CH_CFG_USE_MAILBOXES TRUE
+#endif
+
+/**
+ * @brief Core Memory Manager APIs.
+ * @details If enabled then the core memory manager APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_MEMCORE)
+#define CH_CFG_USE_MEMCORE TRUE
+#endif
+
+/**
+ * @brief Heap Allocator APIs.
+ * @details If enabled then the memory heap allocator APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or
+ * @p CH_CFG_USE_SEMAPHORES.
+ * @note Mutexes are recommended.
+ */
+#if !defined(CH_CFG_USE_HEAP)
+#define CH_CFG_USE_HEAP TRUE
+#endif
+
+/**
+ * @brief Memory Pools Allocator APIs.
+ * @details If enabled then the memory pools allocator APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p 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 Dynamic Threads APIs.
+ * @details If enabled then the dynamic threads creation APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_WAITEXIT.
+ * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
+ */
+#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
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Debug options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Debug option, kernel statistics.
+ *
+ * @note The default is @p FALSE.
+ */
+#if !defined(CH_DBG_STATISTICS)
+#define CH_DBG_STATISTICS FALSE
+#endif
+
+/**
+ * @brief Debug option, system state check.
+ * @details If enabled the correct call protocol for system APIs is checked
+ * at runtime.
+ *
+ * @note The default is @p FALSE.
+ */
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
+#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
+
+/**
+ * @brief Debug option, parameters checks.
+ * @details If enabled then the checks on the API functions input
+ * parameters are activated.
+ *
+ * @note The default is @p FALSE.
+ */
+#if !defined(CH_DBG_ENABLE_CHECKS)
+#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
+
+/**
+ * @brief Debug option, consistency checks.
+ * @details If enabled then all the assertions in the kernel code are
+ * activated. This includes consistency checks inside the kernel,
+ * runtime anomalies and port-defined checks.
+ *
+ * @note The default is @p FALSE.
+ */
+#if !defined(CH_DBG_ENABLE_ASSERTS)
+#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
+
+/**
+ * @brief Debug option, trace buffer.
+ * @details If enabled then the trace buffer is activated.
+ *
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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.
+ */
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
+
+/**
+ * @brief Debug option, stack checks.
+ * @details If enabled then a runtime stack check is performed.
+ *
+ * @note The default is @p FALSE.
+ * @note The stack check is performed in a architecture/port dependent way.
+ * It may not be implemented or some ports.
+ * @note The default failure mode is to halt the system with the global
+ * @p panic_msg variable set to @p NULL.
+ */
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
+#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
+
+/**
+ * @brief Debug option, stacks initialization.
+ * @details If enabled then the threads working area is filled with a byte
+ * value when a thread is created. This can be useful for the
+ * runtime measurement of the used stack.
+ *
+ * @note The default is @p FALSE.
+ */
+#if !defined(CH_DBG_FILL_THREADS)
+#define CH_DBG_FILL_THREADS TRUE
+#endif
+
+/**
+ * @brief Debug option, threads profiling.
+ * @details If enabled then a field is added to the @p thread_t structure that
+ * counts the system ticks occurred while executing the thread.
+ *
+ * @note The default is @p FALSE.
+ * @note This debug option is not currently compatible with the
+ * tickless mode.
+ */
+#if !defined(CH_DBG_THREADS_PROFILING)
+#define CH_DBG_THREADS_PROFILING FALSE
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Kernel hooks
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @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.
+ */
+#define CH_CFG_THREAD_EXTRA_FIELDS \
+ /* Add threads custom fields here.*/
+
+/**
+ * @brief Threads initialization hook.
+ * @details User initialization code added to the @p _thread_init() function.
+ *
+ * @note It is invoked from within @p _thread_init() and implicitly from all
+ * the threads creation APIs.
+ */
+#define CH_CFG_THREAD_INIT_HOOK(tp) { \
+ /* Add threads initialization code here.*/ \
+}
+
+/**
+ * @brief Threads finalization hook.
+ * @details User finalization code added to the @p chThdExit() API.
+ */
+#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
+ /* Add threads finalization code here.*/ \
+}
+
+/**
+ * @brief Context switch hook.
+ * @details This hook is invoked just before switching between threads.
+ */
+#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \
+ /* Context switch code here.*/ \
+}
+
+/**
+ * @brief ISR enter hook.
+ */
+#define CH_CFG_IRQ_PROLOGUE_HOOK() { \
+ /* IRQ prologue code here.*/ \
+}
+
+/**
+ * @brief ISR exit hook.
+ */
+#define CH_CFG_IRQ_EPILOGUE_HOOK() { \
+ /* IRQ epilogue code here.*/ \
+}
+
+/**
+ * @brief Idle thread enter hook.
+ * @note This hook is invoked within a critical zone, no OS functions
+ * should be invoked from here.
+ * @note This macro can be used to activate a power saving mode.
+ */
+#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
+}
+
+/**
+ * @brief Idle thread leave hook.
+ * @note This hook is invoked within a critical zone, no OS functions
+ * should be invoked from here.
+ * @note This macro can be used to deactivate a power saving mode.
+ */
+#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
+}
+
+/**
+ * @brief Idle Loop hook.
+ * @details This hook is continuously invoked by the idle thread loop.
+ */
+#define CH_CFG_IDLE_LOOP_HOOK() { \
+ /* Idle loop code here.*/ \
+}
+
+/**
+ * @brief System tick event hook.
+ * @details This hook is invoked in the system tick handler immediately
+ * after processing the virtual timers queue.
+ */
+#define CH_CFG_SYSTEM_TICK_HOOK() { \
+ /* System tick event code here.*/ \
+}
+
+/**
+ * @brief System halt hook.
+ * @details This hook is invoked in case to a system halting error before
+ * the system is halted.
+ */
+#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \
+ /* System halt code here.*/ \
+}
+
+/**
+ * @brief Trace hook.
+ * @details This hook is invoked each time a new record is written in the
+ * trace buffer.
+ */
+#define CH_CFG_TRACE_HOOK(tep) { \
+ /* Trace code here.*/ \
+}
+
+/** @} */
+
+/*===========================================================================*/
+/* Port-specific settings (override port settings defaulted in chcore.h). */
+/*===========================================================================*/
+
+#endif /* CHCONF_H */
+
+/** @} */
diff --git a/testhal/NRF52/NRF52832/RADIO-ESB/halconf.h b/testhal/NRF52/NRF52832/RADIO-ESB/halconf.h new file mode 100644 index 0000000..d7d0f43 --- /dev/null +++ b/testhal/NRF52/NRF52832/RADIO-ESB/halconf.h @@ -0,0 +1,327 @@ +/*
+ Copyright (C) 2015 Stephen Caudle
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/**
+ * @file templates/halconf.h
+ * @brief HAL configuration header.
+ * @details HAL configuration file, this file allows to enable or disable the
+ * various device drivers from your application. You may also use
+ * this file in order to override the device drivers default settings.
+ *
+ * @addtogroup HAL_CONF
+ * @{
+ */
+
+#ifndef _HALCONF_H_
+#define _HALCONF_H_
+
+#include "mcuconf.h"
+
+/**
+ * @brief Enables the PAL subsystem.
+ */
+#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__)
+#define HAL_USE_PAL TRUE
+#endif
+
+/**
+ * @brief Enables the ADC subsystem.
+ */
+#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__)
+#define HAL_USE_ADC FALSE
+#endif
+
+/**
+ * @brief Enables the CAN subsystem.
+ */
+#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__)
+#define HAL_USE_CAN FALSE
+#endif
+
+/**
+ * @brief Enables the EXT subsystem.
+ */
+#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__)
+#define HAL_USE_EXT FALSE
+#endif
+
+/**
+ * @brief Enables the GPT subsystem.
+ */
+#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__)
+#define HAL_USE_GPT FALSE
+#endif
+
+/**
+ * @brief Enables the I2C subsystem.
+ */
+#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__)
+#define HAL_USE_I2C FALSE
+#endif
+
+/**
+ * @brief Enables the I2S subsystem.
+ */
+#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__)
+#define HAL_USE_I2S FALSE
+#endif
+
+/**
+ * @brief Enables the ICU subsystem.
+ */
+#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__)
+#define HAL_USE_ICU FALSE
+#endif
+
+/**
+ * @brief Enables the MAC subsystem.
+ */
+#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__)
+#define HAL_USE_MAC FALSE
+#endif
+
+/**
+ * @brief Enables the MMC_SPI subsystem.
+ */
+#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__)
+#define HAL_USE_MMC_SPI FALSE
+#endif
+
+/**
+ * @brief Enables the PWM subsystem.
+ */
+#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__)
+#define HAL_USE_PWM FALSE
+#endif
+
+/**
+ * @brief Enables the RTC subsystem.
+ */
+#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__)
+#define HAL_USE_RTC FALSE
+#endif
+
+/**
+ * @brief Enables the SDC subsystem.
+ */
+#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__)
+#define HAL_USE_SDC FALSE
+#endif
+
+/**
+ * @brief Enables the SERIAL subsystem.
+ */
+#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__)
+#define HAL_USE_SERIAL TRUE
+#endif
+
+/**
+ * @brief Enables the SERIAL over USB subsystem.
+ */
+#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
+#define HAL_USE_SERIAL_USB FALSE
+#endif
+
+/**
+ * @brief Enables the SPI subsystem.
+ */
+#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__)
+#define HAL_USE_SPI FALSE
+#endif
+
+/**
+ * @brief Enables the UART subsystem.
+ */
+#if !defined(HAL_USE_UART) || defined(__DOXYGEN__)
+#define HAL_USE_UART FALSE
+#endif
+
+/**
+ * @brief Enables the USB subsystem.
+ */
+#if !defined(HAL_USE_USB) || defined(__DOXYGEN__)
+#define HAL_USE_USB FALSE
+#endif
+
+/*===========================================================================*/
+/* ADC driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__)
+#define ADC_USE_WAIT TRUE
+#endif
+
+/**
+ * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+#define ADC_USE_MUTUAL_EXCLUSION TRUE
+#endif
+
+/*===========================================================================*/
+/* CAN driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Sleep mode related APIs inclusion switch.
+ */
+#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__)
+#define CAN_USE_SLEEP_MODE TRUE
+#endif
+
+/*===========================================================================*/
+/* I2C driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables the mutual exclusion APIs on the I2C bus.
+ */
+#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+#define I2C_USE_MUTUAL_EXCLUSION TRUE
+#endif
+
+/*===========================================================================*/
+/* MAC driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables an event sources for incoming packets.
+ */
+#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__)
+#define MAC_USE_ZERO_COPY FALSE
+#endif
+
+/**
+ * @brief Enables an event sources for incoming packets.
+ */
+#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__)
+#define MAC_USE_EVENTS TRUE
+#endif
+
+/*===========================================================================*/
+/* MMC_SPI driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Delays insertions.
+ * @details If enabled this options inserts delays into the MMC waiting
+ * routines releasing some extra CPU time for the threads with
+ * lower priority, this may slow down the driver a bit however.
+ * This option is recommended also if the SPI driver does not
+ * use a DMA channel and heavily loads the CPU.
+ */
+#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__)
+#define MMC_NICE_WAITING TRUE
+#endif
+
+/*===========================================================================*/
+/* SDC driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Number of initialization attempts before rejecting the card.
+ * @note Attempts are performed at 10mS intervals.
+ */
+#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__)
+#define SDC_INIT_RETRY 100
+#endif
+
+/**
+ * @brief Include support for MMC cards.
+ * @note MMC support is not yet implemented so this option must be kept
+ * at @p FALSE.
+ */
+#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__)
+#define SDC_MMC_SUPPORT FALSE
+#endif
+
+/**
+ * @brief Delays insertions.
+ * @details If enabled this options inserts delays into the MMC waiting
+ * routines releasing some extra CPU time for the threads with
+ * lower priority, this may slow down the driver a bit however.
+ */
+#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__)
+#define SDC_NICE_WAITING TRUE
+#endif
+
+/*===========================================================================*/
+/* SERIAL driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Default bit rate.
+ * @details Configuration parameter, this is the baud rate selected for the
+ * default configuration.
+ */
+#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__)
+#define SERIAL_DEFAULT_BITRATE 38400
+#endif
+
+/**
+ * @brief Serial buffers size.
+ * @details Configuration parameter, you can change the depth of the queue
+ * buffers depending on the requirements of your application.
+ * @note The default is 64 bytes for both the transmission and receive
+ * buffers.
+ */
+#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
+#define SERIAL_BUFFERS_SIZE 16
+#endif
+
+/*===========================================================================*/
+/* SERIAL_USB driver related setting. */
+/*===========================================================================*/
+
+/**
+ * @brief Serial over USB buffers size.
+ * @details Configuration parameter, the buffer size must be a multiple of
+ * the USB data endpoint maximum packet size.
+ * @note The default is 64 bytes for both the transmission and receive
+ * buffers.
+ */
+#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__)
+#define SERIAL_USB_BUFFERS_SIZE 256
+#endif
+
+/*===========================================================================*/
+/* SPI driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__)
+#define SPI_USE_WAIT TRUE
+#endif
+
+/**
+ * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+#define SPI_USE_MUTUAL_EXCLUSION TRUE
+#endif
+
+#endif /* _HALCONF_H_ */
+
+/** @} */
diff --git a/testhal/NRF52/NRF52832/RADIO-ESB/halconf_community.h b/testhal/NRF52/NRF52832/RADIO-ESB/halconf_community.h new file mode 100644 index 0000000..43fdbf8 --- /dev/null +++ b/testhal/NRF52/NRF52832/RADIO-ESB/halconf_community.h @@ -0,0 +1,173 @@ +/* + ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HALCONF_COMMUNITY_H +#define HALCONF_COMMUNITY_H + +/** + * @brief Enables the community overlay. + */ +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__) +#define HAL_USE_COMMUNITY TRUE +#endif + +/** + * @brief Enables the FSMC subsystem. + */ +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__) +#define HAL_USE_FSMC FALSE +#endif + +/** + * @brief Enables the NAND subsystem. + */ +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__) +#define HAL_USE_NAND FALSE +#endif + +/** + * @brief Enables the 1-wire subsystem. + */ +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__) +#define HAL_USE_ONEWIRE FALSE +#endif + +/** + * @brief Enables the EICU subsystem. + */ +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__) +#define HAL_USE_EICU FALSE +#endif + +/** + * @brief Enables the CRC subsystem. + */ +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__) +#define HAL_USE_CRC FALSE +#endif + +/** + * @brief Enables the RNG subsystem. + */ +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__) +#define HAL_USE_RNG FALSE +#endif + +/** + * @brief Enables the EEPROM subsystem. + */ +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__) +#define HAL_USE_EEPROM FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__) +#define HAL_USE_TIMCAP FALSE +#endif + +/** + * @brief Enables the TIMCAP subsystem. + */ +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__) +#define HAL_USE_COMP FALSE +#endif + +/** + * @brief Enables the QEI subsystem. + */ +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__) +#define HAL_USE_QEI FALSE +#endif + +/** + * @brief Enables the USBH subsystem. + */ +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__) +#define HAL_USE_USBH FALSE +#endif + +/** + * @brief Enables the USB_MSD subsystem. + */ +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__) +#define HAL_USE_USB_MSD FALSE +#endif + +/*===========================================================================*/ +/* FSMCNAND driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define NAND_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* 1-wire driver related settings. */ +/*===========================================================================*/ +/** + * @brief Enables strong pull up feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_STRONG_PULLUP FALSE + +/** + * @brief Enables search ROM feature. + * @note Disabling this option saves both code and data space. + */ +#define ONEWIRE_USE_SEARCH_ROM TRUE + +/*===========================================================================*/ +/* QEI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables discard of overlow + */ +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_DISCARD FALSE +#endif + +/** + * @brief Enables min max of overlow + */ +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__) +#define QEI_USE_OVERFLOW_MINMAX FALSE +#endif + +/*===========================================================================*/ +/* EEProm driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables 24xx series I2C eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE24XX FALSE + /** + * @brief Enables 25xx series SPI eeprom device driver. + * @note Disabling this option saves both code and data space. + */ +#define EEPROM_USE_EE25XX FALSE + +#endif /* HALCONF_COMMUNITY_H */ + +/** @} */ diff --git a/testhal/NRF52/NRF52832/RADIO-ESB/main.c b/testhal/NRF52/NRF52832/RADIO-ESB/main.c new file mode 100644 index 0000000..8971fef --- /dev/null +++ b/testhal/NRF52/NRF52832/RADIO-ESB/main.c @@ -0,0 +1,122 @@ +#include <stdint.h> +#include <string.h> +#include <stdio.h> + +#include "ch.h" +#include "hal.h" +#include "chprintf.h" + +#include "nrf52_radio.h" + +static SerialConfig serial_config = { + .speed = 38400, + .tx_pad = UART_TX, + .rx_pad = UART_RX, +#if NRF5_SERIAL_USE_HWFLOWCTRL == TRUE + .rts_pad = UART_RTS, + .cts_pad = UART_CTS, +#endif +}; + +static THD_WORKING_AREA(waLEDThread, 64); +static THD_FUNCTION(LEDThread, arg) { + (void)arg; + + chRegSetThreadName("blinker"); + palSetPadMode(IOPORT1, LED1, PAL_MODE_OUTPUT_PUSHPULL); + + while (1) { + palTogglePad(IOPORT1, LED1); + chThdSleepMilliseconds(500); + } +} + +static nrf52_config_t radiocfg = { + .protocol = NRF52_PROTOCOL_ESB_DPL, + .mode = NRF52_MODE_PRX, + .bitrate = NRF52_BITRATE_1MBPS, + .crc = NRF52_CRC_8BIT, + .tx_power = NRF52_TX_POWER_0DBM, + .tx_mode = NRF52_TXMODE_MANUAL_START, + .selective_auto_ack = false, + .retransmit = { 1000, 3 }, + .payload_length = 0, + .address = { + .base_addr_p0 = { 0xF3, 0xF3, 0xF3, 0x01 }, + .base_addr_p1 = { 0x3F, 0x3F, 0x3F, 0x01 }, + .pipe_prefixes = { 0xF3, 0x3F, }, + .num_pipes = 2, + .addr_length = 5, + .rx_pipes = 1 << 0, + .rf_channel = 1, + }, +}; + +static uint16_t cnt, fail_pkt, good_pkt; +static nrf52_payload_t tx_payload = { + .pipe = 1, +}; +static nrf52_payload_t rx_payload; + +static THD_WORKING_AREA(waRadioThread, 256); +static THD_FUNCTION(RadioThread, arg) { + (void)arg; + + event_listener_t el; + chEvtRegisterMask(&RFD1.eventsrc, &el, EVENT_MASK(0)); + + chRegSetThreadName("radio"); + + while (1) { + chEvtWaitAny(EVENT_MASK(0)); + eventflags_t flags = chEvtGetAndClearFlags(&el); + if (flags & NRF52_EVENT_TX_SUCCESS) { + radio_start_rx(); + good_pkt++; + } + if (flags & NRF52_EVENT_TX_FAILED) { + radio_start_rx(); + fail_pkt++; + } + if (flags & NRF52_EVENT_RX_RECEIVED) { + memset(rx_payload.data, 0, 32); + radio_read_rx_payload(&rx_payload); + } + } +} + +/**@brief Function for application main entry. + */ +int main(void) { + + halInit(); + chSysInit(); + + sdStart(&SD1, &serial_config); + + chThdCreateStatic(waLEDThread, sizeof(waLEDThread), NORMALPRIO, LEDThread, NULL); + chThdCreateStatic(waRadioThread, sizeof(waRadioThread), NORMALPRIO, RadioThread, NULL); + + radio_init(&radiocfg); + radio_flush_tx(); + radio_flush_rx(); + radio_start_rx(); + + cnt = good_pkt = fail_pkt = 0; + + while (true) { + memset(tx_payload.data, 0, 32); + sprintf((char*)tx_payload.data, "counter value=%d" , cnt++); + tx_payload.length = strlen((char *)tx_payload.data); + radio_stop_rx(); + radio_write_payload(&tx_payload); + radio_start_tx(); + chprintf((BaseSequentialStream *)&SD1, "packets: good=%d, fail=%d, sent=%s\r\n", good_pkt, fail_pkt, tx_payload.data); + chThdSleepMilliseconds(500); + if (strlen((char*) rx_payload.data)) { + chprintf((BaseSequentialStream *)&SD1, "rssi=%d, received=%s\r\n", rx_payload.rssi, rx_payload.data); + rx_payload.data[0] = 0; + } + } +} + diff --git a/testhal/NRF52/NRF52832/RADIO-ESB/mcuconf.h b/testhal/NRF52/NRF52832/RADIO-ESB/mcuconf.h new file mode 100644 index 0000000..1ba934e --- /dev/null +++ b/testhal/NRF52/NRF52832/RADIO-ESB/mcuconf.h @@ -0,0 +1,28 @@ +/*
+ Copyright (C) 2015 Stephen Caudle
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#ifndef _MCUCONF_H_
+#define _MCUCONF_H_
+
+/*
+ * HAL driver system settings.
+ */
+#define NRF5_SERIAL_USE_UART0 TRUE
+#define NRF5_ST_USE_RTC0 TRUE
+#define NRF5_ST_USE_RTC1 FALSE
+#define NRF5_ST_USE_TIMER0 FALSE
+
+#endif /* _MCUCONF_H_ */
diff --git a/testhal/NRF52/NRF52832/RADIO-ESB/nrf52_radio.c b/testhal/NRF52/NRF52832/RADIO-ESB/nrf52_radio.c new file mode 100644 index 0000000..e55870f --- /dev/null +++ b/testhal/NRF52/NRF52832/RADIO-ESB/nrf52_radio.c @@ -0,0 +1,1111 @@ +/* Copyright (c) 2014 Nordic Semiconductor. All Rights Reserved. + * + * The information contained herein is property of Nordic Semiconductor ASA. + * Terms and conditions of usage are described in detail in NORDIC + * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT. + * + * Licensees are granted free, non-transferable use of the information. NO + * WARRANTY of ANY KIND is provided. This heading must NOT be removed from + * the file. + * + * Enhanced ShockBurst proprietary protocol to ChibiOS port + * + * ported on: 25/10/2018, by andru + * + */ + +#include <stdint.h> +#include <string.h> + +#include "ch.h" +#include "hal.h" + +#include "nrf52_radio.h" + + +#define BIT_MASK_UINT_8(x) (0xFF >> (8 - (x))) +#define NRF52_PIPE_COUNT 9 + +#define RADIO_SHORTS_COMMON ( RADIO_SHORTS_READY_START_Msk | RADIO_SHORTS_END_DISABLE_Msk | \ + RADIO_SHORTS_ADDRESS_RSSISTART_Msk | RADIO_SHORTS_DISABLED_RSSISTOP_Msk ) + +// Constant parameters +#define RX_WAIT_FOR_ACK_TIMEOUT_US_2MBPS (48) /**< 2MBit RX wait for ack timeout value. Smallest reliable value - 43 */ +#define RX_WAIT_FOR_ACK_TIMEOUT_US_1MBPS (64) /**< 1MBit RX wait for ack timeout value. Smallest reliable value - 59 */ + +#define NRF52_ADDR_UPDATE_MASK_BASE0 (1 << 0) /*< Mask value to signal updating BASE0 radio address. */ +#define NRF52_ADDR_UPDATE_MASK_BASE1 (1 << 1) /*< Mask value to signal updating BASE1 radio address. */ +#define NRF52_ADDR_UPDATE_MASK_PREFIX (1 << 2) /*< Mask value to signal updating radio prefixes */ + +#define NRF52_PID_RESET_VALUE 0xFF /**< Invalid PID value which is guaranteed to not collide with any valid PID value. */ +#define NRF52_PID_MAX 3 /**< Maximum value for PID. */ +#define NRF52_CRC_RESET_VALUE 0xFFFF /**< CRC reset value*/ + +#ifndef NRF52_RADIO_USE_TIMER0 +#define NRF52_RADIO_USE_TIMER0 FALSE +#endif + +#ifndef NRF52_RADIO_USE_TIMER1 +#define NRF52_RADIO_USE_TIMER1 FALSE +#endif + +#ifndef NRF52_RADIO_USE_TIMER2 +#define NRF52_RADIO_USE_TIMER2 FALSE +#endif + +#ifndef NRF52_RADIO_USE_TIMER3 +#define NRF52_RADIO_USE_TIMER3 FALSE +#endif + +#ifndef NRF52_RADIO_USE_TIMER4 +#define NRF52_RADIO_USE_TIMER4 FALSE +#endif + +#ifndef NRF52_RADIO_IRQ_PRIORITY +#define NRF52_RADIO_IRQ_PRIORITY 3 /**< RADIO interrupt priority. */ +#endif + +#ifndef NRF52_RADIO_PPI_TIMER_START +#error "PPI channel NRF52_RADIO_PPI_TIMER_START need to be defined" +#endif + +#ifndef NRF52_RADIO_PPI_TIMER_STOP +#error "PPI channel NRF52_RADIO_PPI_TIMER_STOP need to be defined" +#endif + +#ifndef NRF52_RADIO_PPI_RX_TIMEOUT +#error "PPI channel NRF52_RADIO_PPI_RX_TIMEOUT need to be defined" +#endif + +#ifndef NRF52_RADIO_PPI_TX_START +#error "PPI channel NRF52_RADIO_PPI_TX_START need to be defined" +#endif + +#if (NRF52_RADIO_USE_TIMER0 == FALSE) && (NRF52_RADIO_USE_TIMER1 == FALSE) && \ + (NRF52_RADIO_USE_TIMER2 == FALSE) && (NRF52_RADIO_USE_TIMER3 == FALSE) && \ + (NRF52_RADIO_USE_TIMER4 == FALSE) +#error "At least one hardware TIMER must be defined" +#endif + +#ifndef NRF52_RADIO_INTTHD_PRIORITY +#error "Interrupt handle thread priority need to be defined" +#endif + +#ifndef NRF52_RADIO_EVTTHD_PRIORITY +#error "Event thread priority need to be defined" +#endif + +#define VERIFY_PAYLOAD_LENGTH(p) \ +do \ +{ \ + if(p->length == 0 || \ + p->length > NRF52_MAX_PAYLOAD_LENGTH || \ + (RFD1.config.protocol == NRF52_PROTOCOL_ESB && \ + p->length > RFD1.config.payload_length)) \ + { \ + return NRF52_ERROR_INVALID_LENGTH; \ + } \ +}while(0) + +//Structure holding pipe info PID and CRC and ack payload. +typedef struct +{ + uint16_t m_crc; + uint8_t m_pid; + uint8_t m_ack_payload; +} pipe_info_t; + +// First in first out queue of payloads to be transmitted. +typedef struct +{ + nrf52_payload_t * p_payload[NRF52_TX_FIFO_SIZE]; /**< Pointer to the actual queue. */ + uint32_t entry_point; /**< Current start of queue. */ + uint32_t exit_point; /**< Current end of queue. */ + uint32_t count; /**< Current number of elements in the queue. */ +} nrf52_payload_tx_fifo_t; + +// First in first out queue of received payloads. +typedef struct +{ + nrf52_payload_t * p_payload[NRF52_RX_FIFO_SIZE]; /**< Pointer to the actual queue. */ + uint32_t entry_point; /**< Current start of queue. */ + uint32_t exit_point; /**< Current end of queue. */ + uint32_t count; /**< Current number of elements in the queue. */ +} nrf52_payload_rx_fifo_t; + +// These function pointers are changed dynamically, depending on protocol configuration and state. +//static void (*on_radio_end)(RFDriver *rfp) = NULL; +static void (*set_rf_payload_format)(RFDriver *rfp, uint32_t payload_length) = NULL; + +// The following functions are assigned to the function pointers above. +static void on_radio_disabled_tx_noack(RFDriver *rfp); +static void on_radio_disabled_tx(RFDriver *rfp); +static void on_radio_disabled_tx_wait_for_ack(RFDriver *rfp); +static void on_radio_disabled_rx(RFDriver *rfp); +static void on_radio_disabled_rx_ack(RFDriver *rfp); + +static volatile uint16_t wait_for_ack_timeout_us; +static nrf52_payload_t * p_current_payload; + +// TX FIFO +static nrf52_payload_t tx_fifo_payload[NRF52_TX_FIFO_SIZE]; +static nrf52_payload_tx_fifo_t tx_fifo; + +// RX FIFO +static nrf52_payload_t rx_fifo_payload[NRF52_RX_FIFO_SIZE]; +static nrf52_payload_rx_fifo_t rx_fifo; + +// Payload buffers +static uint8_t tx_payload_buffer[NRF52_MAX_PAYLOAD_LENGTH + 2]; +static uint8_t rx_payload_buffer[NRF52_MAX_PAYLOAD_LENGTH + 2]; + +static uint8_t pids[NRF52_PIPE_COUNT]; +static pipe_info_t rx_pipe_info[NRF52_PIPE_COUNT]; + + // disable and events semaphores. +static binary_semaphore_t disable_sem; +static binary_semaphore_t events_sem; + +RFDriver RFD1; + +// Function to do bytewise bit-swap on a unsigned 32 bit value +static uint32_t bytewise_bit_swap(uint8_t const * p_inp) { + uint32_t inp = (*(uint32_t*)p_inp); + + return __REV((uint32_t)__RBIT(inp)); //lint -esym(628, __rev) -esym(526, __rev) -esym(628, __rbit) -esym(526, __rbit) */ +} + +// Internal function to convert base addresses from nRF24L type addressing to nRF52 type addressing +static uint32_t addr_conv(uint8_t const* p_addr) { + return __REV(bytewise_bit_swap(p_addr)); //lint -esym(628, __rev) -esym(526, __rev) */ +} + +static thread_t *rfEvtThread_p; +static THD_WORKING_AREA(waRFEvtThread, 64); +static THD_FUNCTION(rfEvtThread, arg) { + (void)arg; + + chRegSetThreadName("rfevent"); + + while (!chThdShouldTerminateX()) { + chBSemWait(&events_sem); + + nrf52_int_flags_t interrupts = RFD1.flags; + RFD1.flags = 0; + + if (interrupts & NRF52_INT_TX_SUCCESS_MSK) { + chEvtBroadcastFlags(&RFD1.eventsrc, (eventflags_t) NRF52_EVENT_TX_SUCCESS); + } + if (interrupts & NRF52_INT_TX_FAILED_MSK) { + chEvtBroadcastFlags(&RFD1.eventsrc, (eventflags_t) NRF52_EVENT_TX_FAILED); + } + if (interrupts & NRF52_INT_RX_DR_MSK) { + chEvtBroadcastFlags(&RFD1.eventsrc, (eventflags_t) NRF52_EVENT_RX_RECEIVED); + } + } + chThdExit((msg_t) 0); +} + +static thread_t *rfIntThread_p; +static THD_WORKING_AREA(waRFIntThread, 64); +static THD_FUNCTION(rfIntThread, arg) { + (void)arg; + + chRegSetThreadName("rfint"); + + while (!chThdShouldTerminateX()) { + chBSemWait(&disable_sem); + switch (RFD1.state) { + case NRF52_STATE_PTX_TX: + on_radio_disabled_tx_noack(&RFD1); + break; + case NRF52_STATE_PTX_TX_ACK: + on_radio_disabled_tx(&RFD1); + break; + case NRF52_STATE_PTX_RX_ACK: + on_radio_disabled_tx_wait_for_ack(&RFD1); + break; + case NRF52_STATE_PRX: + on_radio_disabled_rx(&RFD1); + break; + case NRF52_STATE_PRX_SEND_ACK: + on_radio_disabled_rx_ack(&RFD1); + break; + default: + break; + } + } + chThdExit((msg_t) 0); +} + +static void serve_radio_interrupt(RFDriver *rfp) { + (void) rfp; + if ((NRF_RADIO->INTENSET & RADIO_INTENSET_READY_Msk) && NRF_RADIO->EVENTS_READY) { + NRF_RADIO->EVENTS_READY = 0; + (void) NRF_RADIO->EVENTS_READY; + } + if ((NRF_RADIO->INTENSET & RADIO_INTENSET_DISABLED_Msk) && NRF_RADIO->EVENTS_DISABLED) { + NRF_RADIO->EVENTS_DISABLED = 0; + (void) NRF_RADIO->EVENTS_DISABLED; + chSysLockFromISR(); + chBSemSignalI(&disable_sem); + chSysUnlockFromISR(); + } +} + +/** + * @brief RADIO events interrupt handler. + * + * @isr + */ +OSAL_IRQ_HANDLER(Vector44) { + + OSAL_IRQ_PROLOGUE(); + + serve_radio_interrupt(&RFD1); + + OSAL_IRQ_EPILOGUE(); +} + +static void set_rf_payload_format_esb_dpl(RFDriver *rfp, uint32_t payload_length) { + (void)payload_length; +#if (NRF52_MAX_PAYLOAD_LENGTH <= 32) + // Using 6 bits for length + NRF_RADIO->PCNF0 = (0 << RADIO_PCNF0_S0LEN_Pos) | + (6 << RADIO_PCNF0_LFLEN_Pos) | + (3 << RADIO_PCNF0_S1LEN_Pos) ; +#else + // Using 8 bits for length + NRF_RADIO->PCNF0 = (0 << RADIO_PCNF0_S0LEN_Pos) | + (8 << RADIO_PCNF0_LFLEN_Pos) | + (3 << RADIO_PCNF0_S1LEN_Pos) ; +#endif + NRF_RADIO->PCNF1 = (RADIO_PCNF1_WHITEEN_Disabled << RADIO_PCNF1_WHITEEN_Pos) | + (RADIO_PCNF1_ENDIAN_Big << RADIO_PCNF1_ENDIAN_Pos) | + ((rfp->config.address.addr_length - 1) << RADIO_PCNF1_BALEN_Pos) | + (0 << RADIO_PCNF1_STATLEN_Pos) | + (NRF52_MAX_PAYLOAD_LENGTH << RADIO_PCNF1_MAXLEN_Pos); +} + +static void set_rf_payload_format_esb(RFDriver *rfp, uint32_t payload_length) { + NRF_RADIO->PCNF0 = (1 << RADIO_PCNF0_S0LEN_Pos) | + (0 << RADIO_PCNF0_LFLEN_Pos) | + (1 << RADIO_PCNF0_S1LEN_Pos); + + NRF_RADIO->PCNF1 = (RADIO_PCNF1_WHITEEN_Disabled << RADIO_PCNF1_WHITEEN_Pos) | + (RADIO_PCNF1_ENDIAN_Big << RADIO_PCNF1_ENDIAN_Pos) | + ((rfp->config.address.addr_length - 1) << RADIO_PCNF1_BALEN_Pos) | + (payload_length << RADIO_PCNF1_STATLEN_Pos) | + (payload_length << RADIO_PCNF1_MAXLEN_Pos); +} + +/* Set BASE0 and BASE1 addresses & prefixes registers + * NRF52 { prefixes[0], base0_addr[0], base0_addr[1], base0_addr[2], base0_addr[3] } == + * NRF24 { addr[0], addr[1], addr[2], addr[3], addr[4] } + */ +static void set_addresses(RFDriver *rfp, uint8_t update_mask) { + if (update_mask & NRF52_ADDR_UPDATE_MASK_BASE0) { + NRF_RADIO->BASE0 = addr_conv(rfp->config.address.base_addr_p0); + NRF_RADIO->DAB[0] = addr_conv(rfp->config.address.base_addr_p0); + } + + if (update_mask & NRF52_ADDR_UPDATE_MASK_BASE1) { + NRF_RADIO->BASE1 = addr_conv(rfp->config.address.base_addr_p1); + NRF_RADIO->DAB[1] = addr_conv(rfp->config.address.base_addr_p1); + } + + if (update_mask & NRF52_ADDR_UPDATE_MASK_PREFIX) { + NRF_RADIO->PREFIX0 = bytewise_bit_swap(&rfp->config.address.pipe_prefixes[0]); + NRF_RADIO->DAP[0] = bytewise_bit_swap(&rfp->config.address.pipe_prefixes[0]); + NRF_RADIO->PREFIX1 = bytewise_bit_swap(&rfp->config.address.pipe_prefixes[4]); + NRF_RADIO->DAP[1] = bytewise_bit_swap(&rfp->config.address.pipe_prefixes[4]); + } +} + +static void set_tx_power(RFDriver *rfp) { + NRF_RADIO->TXPOWER = rfp->config.tx_power << RADIO_TXPOWER_TXPOWER_Pos; +} + +static void set_bitrate(RFDriver *rfp) { + NRF_RADIO->MODE = rfp->config.bitrate << RADIO_MODE_MODE_Pos; + + switch (rfp->config.bitrate) { + case NRF52_BITRATE_2MBPS: + wait_for_ack_timeout_us = RX_WAIT_FOR_ACK_TIMEOUT_US_2MBPS; + break; + case NRF52_BITRATE_1MBPS: + wait_for_ack_timeout_us = RX_WAIT_FOR_ACK_TIMEOUT_US_1MBPS; + break; + } +} + +static void set_protocol(RFDriver *rfp) { + switch (rfp->config.protocol) { + case NRF52_PROTOCOL_ESB_DPL: + set_rf_payload_format = set_rf_payload_format_esb_dpl; + break; + case NRF52_PROTOCOL_ESB: + set_rf_payload_format = set_rf_payload_format_esb; + break; + } +} + +static void set_crc(RFDriver *rfp) { + NRF_RADIO->CRCCNF = rfp->config.crc << RADIO_CRCCNF_LEN_Pos; + + if (rfp->config.crc == RADIO_CRCCNF_LEN_Two) + { + NRF_RADIO->CRCINIT = 0xFFFFUL; // Initial value + NRF_RADIO->CRCPOLY = 0x11021UL; // CRC poly: x^16+x^12^x^5+1 + } + else if (rfp->config.crc == RADIO_CRCCNF_LEN_One) + { + NRF_RADIO->CRCINIT = 0xFFUL; // Initial value + NRF_RADIO->CRCPOLY = 0x107UL; // CRC poly: x^8+x^2^x^1+1 + } +} + +static void ppi_init(RFDriver *rfp) { + NRF_PPI->CH[NRF52_RADIO_PPI_TIMER_START].EEP = (uint32_t)&NRF_RADIO->EVENTS_READY; + NRF_PPI->CH[NRF52_RADIO_PPI_TIMER_START].TEP = (uint32_t)&rfp->timer->TASKS_START; + + NRF_PPI->CH[NRF52_RADIO_PPI_TIMER_STOP].EEP = (uint32_t)&NRF_RADIO->EVENTS_ADDRESS; + NRF_PPI->CH[NRF52_RADIO_PPI_TIMER_STOP].TEP = (uint32_t)&rfp->timer->TASKS_STOP; + + NRF_PPI->CH[NRF52_RADIO_PPI_RX_TIMEOUT].EEP = (uint32_t)&rfp->timer->EVENTS_COMPARE[0]; + NRF_PPI->CH[NRF52_RADIO_PPI_RX_TIMEOUT].TEP = (uint32_t)&NRF_RADIO->TASKS_DISABLE; + + NRF_PPI->CH[NRF52_RADIO_PPI_TX_START].EEP = (uint32_t)&rfp->timer->EVENTS_COMPARE[1]; + NRF_PPI->CH[NRF52_RADIO_PPI_TX_START].TEP = (uint32_t)&NRF_RADIO->TASKS_TXEN; +} + +static void set_parameters(RFDriver *rfp) { + set_tx_power(rfp); + set_bitrate(rfp); + set_protocol(rfp); + set_crc(rfp); + set_rf_payload_format(rfp, rfp->config.payload_length); +} + +static void reset_fifo(void) { + tx_fifo.entry_point = 0; + tx_fifo.exit_point = 0; + tx_fifo.count = 0; + + rx_fifo.entry_point = 0; + rx_fifo.exit_point = 0; + rx_fifo.count = 0; +} + +static void init_fifo(void) { + uint8_t i; + reset_fifo(); + + for (i = 0; i < NRF52_TX_FIFO_SIZE; i++) { + tx_fifo.p_payload[i] = &tx_fifo_payload[i]; + } + + for (i = 0; i < NRF52_RX_FIFO_SIZE; i++) { + rx_fifo.p_payload[i] = &rx_fifo_payload[i]; + } +} + +static void tx_fifo_remove_last(void) { + if (tx_fifo.count > 0) { + nvicDisableVector(RADIO_IRQn); + + tx_fifo.count--; + if (++tx_fifo.exit_point >= NRF52_TX_FIFO_SIZE) { + tx_fifo.exit_point = 0; + } + + nvicEnableVector(RADIO_IRQn, NRF52_RADIO_IRQ_PRIORITY); + } +} + +/** @brief Function to push the content of the rx_buffer to the RX FIFO. + * + * The module will point the register NRF_RADIO->PACKETPTR to a buffer for receiving packets. + * After receiving a packet the module will call this function to copy the received data to + * the RX FIFO. + * + * @param pipe Pipe number to set for the packet. + * @param pid Packet ID. + * + * @retval true Operation successful. + * @retval false Operation failed. + */ +static bool rx_fifo_push_rfbuf(RFDriver *rfp, uint8_t pipe, uint8_t pid) { + if (rx_fifo.count < NRF52_RX_FIFO_SIZE) { + if (rfp->config.protocol == NRF52_PROTOCOL_ESB_DPL) { + if (rx_payload_buffer[0] > NRF52_MAX_PAYLOAD_LENGTH) { + return false; + } + + rx_fifo.p_payload[rx_fifo.entry_point]->length = rx_payload_buffer[0]; + } + else if (rfp->state == NRF52_STATE_PTX_RX_ACK) { + // Received packet is an acknowledgment + rx_fifo.p_payload[rx_fifo.entry_point]->length = 0; + } + else { + rx_fifo.p_payload[rx_fifo.entry_point]->length = rfp->config.payload_length; + } + + memcpy(rx_fifo.p_payload[rx_fifo.entry_point]->data, &rx_payload_buffer[2], + rx_fifo.p_payload[rx_fifo.entry_point]->length); + + rx_fifo.p_payload[rx_fifo.entry_point]->pipe = pipe; + rx_fifo.p_payload[rx_fifo.entry_point]->rssi = NRF_RADIO->RSSISAMPLE; + rx_fifo.p_payload[rx_fifo.entry_point]->pid = pid; + if (++rx_fifo.entry_point >= NRF52_RX_FIFO_SIZE) { + rx_fifo.entry_point = 0; + } + rx_fifo.count++; + + return true; + } + + return false; +} + +static void timer_init(RFDriver *rfp) { + // Configure the system timer with a 1 MHz base frequency + rfp->timer->PRESCALER = 4; + rfp->timer->BITMODE = TIMER_BITMODE_BITMODE_16Bit; + rfp->timer->SHORTS = TIMER_SHORTS_COMPARE1_CLEAR_Msk | TIMER_SHORTS_COMPARE1_STOP_Msk; +} + +static void start_tx_transaction(RFDriver *rfp) { + bool ack; + + rfp->tx_attempt = 1; + rfp->tx_remaining = rfp->config.retransmit.count; + + // Prepare the payload + p_current_payload = tx_fifo.p_payload[tx_fifo.exit_point]; + + // Handling ack if noack is set to false or if selctive auto ack is turned turned off + ack = !p_current_payload->noack || !rfp->config.selective_auto_ack; + + switch (rfp->config.protocol) { + case NRF52_PROTOCOL_ESB: + set_rf_payload_format(rfp, p_current_payload->length); + tx_payload_buffer[0] = p_current_payload->pid; + tx_payload_buffer[1] = 0; + memcpy(&tx_payload_buffer[2], p_current_payload->data, p_current_payload->length); + + NRF_RADIO->SHORTS = RADIO_SHORTS_COMMON | RADIO_SHORTS_DISABLED_RXEN_Msk; + NRF_RADIO->INTENSET = RADIO_INTENSET_DISABLED_Msk | RADIO_INTENSET_READY_Msk; + + // Configure the retransmit counter + rfp->tx_remaining = rfp->config.retransmit.count; + rfp->state = NRF52_STATE_PTX_TX_ACK; + break; + + case NRF52_PROTOCOL_ESB_DPL: + tx_payload_buffer[0] = p_current_payload->length; + tx_payload_buffer[1] = p_current_payload->pid << 1; + tx_payload_buffer[1] |= ack ? 0x00 : 0x01; + memcpy(&tx_payload_buffer[2], p_current_payload->data, p_current_payload->length); + + if (ack) { + NRF_RADIO->SHORTS = RADIO_SHORTS_COMMON | RADIO_SHORTS_DISABLED_RXEN_Msk; + NRF_RADIO->INTENSET = RADIO_INTENSET_DISABLED_Msk | RADIO_INTENSET_READY_Msk; + + // Configure the retransmit counter + rfp->tx_remaining = rfp->config.retransmit.count; + rfp->state = NRF52_STATE_PTX_TX_ACK; + } + else { + NRF_RADIO->SHORTS = RADIO_SHORTS_COMMON; + NRF_RADIO->INTENSET = RADIO_INTENSET_DISABLED_Msk; + rfp->state = NRF52_STATE_PTX_TX; + } + break; + } + + NRF_RADIO->TXADDRESS = p_current_payload->pipe; + NRF_RADIO->RXADDRESSES = 1 << p_current_payload->pipe; + + NRF_RADIO->FREQUENCY = rfp->config.address.rf_channel; + NRF_RADIO->PACKETPTR = (uint32_t)tx_payload_buffer; + + NRF_RADIO->EVENTS_READY = 0; + NRF_RADIO->EVENTS_DISABLED = 0; + (void)NRF_RADIO->EVENTS_READY; + (void)NRF_RADIO->EVENTS_DISABLED; + + nvicClearPending(RADIO_IRQn); + nvicEnableVector(RADIO_IRQn, NRF52_RADIO_IRQ_PRIORITY); + + NRF_RADIO->TASKS_TXEN = 1; +} + +static void on_radio_disabled_tx_noack(RFDriver *rfp) { + rfp->flags |= NRF52_INT_TX_SUCCESS_MSK; + tx_fifo_remove_last(); + + chBSemSignal(&events_sem); + + if (tx_fifo.count == 0) { + rfp->state = NRF52_STATE_IDLE; + } + else { + start_tx_transaction(rfp); + } +} + +static void on_radio_disabled_tx(RFDriver *rfp) { + // Remove the DISABLED -> RXEN shortcut, to make sure the radio stays + // disabled after the RX window + NRF_RADIO->SHORTS = RADIO_SHORTS_COMMON; + + // Make sure the timer is started the next time the radio is ready, + // and that it will disable the radio automatically if no packet is + // received by the time defined in m_wait_for_ack_timeout_us + rfp->timer->CC[0] = wait_for_ack_timeout_us + 130; + rfp->timer->CC[1] = rfp->config.retransmit.delay - 130; + rfp->timer->TASKS_CLEAR = 1; + rfp->timer->EVENTS_COMPARE[0] = 0; + rfp->timer->EVENTS_COMPARE[1] = 0; + (void)rfp->timer->EVENTS_COMPARE[0]; + (void)rfp->timer->EVENTS_COMPARE[1]; + + NRF_PPI->CHENSET = (1 << NRF52_RADIO_PPI_TIMER_START) | + (1 << NRF52_RADIO_PPI_RX_TIMEOUT) | + (1 << NRF52_RADIO_PPI_TIMER_STOP); + NRF_PPI->CHENCLR = (1 << NRF52_RADIO_PPI_TX_START); + + NRF_RADIO->EVENTS_END = 0; + (void)NRF_RADIO->EVENTS_END; + + if (rfp->config.protocol == NRF52_PROTOCOL_ESB) { + set_rf_payload_format(rfp, 0); + } + + NRF_RADIO->PACKETPTR = (uint32_t)rx_payload_buffer; + rfp->state = NRF52_STATE_PTX_RX_ACK; +} + +static void on_radio_disabled_tx_wait_for_ack(RFDriver *rfp) { + // This marks the completion of a TX_RX sequence (TX with ACK) + + // Make sure the timer will not deactivate the radio if a packet is received + NRF_PPI->CHENCLR = (1 << NRF52_RADIO_PPI_TIMER_START) | + (1 << NRF52_RADIO_PPI_RX_TIMEOUT) | + (1 << NRF52_RADIO_PPI_TIMER_STOP); + + // If the radio has received a packet and the CRC status is OK + if (NRF_RADIO->EVENTS_END && NRF_RADIO->CRCSTATUS != 0) { + rfp->timer->TASKS_STOP = 1; + NRF_PPI->CHENCLR = (1 << NRF52_RADIO_PPI_TX_START); + rfp->flags |= NRF52_INT_TX_SUCCESS_MSK; + rfp->tx_attempt++;// = rfp->config.retransmit.count - rfp->tx_remaining + 1; + + tx_fifo_remove_last(); + + if (rfp->config.protocol != NRF52_PROTOCOL_ESB && rx_payload_buffer[0] > 0) { + if (rx_fifo_push_rfbuf(rfp, (uint8_t)NRF_RADIO->TXADDRESS, 0)) { + rfp->flags |= NRF52_INT_RX_DR_MSK; + } + } + + chBSemSignal(&events_sem); + + if ((tx_fifo.count == 0) || (rfp->config.tx_mode == NRF52_TXMODE_MANUAL)) { + rfp->state = NRF52_STATE_IDLE; + } + else { + start_tx_transaction(rfp); + } + } + else { + if (rfp->tx_remaining-- == 0) { + rfp->timer->TASKS_STOP = 1; + NRF_PPI->CHENCLR = (1 << NRF52_RADIO_PPI_TX_START); + // All retransmits are expended, and the TX operation is suspended + rfp->tx_attempt = rfp->config.retransmit.count + 1; + rfp->flags |= NRF52_INT_TX_FAILED_MSK; + + chBSemSignal(&events_sem); + + rfp->state = NRF52_STATE_IDLE; + } + else { + // There are still have more retransmits left, TX mode should be + // entered again as soon as the system timer reaches CC[1]. + NRF_RADIO->SHORTS = RADIO_SHORTS_COMMON | RADIO_SHORTS_DISABLED_RXEN_Msk; + set_rf_payload_format(rfp, p_current_payload->length); + NRF_RADIO->PACKETPTR = (uint32_t)tx_payload_buffer; + rfp->state = NRF52_STATE_PTX_TX_ACK; + rfp->timer->TASKS_START = 1; + NRF_PPI->CHENSET = (1 << NRF52_RADIO_PPI_TX_START); + if (rfp->timer->EVENTS_COMPARE[1]) + NRF_RADIO->TASKS_TXEN = 1; + } + } +} + +static void clear_events_restart_rx(RFDriver *rfp) { + NRF_RADIO->SHORTS = RADIO_SHORTS_COMMON; + set_rf_payload_format(rfp, rfp->config.payload_length); + NRF_RADIO->PACKETPTR = (uint32_t)rx_payload_buffer; + + NRF_RADIO->INTENCLR = RADIO_INTENCLR_DISABLED_Msk; + NRF_RADIO->EVENTS_DISABLED = 0; + (void) NRF_RADIO->EVENTS_DISABLED; + + NRF_RADIO->TASKS_DISABLE = 1; + while (NRF_RADIO->EVENTS_DISABLED == 0); + + NRF_RADIO->EVENTS_DISABLED = 0; + (void) NRF_RADIO->EVENTS_DISABLED; + NRF_RADIO->INTENSET = RADIO_INTENSET_DISABLED_Msk; + + NRF_RADIO->SHORTS = RADIO_SHORTS_COMMON | RADIO_SHORTS_DISABLED_TXEN_Msk; + NRF_RADIO->TASKS_RXEN = 1; +} + +static void on_radio_disabled_rx(RFDriver *rfp) { + bool ack = false; + bool retransmit_payload = false; + bool send_rx_event = true; + pipe_info_t * p_pipe_info; + + if (NRF_RADIO->CRCSTATUS == 0) { + clear_events_restart_rx(rfp); + return; + } + + if(rx_fifo.count >= NRF52_RX_FIFO_SIZE) { + clear_events_restart_rx(rfp); + return; + } + + p_pipe_info = &rx_pipe_info[NRF_RADIO->RXMATCH]; + if (NRF_RADIO->RXCRC == p_pipe_info->m_crc && + (rx_payload_buffer[1] >> 1) == p_pipe_info->m_pid ) { + retransmit_payload = true; + send_rx_event = false; + } + + p_pipe_info->m_pid = rx_payload_buffer[1] >> 1; + p_pipe_info->m_crc = NRF_RADIO->RXCRC; + + if(rfp->config.selective_auto_ack == false || ((rx_payload_buffer[1] & 0x01) == 0)) + ack = true; + + if(ack) { + NRF_RADIO->SHORTS = RADIO_SHORTS_COMMON | RADIO_SHORTS_DISABLED_RXEN_Msk; + + switch(rfp->config.protocol) { + case NRF52_PROTOCOL_ESB_DPL: + { + if (tx_fifo.count > 0 && + (tx_fifo.p_payload[tx_fifo.exit_point]->pipe == NRF_RADIO->RXMATCH)) + { + // Pipe stays in ACK with payload until TX fifo is empty + // Do not report TX success on first ack payload or retransmit + if (p_pipe_info->m_ack_payload != 0 && !retransmit_payload) { + if(++tx_fifo.exit_point >= NRF52_TX_FIFO_SIZE) { + tx_fifo.exit_point = 0; + } + + tx_fifo.count--; + + // ACK payloads also require TX_DS + // (page 40 of the 'nRF24LE1_Product_Specification_rev1_6.pdf'). + rfp->flags |= NRF52_INT_TX_SUCCESS_MSK; + } + + p_pipe_info->m_ack_payload = 1; + + p_current_payload = tx_fifo.p_payload[tx_fifo.exit_point]; + + set_rf_payload_format(rfp, p_current_payload->length); + tx_payload_buffer[0] = p_current_payload->length; + memcpy(&tx_payload_buffer[2], + p_current_payload->data, + p_current_payload->length); + } + else { + p_pipe_info->m_ack_payload = 0; + set_rf_payload_format(rfp, 0); + tx_payload_buffer[0] = 0; + } + + tx_payload_buffer[1] = rx_payload_buffer[1]; + } + break; + + case NRF52_PROTOCOL_ESB: + { + set_rf_payload_format(rfp, 0); + tx_payload_buffer[0] = rx_payload_buffer[0]; + tx_payload_buffer[1] = 0; + } + break; + } + + rfp->state = NRF52_STATE_PRX_SEND_ACK; + NRF_RADIO->TXADDRESS = NRF_RADIO->RXMATCH; + NRF_RADIO->PACKETPTR = (uint32_t)tx_payload_buffer; + } + else { + clear_events_restart_rx(rfp); + } + + if (send_rx_event) { + // Push the new packet to the RX buffer and trigger a received event if the operation was + // successful. + if (rx_fifo_push_rfbuf(rfp, NRF_RADIO->RXMATCH, p_pipe_info->m_pid)) { + rfp->flags |= NRF52_INT_RX_DR_MSK; + chBSemSignal(&events_sem); + } + } +} + +static void on_radio_disabled_rx_ack(RFDriver *rfp) { + NRF_RADIO->SHORTS = RADIO_SHORTS_COMMON | RADIO_SHORTS_DISABLED_TXEN_Msk; + set_rf_payload_format(rfp, rfp->config.payload_length); + + NRF_RADIO->PACKETPTR = (uint32_t)rx_payload_buffer; + + rfp->state = NRF52_STATE_PRX; +} + +nrf52_error_t radio_disable(void) { + RFD1.state = NRF52_STATE_IDLE; + + // Clear PPI + NRF_PPI->CHENCLR = (1 << NRF52_RADIO_PPI_TIMER_START) | + (1 << NRF52_RADIO_PPI_TIMER_STOP) | + (1 << NRF52_RADIO_PPI_RX_TIMEOUT); + + reset_fifo(); + + memset(rx_pipe_info, 0, sizeof(rx_pipe_info)); + memset(pids, 0, sizeof(pids)); + + // Disable the radio + NRF_RADIO->SHORTS = RADIO_SHORTS_READY_START_Enabled << RADIO_SHORTS_READY_START_Pos | + RADIO_SHORTS_END_DISABLE_Enabled << RADIO_SHORTS_END_DISABLE_Pos; + + nvicDisableVector(RADIO_IRQn); + + // Terminate interrupts handle thread + chThdTerminate(rfIntThread_p); + chBSemSignal(&disable_sem); + chThdWait(rfIntThread_p); + + // Terminate events handle thread + chThdTerminate(rfEvtThread_p); + RFD1.flags = 0; + chBSemSignal(&events_sem); + chThdWait(rfEvtThread_p); + + RFD1.state = NRF52_STATE_UNINIT; + + return NRF52_SUCCESS; +} + +// +nrf52_error_t radio_init(nrf52_config_t const *config) { + osalDbgAssert(config != NULL, + "config must be defined"); + osalDbgAssert(&config->address != NULL, + "address must be defined"); + osalDbgAssert(NRF52_RADIO_IRQ_PRIORITY <= 7, + "wrong radio irq priority"); + + if (RFD1.state != NRF52_STATE_UNINIT) { + nrf52_error_t err = radio_disable(); + if (err != NRF52_SUCCESS) + return err; + } + + RFD1.radio = NRF_RADIO; + RFD1.config = *config; + RFD1.flags = 0; + + init_fifo(); + +#if NRF52_RADIO_USE_TIMER0 + RFD1.timer = NRF_TIMER0; +#endif +#if NRF52_RADIO_USE_TIMER1 + RFD1.timer = NRF_TIMER1; +#endif +#if NRF52_RADIO_USE_TIMER2 + RFD1.timer = NRF_TIMER2; +#endif +#if NRF52_RADIO_USE_TIMER3 + RFD1.timer = NRF_TIMER3; +#endif +#if NRF52_RADIO_USE_TIMER4 + RFD1.timer = NRF_TIMER4; +#endif + + set_parameters(&RFD1); + + set_addresses(&RFD1, NRF52_ADDR_UPDATE_MASK_BASE0); + set_addresses(&RFD1, NRF52_ADDR_UPDATE_MASK_BASE1); + set_addresses(&RFD1, NRF52_ADDR_UPDATE_MASK_PREFIX); + + ppi_init(&RFD1); + timer_init(&RFD1); + + chBSemObjectInit(&disable_sem, TRUE); + chBSemObjectInit(&events_sem, TRUE); + + chEvtObjectInit(&RFD1.eventsrc); + + // interrupt handle thread + rfIntThread_p = chThdCreateStatic(waRFIntThread, sizeof(waRFIntThread), + NRF52_RADIO_INTTHD_PRIORITY, rfIntThread, NULL); + + // events handle thread + rfEvtThread_p = chThdCreateStatic(waRFEvtThread, sizeof(waRFEvtThread), + NRF52_RADIO_EVTTHD_PRIORITY, rfEvtThread, NULL); + + nvicEnableVector(RADIO_IRQn, NRF52_RADIO_IRQ_PRIORITY); + + RFD1.state = NRF52_STATE_IDLE; + + return NRF52_SUCCESS; +} + +nrf52_error_t radio_write_payload(nrf52_payload_t const * p_payload) { + if (RFD1.state == NRF52_STATE_UNINIT) + return NRF52_INVALID_STATE; + if(p_payload == NULL) + return NRF52_ERROR_NULL; + VERIFY_PAYLOAD_LENGTH(p_payload); + if (tx_fifo.count >= NRF52_TX_FIFO_SIZE) + return NRF52_ERROR_INVALID_LENGTH; + + if (RFD1.config.mode == NRF52_MODE_PTX && + p_payload->noack && !RFD1.config.selective_auto_ack ) + { + return NRF52_ERROR_NOT_SUPPORTED; + } + + nvicDisableVector(RADIO_IRQn); + + memcpy(tx_fifo.p_payload[tx_fifo.entry_point], p_payload, sizeof(nrf52_payload_t)); + + pids[p_payload->pipe] = (pids[p_payload->pipe] + 1) % (NRF52_PID_MAX + 1); + tx_fifo.p_payload[tx_fifo.entry_point]->pid = pids[p_payload->pipe]; + + if (++tx_fifo.entry_point >= NRF52_TX_FIFO_SIZE) { + tx_fifo.entry_point = 0; + } + + tx_fifo.count++; + + nvicEnableVector(RADIO_IRQn, NRF52_RADIO_IRQ_PRIORITY); + + if (RFD1.config.mode == NRF52_MODE_PTX && + RFD1.config.tx_mode == NRF52_TXMODE_AUTO && + RFD1.state == NRF52_STATE_IDLE) + { + start_tx_transaction(&RFD1); + } + + return NRF52_SUCCESS; +} + +nrf52_error_t radio_read_rx_payload(nrf52_payload_t * p_payload) { + if (RFD1.state == NRF52_STATE_UNINIT) + return NRF52_INVALID_STATE; + if (p_payload == NULL) + return NRF52_ERROR_NULL; + + if (rx_fifo.count == 0) { + return NRF52_ERROR_INVALID_LENGTH; + } + + nvicDisableVector(RADIO_IRQn); + + p_payload->length = rx_fifo.p_payload[rx_fifo.exit_point]->length; + p_payload->pipe = rx_fifo.p_payload[rx_fifo.exit_point]->pipe; + p_payload->rssi = rx_fifo.p_payload[rx_fifo.exit_point]->rssi; + p_payload->pid = rx_fifo.p_payload[rx_fifo.exit_point]->pid; + memcpy(p_payload->data, rx_fifo.p_payload[rx_fifo.exit_point]->data, p_payload->length); + + if (++rx_fifo.exit_point >= NRF52_RX_FIFO_SIZE) { + rx_fifo.exit_point = 0; + } + + rx_fifo.count--; + + nvicEnableVector(RADIO_IRQn, NRF52_RADIO_IRQ_PRIORITY); + + return NRF52_SUCCESS; +} + +nrf52_error_t radio_start_tx(void) { + if (RFD1.state != NRF52_STATE_IDLE) + return NRF52_ERROR_BUSY; + + if (tx_fifo.count == 0) { + return NRF52_ERROR_INVALID_LENGTH; + } + + start_tx_transaction(&RFD1); + + return NRF52_SUCCESS; +} + +nrf52_error_t radio_start_rx(void) { + if (RFD1.state != NRF52_STATE_IDLE) + return NRF52_ERROR_BUSY; + + NRF_RADIO->INTENCLR = 0xFFFFFFFF; + NRF_RADIO->EVENTS_DISABLED = 0; + (void) NRF_RADIO->EVENTS_DISABLED; + + NRF_RADIO->SHORTS = RADIO_SHORTS_COMMON | RADIO_SHORTS_DISABLED_TXEN_Msk; + NRF_RADIO->INTENSET = RADIO_INTENSET_DISABLED_Msk; + RFD1.state = NRF52_STATE_PRX; + + NRF_RADIO->RXADDRESSES = RFD1.config.address.rx_pipes; + NRF_RADIO->FREQUENCY = RFD1.config.address.rf_channel; + NRF_RADIO->PACKETPTR = (uint32_t)rx_payload_buffer; + + nvicClearPending(RADIO_IRQn); + nvicEnableVector(RADIO_IRQn, NRF52_RADIO_IRQ_PRIORITY); + + NRF_RADIO->EVENTS_ADDRESS = 0; + NRF_RADIO->EVENTS_PAYLOAD = 0; + NRF_RADIO->EVENTS_DISABLED = 0; + (void) NRF_RADIO->EVENTS_ADDRESS; + (void) NRF_RADIO->EVENTS_PAYLOAD; + (void) NRF_RADIO->EVENTS_DISABLED; + + NRF_RADIO->TASKS_RXEN = 1; + + return NRF52_SUCCESS; +} + +nrf52_error_t radio_stop_rx(void) { + if (RFD1.state != NRF52_STATE_PRX) { + return NRF52_INVALID_STATE; + } + + NRF_RADIO->SHORTS = 0; + NRF_RADIO->INTENCLR = 0xFFFFFFFF; + NRF_RADIO->EVENTS_DISABLED = 0; + (void) NRF_RADIO->EVENTS_DISABLED; + NRF_RADIO->TASKS_DISABLE = 1; + while (NRF_RADIO->EVENTS_DISABLED == 0); + RFD1.state = NRF52_STATE_IDLE; + + return NRF52_SUCCESS; +} + +nrf52_error_t radio_flush_tx(void) { + if (RFD1.state == NRF52_STATE_UNINIT) + return NRF52_INVALID_STATE; + + nvicDisableVector(RADIO_IRQn); + + tx_fifo.count = 0; + tx_fifo.entry_point = 0; + tx_fifo.exit_point = 0; + + nvicEnableVector(RADIO_IRQn, NRF52_RADIO_IRQ_PRIORITY); + + return NRF52_SUCCESS; +} + +nrf52_error_t radio_pop_tx(void) { + if (RFD1.state == NRF52_STATE_UNINIT) + return NRF52_INVALID_STATE; + if (tx_fifo.count == 0) + return NRF52_ERROR_INVALID_LENGTH; + + nvicDisableVector(RADIO_IRQn); + + if (++tx_fifo.entry_point >= NRF52_TX_FIFO_SIZE) { + tx_fifo.entry_point = 0; + } + tx_fifo.count--; + + nvicEnableVector(RADIO_IRQn, NRF52_RADIO_IRQ_PRIORITY); + + return NRF52_SUCCESS; +} + +nrf52_error_t radio_flush_rx(void) { + if (RFD1.state == NRF52_STATE_UNINIT) + return NRF52_INVALID_STATE; + + nvicDisableVector(RADIO_IRQn); + + rx_fifo.count = 0; + rx_fifo.entry_point = 0; + rx_fifo.exit_point = 0; + + memset(rx_pipe_info, 0, sizeof(rx_pipe_info)); + + nvicEnableVector(RADIO_IRQn, NRF52_RADIO_IRQ_PRIORITY); + + return NRF52_SUCCESS; +} + +nrf52_error_t radio_set_base_address_0(uint8_t const * p_addr) { + if (RFD1.state != NRF52_STATE_IDLE) + return NRF52_ERROR_BUSY; + if (p_addr == NULL) + return NRF52_ERROR_NULL; + + memcpy(RFD1.config.address.base_addr_p0, p_addr, 4); + set_addresses(&RFD1, NRF52_ADDR_UPDATE_MASK_BASE0); + + return NRF52_SUCCESS; +} + +nrf52_error_t radio_set_base_address_1(uint8_t const * p_addr) { + if (RFD1.state != NRF52_STATE_IDLE) + return NRF52_ERROR_BUSY; + if (p_addr == NULL) + return NRF52_ERROR_NULL; + + memcpy(RFD1.config.address.base_addr_p1, p_addr, 4); + set_addresses(&RFD1, NRF52_ADDR_UPDATE_MASK_BASE1); + + return NRF52_SUCCESS; +} + +nrf52_error_t radio_set_prefixes(uint8_t const * p_prefixes, uint8_t num_pipes) { + if (RFD1.state != NRF52_STATE_IDLE) + return NRF52_ERROR_BUSY; + if (p_prefixes == NULL) + return NRF52_ERROR_NULL; + if (num_pipes > 8) + return NRF52_ERROR_INVALID_PARAM; + + memcpy(RFD1.config.address.pipe_prefixes, p_prefixes, num_pipes); + RFD1.config.address.num_pipes = num_pipes; + RFD1.config.address.rx_pipes = BIT_MASK_UINT_8(num_pipes); + + set_addresses(&RFD1, NRF52_ADDR_UPDATE_MASK_PREFIX); + + return NRF52_SUCCESS; +} + +nrf52_error_t radio_set_prefix(uint8_t pipe, uint8_t prefix) { + if (RFD1.state != NRF52_STATE_IDLE) + return NRF52_ERROR_BUSY; + if (pipe > 8) + return NRF52_ERROR_INVALID_PARAM; + + RFD1.config.address.pipe_prefixes[pipe] = prefix; + + NRF_RADIO->PREFIX0 = bytewise_bit_swap(&RFD1.config.address.pipe_prefixes[0]); + NRF_RADIO->PREFIX1 = bytewise_bit_swap(&RFD1.config.address.pipe_prefixes[4]); + + return NRF52_SUCCESS; +} diff --git a/testhal/NRF52/NRF52832/RADIO-ESB/nrf52_radio.h b/testhal/NRF52/NRF52832/RADIO-ESB/nrf52_radio.h new file mode 100644 index 0000000..2f94465 --- /dev/null +++ b/testhal/NRF52/NRF52832/RADIO-ESB/nrf52_radio.h @@ -0,0 +1,256 @@ +/* Copyright (c) 2014 Nordic Semiconductor. All Rights Reserved. + * + * The information contained herein is property of Nordic Semiconductor ASA. + * Terms and conditions of usage are described in detail in NORDIC + * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT. + * + * Licensees are granted free, non-transferable use of the information. NO + * WARRANTY of ANY KIND is provided. This heading must NOT be removed from + * the file. + * + * @brief Enhanced ShockBurst (ESB) is a basic protocol supporting two-way data + * packet communication including packet buffering, packet acknowledgment + * and automatic retransmission of lost packets. + * + * ported on: 25/10/2018, by andru + * + */ + +#ifndef NRF52_RADIO_H_ +#define NRF52_RADIO_H_ + +// Hard coded parameters - change if necessary +#ifndef NRF52_MAX_PAYLOAD_LENGTH +#define NRF52_MAX_PAYLOAD_LENGTH 32 /**< The max size of the payload. Valid values are 1 to 252 */ +#endif + +#define NRF52_CRC_RESET_VALUE 0xFFFF /**< CRC reset value*/ + +#define NRF52_TX_FIFO_SIZE 8 /**< The size of the transmission first in first out buffer. */ +#define NRF52_RX_FIFO_SIZE 8 /**< The size of the reception first in first out buffer. */ + +#define NRF52_RADIO_USE_TIMER0 FALSE /**< TIMER0 will be used by the module. */ +#define NRF52_RADIO_USE_TIMER1 TRUE /**< TIMER1 will be used by the module. */ +#define NRF52_RADIO_USE_TIMER2 FALSE /**< TIMER2 will be used by the module. */ +#define NRF52_RADIO_USE_TIMER3 FALSE /**< TIMER3 will be used by the module. */ +#define NRF52_RADIO_USE_TIMER4 FALSE /**< TIMER4 will be used by the module. */ + +#define NRF52_RADIO_IRQ_PRIORITY 3 /**< RADIO interrupt priority. */ +#define NRF52_RADIO_INTTHD_PRIORITY (NORMALPRIO+2) /**< Interrupts handle thread priority. */ +#define NRF52_RADIO_EVTTHD_PRIORITY (NORMALPRIO+1) /**< Events handle thread priority */ + +#define NRF52_RADIO_PPI_TIMER_START 10 /**< The PPI channel used for timer start. */ +#define NRF52_RADIO_PPI_TIMER_STOP 11 /**< The PPI channel used for timer stop. */ +#define NRF52_RADIO_PPI_RX_TIMEOUT 12 /**< The PPI channel used for RX timeout. */ +#define NRF52_RADIO_PPI_TX_START 13 /**< The PPI channel used for starting TX. */ + + +typedef enum { + NRF52_SUCCESS, /* Call was successful. */ + NRF52_INVALID_STATE, /* Module is not initialized. */ + NRF52_ERROR_BUSY, /* Module was not in idle state. */ + NRF52_ERROR_NULL, /* Required parameter was NULL. */ + NRF52_ERROR_INVALID_PARAM, /* Required parameter is invalid */ + NRF52_ERROR_NOT_SUPPORTED, /* p_payload->noack was false while selective ack was not enabled. */ + NRF52_ERROR_INVALID_LENGTH, /* Payload length was invalid (zero or larger than max allowed). */ +} nrf52_error_t; + +// Internal radio module state. +typedef enum { + NRF52_STATE_UNINIT, /**< Module not initialized. */ + NRF52_STATE_IDLE, /**< Module idle. */ + NRF52_STATE_PTX_TX, /**< Module transmitting without ack. */ + NRF52_STATE_PTX_TX_ACK, /**< Module transmitting with ack. */ + NRF52_STATE_PTX_RX_ACK, /**< Module transmitting with ack and reception of payload with the ack response. */ + NRF52_STATE_PRX, /**< Module receiving packets without ack. */ + NRF52_STATE_PRX_SEND_ACK, /**< Module transmitting ack in RX mode. */ +} nrf52_state_t; + +/**@brief Events to indicate the last transmission/receiving status. */ +typedef enum { + NRF52_EVENT_TX_SUCCESS = 0x01, /**< Event triggered on TX success. */ + NRF52_EVENT_TX_FAILED = 0x02, /**< Event triggered on TX failed. */ + NRF52_EVENT_RX_RECEIVED = 0x04, /**< Event triggered on RX Received. */ +} nrf52_event_t; + +// Interrupt flags +typedef enum { + NRF52_INT_TX_SUCCESS_MSK = 0x01, /**< The flag used to indicate a success since last event. */ + NRF52_INT_TX_FAILED_MSK = 0x02, /**< The flag used to indicate a failiure since last event. */ + NRF52_INT_RX_DR_MSK = 0x04, /**< The flag used to indicate a received packet since last event. */ +} nrf52_int_flags_t; + +/**Macro to create initializer for a TX data packet. + * + * @details This macro generates an initializer. It is more efficient + * than setting the individual parameters dynamically. + * + * @param[in] _pipe The pipe to use for the data packet. + * @param[in] ... Comma separated list of character data to put in the TX buffer. + * Supported values are from 1 to 63 characters. + * + * @return Initializer that sets up pipe, length and the byte array for content of the TX data. + */ +#define NRF52_CREATE_PAYLOAD(_pipe, ...) \ + {.pipe = _pipe, .length = NUM_VA_ARGS(__VA_ARGS__), .data = {__VA_ARGS__}}; \ + STATIC_ASSERT(NUM_VA_ARGS(__VA_ARGS__) > 0 && NUM_VA_ARGS(__VA_ARGS__) <= 63) + +/**@brief Enhanced ShockBurst protocol. */ +typedef enum { + NRF52_PROTOCOL_ESB, /*< Enhanced ShockBurst with fixed payload length. */ + NRF52_PROTOCOL_ESB_DPL /*< Enhanced ShockBurst with dynamic payload length. */ +} nrf52_protocol_t; + +/**@brief Enhanced ShockBurst mode. */ +typedef enum { + NRF52_MODE_PTX, /*< Primary transmitter mode. */ + NRF52_MODE_PRX /*< Primary receiver mode. */ +} nrf52_mode_t; + +/**@brief Enhanced ShockBurst bitrate mode. */ +typedef enum { + NRF52_BITRATE_2MBPS = RADIO_MODE_MODE_Nrf_2Mbit, /**< 2Mbit radio mode. */ + NRF52_BITRATE_1MBPS = RADIO_MODE_MODE_Nrf_1Mbit, /**< 1Mbit radio mode. */ +} nrf52_bitrate_t; + +/**@brief Enhanced ShockBurst CRC modes. */ +typedef enum { + NRF52_CRC_16BIT = RADIO_CRCCNF_LEN_Two, /**< Use two byte CRC. */ + NRF52_CRC_8BIT = RADIO_CRCCNF_LEN_One, /**< Use one byte CRC. */ + NRF52_CRC_OFF = RADIO_CRCCNF_LEN_Disabled /**< Disable CRC. */ +} nrf52_crc_t; + +/**@brief Enhanced ShockBurst radio transmission power modes. */ +typedef enum { + NRF52_TX_POWER_4DBM = RADIO_TXPOWER_TXPOWER_Pos4dBm, /**< 4 dBm radio transmit power. */ + NRF52_TX_POWER_0DBM = RADIO_TXPOWER_TXPOWER_0dBm, /**< 0 dBm radio transmit power. */ + NRF52_TX_POWER_NEG4DBM = RADIO_TXPOWER_TXPOWER_Neg4dBm, /**< -4 dBm radio transmit power. */ + NRF52_TX_POWER_NEG8DBM = RADIO_TXPOWER_TXPOWER_Neg8dBm, /**< -8 dBm radio transmit power. */ + NRF52_TX_POWER_NEG12DBM = RADIO_TXPOWER_TXPOWER_Neg12dBm, /**< -12 dBm radio transmit power. */ + NRF52_TX_POWER_NEG16DBM = RADIO_TXPOWER_TXPOWER_Neg16dBm, /**< -16 dBm radio transmit power. */ + NRF52_TX_POWER_NEG20DBM = RADIO_TXPOWER_TXPOWER_Neg20dBm, /**< -20 dBm radio transmit power. */ + NRF52_TX_POWER_NEG30DBM = RADIO_TXPOWER_TXPOWER_Neg30dBm /**< -30 dBm radio transmit power. */ +} nrf52_tx_power_t; + +/**@brief Enhanced ShockBurst transmission modes. */ +typedef enum { + NRF52_TXMODE_AUTO, /*< Automatic TX mode - When the TX fifo is non-empty and the radio is idle packets will be sent automatically. */ + NRF52_TXMODE_MANUAL, /*< Manual TX mode - Packets will not be sent until radio_start_tx() is called. Can be used to ensure consistent packet timing. */ + NRF52_TXMODE_MANUAL_START /*< Manual start TX mode - Packets will not be sent until radio_start_tx() is called, but transmission will continue automatically until the TX fifo is empty. */ +} nrf52_tx_mode_t; + +/**@brief Enhanced ShockBurst addresses. + * + * @details The module is able to transmit packets with the TX address stored in tx_address. + The module can also receive packets from peers with up to eight different tx_addresses + stored in esb_addr_p0 - esb_addr_p7. esb_addr_p0 can have 5 arbitrary bytes + independent of the other addresses. esb_addr_p1 - esb_addr_p7 will share the + same four byte base address found in the last four bytes of esb_addr_p1. + They have an independent prefix byte found in esb_addr_p1[0] and esb_addr_p2 - + esb_addr_p7. +*/ +typedef struct { + uint8_t base_addr_p0[4]; /**< Base address for pipe 0 encoded in big endian. */ + uint8_t base_addr_p1[4]; /**< Base address for pipe 1-7 encoded in big endian. */ + uint8_t pipe_prefixes[8]; /**< Address prefix for pipe P0 to P7. */ + uint8_t num_pipes; /**< Number of pipes available. */ + uint8_t addr_length; /**< Length of address including prefix */ + uint8_t rx_pipes; /**< Bitfield for enabled RX pipes. */ + uint8_t rf_channel; /**< Which channel is to be used. Must be in range 0 and 125 to be valid. */ +} nrf52_address_t; + +/**@brief Enhanced ShockBurst payload. + * + * @note The payload is used both for transmission and receive with ack and payload. +*/ +typedef struct +{ + uint8_t length; /**< Length of the packet. Should be equal or less than NRF_ESB_MAX_PAYLOAD_LENGTH. */ + uint8_t pipe; /**< Pipe used for this payload. */ + int8_t rssi; /**< RSSI for received packet. */ + uint8_t noack; /**< Flag indicating that this packet will not be acknowledged. */ + uint8_t pid; /**< PID assigned during communication. */ + uint8_t data[NRF52_MAX_PAYLOAD_LENGTH]; /**< The payload data. */ +} nrf52_payload_t; + +/**@brief Retransmit attempts delay and counter. */ +typedef struct { + uint16_t delay; /**< The delay between each retransmission of unacked packets. */ + uint16_t count; /**< The number of retransmissions attempts before transmission fail. */ +} nrf52_retransmit_t; + +/**@brief Main nrf_esb configuration struct. */ +typedef struct { + nrf52_protocol_t protocol; /**< Enhanced ShockBurst protocol. */ + nrf52_mode_t mode; /**< Enhanced ShockBurst default RX or TX mode. */ + + // General RF parameters + nrf52_bitrate_t bitrate; /**< Enhanced ShockBurst bitrate mode. */ + nrf52_crc_t crc; /**< Enhanced ShockBurst CRC mode. */ + nrf52_tx_power_t tx_power; /**< Enhanced ShockBurst radio transmission power mode.*/ + + // Control settings + nrf52_tx_mode_t tx_mode; /**< Enhanced ShockBurst transmit mode. */ + + bool selective_auto_ack; /**< Enable or disable selective auto acknowledgement. */ + + nrf52_retransmit_t retransmit; /**< Packet retransmit parameters */ + + uint8_t payload_length; /**< Enhanced ShockBurst static payload length */ + + nrf52_address_t address; /**< Address parameters structure */ +} nrf52_config_t; + +typedef struct { + /** + * @brief NRF52 radio peripheral. + */ + NRF_RADIO_Type *radio; + /** + * @brief NRF52 timer peripheral. + */ + NRF_TIMER_Type *timer; + /** + * @brief Driver state. + */ + nrf52_state_t state; + /** + * @brief RF parameters. + */ + nrf52_config_t config; + /** + * @brief Interrupts flag. + */ + nrf52_int_flags_t flags; + /** + * @brief TX attempt number. + */ + uint16_t tx_attempt; + /** + * @brief TX retransmits remaining. + */ + uint16_t tx_remaining; + /** + * @brief Radio events source. + */ + event_source_t eventsrc; +} RFDriver; + +extern RFDriver RFD1; + +nrf52_error_t radio_init(nrf52_config_t const *config); +nrf52_error_t radio_disable(void); +nrf52_error_t radio_write_payload(nrf52_payload_t const * p_payload); +nrf52_error_t radio_read_rx_payload(nrf52_payload_t * p_payload); +nrf52_error_t radio_start_tx(void); +nrf52_error_t radio_start_rx(void); +nrf52_error_t radio_stop_rx(void); +nrf52_error_t radio_flush_tx(void); +nrf52_error_t radio_flush_rx(void); +nrf52_error_t radio_pop_tx(void); +nrf52_error_t radio_set_base_address_0(uint8_t const * p_addr); +nrf52_error_t radio_set_base_address_1(uint8_t const * p_addr); +nrf52_error_t radio_set_prefixes(uint8_t const * p_prefixes, uint8_t num_pipes); +nrf52_error_t radio_set_prefix(uint8_t pipe, uint8_t prefix); + +#endif /* NRF52_RADIO_H_ */ diff --git a/testhal/STM32/STM32F0xx/crc/Makefile b/testhal/STM32/STM32F0xx/crc/Makefile index 7dfc020..0c36874 100644 --- a/testhal/STM32/STM32F0xx/crc/Makefile +++ b/testhal/STM32/STM32F0xx/crc/Makefile @@ -81,8 +81,10 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib +# Licensing files. +include $(CHIBIOS)/os/license/license.mk # Startup files. include $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_stm32f0xx.mk # HAL-OSAL files (optional). @@ -103,19 +105,13 @@ LDSCRIPT= $(STARTUPLD)/STM32F051x8.ld # C sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CSRC = $(STARTUPSRC) \ - $(KERNSRC) \ - $(PORTSRC) \ - $(OSALSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ +CSRC = $(ALLCSRC) \ $(TESTSRC) \ main.c # C++ sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CPPSRC = +CPPSRC = $(ALLCPPSRC) # C sources to be compiled in ARM mode regardless of the global setting. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler @@ -138,12 +134,10 @@ TCSRC = TCPPSRC = # List ASM source files here -ASMSRC = -ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) +ASMSRC = $(ALLASMSRC) +ASMXSRC = $(ALLXASMSRC) -INCDIR = $(CHIBIOS)/os/license \ - $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ - $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ +INCDIR = $(ALLINC) $(TESTINC) \ $(CHIBIOS_CONTRIB)/os/various # diff --git a/testhal/STM32/STM32F0xx/crc/chconf.h b/testhal/STM32/STM32F0xx/crc/chconf.h index 53bd676..58cd5db 100644 --- a/testhal/STM32/STM32F0xx/crc/chconf.h +++ b/testhal/STM32/STM32F0xx/crc/chconf.h @@ -29,7 +29,7 @@ #define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,26 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 10000
+#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.
@@ -71,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 2
+#endif
/** @} */
@@ -94,7 +104,9 @@ * @note The round robin preemption is not supported in tickless mode and
* must be set to zero in that case.
*/
+#if !defined(CH_CFG_TIME_QUANTUM)
#define CH_CFG_TIME_QUANTUM 0
+#endif
/**
* @brief Managed RAM size.
@@ -107,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -116,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -135,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -153,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -161,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -170,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -178,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -189,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -197,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -207,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -217,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -227,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -235,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -245,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -254,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -265,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -275,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -284,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -296,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -305,7 +355,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMPOOLS)
#define CH_CFG_USE_MEMPOOLS TRUE
+#endif
/**
* @brief Objects FIFOs APIs.
@@ -314,7 +366,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_OBJ_FIFOS)
#define CH_CFG_USE_OBJ_FIFOS TRUE
+#endif
/**
* @brief Dynamic Threads APIs.
@@ -325,7 +379,9 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#if !defined(CH_CFG_USE_DYNAMIC)
#define CH_CFG_USE_DYNAMIC TRUE
+#endif
/** @} */
@@ -343,39 +399,53 @@ *
* @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
/** @} */
@@ -391,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -400,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -409,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -419,7 +495,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
@@ -427,14 +505,18 @@ *
* @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/
+#if !defined(CH_DBG_TRACE_MASK)
#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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.
*/
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -446,7 +528,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -456,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -467,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -490,7 +578,7 @@ * @details User initialization code added to the @p chSysInit() function
* just before interrupts are enabled globally.
*/
-#define CH_CFG_SYSTEM_INIT_HOOK(tp) { \
+#define CH_CFG_SYSTEM_INIT_HOOK() { \
/* Add threads initialization code here.*/ \
}
diff --git a/testhal/STM32/STM32F0xx/onewire/Makefile b/testhal/STM32/STM32F0xx/onewire/Makefile index cb248f6..c598f7f 100644 --- a/testhal/STM32/STM32F0xx/onewire/Makefile +++ b/testhal/STM32/STM32F0xx/onewire/Makefile @@ -81,9 +81,11 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib TESTHAL = $(CHIBIOS_CONTRIB)/testhal/common/onewire +# Licensing files. +include $(CHIBIOS)/os/license/license.mk # Startup files. include $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_stm32f0xx.mk # HAL-OSAL files (optional). @@ -104,20 +106,14 @@ LDSCRIPT= $(STARTUPLD)/STM32F051x8.ld # C sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CSRC = $(STARTUPSRC) \ - $(KERNSRC) \ - $(PORTSRC) \ - $(OSALSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ +CSRC = $(ALLCSRC) \ $(TESTSRC) \ main.c \ $(TESTHAL)/testhal_onewire.c # C++ sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CPPSRC = +CPPSRC = $(ALLCPPSRC) # C sources to be compiled in ARM mode regardless of the global setting. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler @@ -140,13 +136,10 @@ TCSRC = TCPPSRC = # List ASM source files here -ASMSRC = -ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) +ASMSRC = $(ALLASMSRC) +ASMXSRC = $(ALLXASMSRC) -INCDIR = $(CHIBIOS)/os/license \ - $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ - $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ - $(CHIBIOS_CONTRIB)/os/various \ +INCDIR = $(ALLINC) $(TESTINC) \ $(TESTHAL) # diff --git a/testhal/STM32/STM32F0xx/onewire/chconf.h b/testhal/STM32/STM32F0xx/onewire/chconf.h index 9339775..1f43bf9 100644 --- a/testhal/STM32/STM32F0xx/onewire/chconf.h +++ b/testhal/STM32/STM32F0xx/onewire/chconf.h @@ -29,7 +29,7 @@ #define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,26 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#if !defined(CH_CFG_ST_RESOLUTION)
#define CH_CFG_ST_RESOLUTION 16
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 10000
+#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 16
+#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 16
+#endif
/**
* @brief Time delta constant for the tick-less mode.
@@ -71,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 0
+#endif
/** @} */
@@ -94,7 +104,9 @@ * @note The round robin preemption is not supported in tickless mode and
* must be set to zero in that case.
*/
+#if !defined(CH_CFG_TIME_QUANTUM)
#define CH_CFG_TIME_QUANTUM 0
+#endif
/**
* @brief Managed RAM size.
@@ -107,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -116,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -135,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -153,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -161,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -170,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -178,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -189,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -197,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -207,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -217,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -227,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -235,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -245,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -254,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -265,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -275,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -284,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -296,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -305,7 +355,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMPOOLS)
#define CH_CFG_USE_MEMPOOLS TRUE
+#endif
/**
* @brief Objects FIFOs APIs.
@@ -314,7 +366,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_OBJ_FIFOS)
#define CH_CFG_USE_OBJ_FIFOS TRUE
+#endif
/**
* @brief Dynamic Threads APIs.
@@ -325,7 +379,9 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#if !defined(CH_CFG_USE_DYNAMIC)
#define CH_CFG_USE_DYNAMIC TRUE
+#endif
/** @} */
@@ -343,39 +399,53 @@ *
* @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
/** @} */
@@ -391,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -400,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -409,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -419,7 +495,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
@@ -427,14 +505,18 @@ *
* @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/
+#if !defined(CH_DBG_TRACE_MASK)
#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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.
*/
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -446,7 +528,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -456,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -467,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -490,7 +578,7 @@ * @details User initialization code added to the @p chSysInit() function
* just before interrupts are enabled globally.
*/
-#define CH_CFG_SYSTEM_INIT_HOOK(tp) { \
+#define CH_CFG_SYSTEM_INIT_HOOK() { \
/* Add threads initialization code here.*/ \
}
diff --git a/testhal/STM32/STM32F0xx/qei/Makefile b/testhal/STM32/STM32F0xx/qei/Makefile index 7dfc020..3fd75c3 100644 --- a/testhal/STM32/STM32F0xx/qei/Makefile +++ b/testhal/STM32/STM32F0xx/qei/Makefile @@ -81,8 +81,10 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib +# Licensing files. +include $(CHIBIOS)/os/license/license.mk # Startup files. include $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_stm32f0xx.mk # HAL-OSAL files (optional). @@ -103,19 +105,13 @@ LDSCRIPT= $(STARTUPLD)/STM32F051x8.ld # C sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CSRC = $(STARTUPSRC) \ - $(KERNSRC) \ - $(PORTSRC) \ - $(OSALSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ +CSRC = $(ALLCSRC) \ $(TESTSRC) \ main.c # C++ sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CPPSRC = +CPPSRC = $(ALLCPPSRC) # C sources to be compiled in ARM mode regardless of the global setting. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler @@ -138,13 +134,10 @@ TCSRC = TCPPSRC = # List ASM source files here -ASMSRC = -ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) +ASMSRC = $(ALLASMSRC) +ASMXSRC = $(ALLXASMSRC) -INCDIR = $(CHIBIOS)/os/license \ - $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ - $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ - $(CHIBIOS_CONTRIB)/os/various +INCDIR = $(ALLINC) $(TESTINC) # # Project, sources and paths diff --git a/testhal/STM32/STM32F0xx/qei/chconf.h b/testhal/STM32/STM32F0xx/qei/chconf.h index 53bd676..58cd5db 100644 --- a/testhal/STM32/STM32F0xx/qei/chconf.h +++ b/testhal/STM32/STM32F0xx/qei/chconf.h @@ -29,7 +29,7 @@ #define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,26 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 10000
+#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.
@@ -71,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 2
+#endif
/** @} */
@@ -94,7 +104,9 @@ * @note The round robin preemption is not supported in tickless mode and
* must be set to zero in that case.
*/
+#if !defined(CH_CFG_TIME_QUANTUM)
#define CH_CFG_TIME_QUANTUM 0
+#endif
/**
* @brief Managed RAM size.
@@ -107,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -116,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -135,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -153,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -161,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -170,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -178,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -189,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -197,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -207,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -217,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -227,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -235,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -245,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -254,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -265,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -275,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -284,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -296,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -305,7 +355,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMPOOLS)
#define CH_CFG_USE_MEMPOOLS TRUE
+#endif
/**
* @brief Objects FIFOs APIs.
@@ -314,7 +366,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_OBJ_FIFOS)
#define CH_CFG_USE_OBJ_FIFOS TRUE
+#endif
/**
* @brief Dynamic Threads APIs.
@@ -325,7 +379,9 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#if !defined(CH_CFG_USE_DYNAMIC)
#define CH_CFG_USE_DYNAMIC TRUE
+#endif
/** @} */
@@ -343,39 +399,53 @@ *
* @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
/** @} */
@@ -391,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -400,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -409,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -419,7 +495,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
@@ -427,14 +505,18 @@ *
* @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/
+#if !defined(CH_DBG_TRACE_MASK)
#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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.
*/
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -446,7 +528,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -456,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -467,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -490,7 +578,7 @@ * @details User initialization code added to the @p chSysInit() function
* just before interrupts are enabled globally.
*/
-#define CH_CFG_SYSTEM_INIT_HOOK(tp) { \
+#define CH_CFG_SYSTEM_INIT_HOOK() { \
/* Add threads initialization code here.*/ \
}
diff --git a/testhal/STM32/STM32F1xx/onewire/Makefile b/testhal/STM32/STM32F1xx/onewire/Makefile index 5b72418..4d217ed 100644 --- a/testhal/STM32/STM32F1xx/onewire/Makefile +++ b/testhal/STM32/STM32F1xx/onewire/Makefile @@ -86,9 +86,11 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib TESTHAL = $(CHIBIOS_CONTRIB)/testhal/common/onewire +# Licensing files. +include $(CHIBIOS)/os/license/license.mk # Startup files. include $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_stm32f1xx.mk # HAL-OSAL files (optional). @@ -109,20 +111,14 @@ LDSCRIPT= $(STARTUPLD)/STM32F103xB.ld # C sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CSRC = $(STARTUPSRC) \ - $(KERNSRC) \ - $(PORTSRC) \ - $(OSALSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ +CSRC = $(ALLCSRC) \ $(TESTSRC) \ main.c \ $(TESTHAL)/testhal_onewire.c # C++ sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CPPSRC = +CPPSRC = $(ALLCPPSRC) # C sources to be compiled in ARM mode regardless of the global setting. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler @@ -145,13 +141,10 @@ TCSRC = TCPPSRC = # List ASM source files here -ASMSRC = -ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) +ASMSRC = $(ALLASMSRC) +ASMXSRC = $(ALLXASMSRC) -INCDIR = $(CHIBIOS)/os/license \ - $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ - $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ - $(CHIBIOS_CONTRIB)/os/various \ +INCDIR = $(ALLINC) $(TESTINC) \ $(TESTHAL) # diff --git a/testhal/STM32/STM32F1xx/onewire/chconf.h b/testhal/STM32/STM32F1xx/onewire/chconf.h index 42ee69b..c0052b1 100644 --- a/testhal/STM32/STM32F1xx/onewire/chconf.h +++ b/testhal/STM32/STM32F1xx/onewire/chconf.h @@ -29,7 +29,7 @@ #define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,26 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#if !defined(CH_CFG_ST_RESOLUTION)
#define CH_CFG_ST_RESOLUTION 16
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 10000
+#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.
@@ -71,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 2
+#endif
/** @} */
@@ -94,7 +104,9 @@ * @note The round robin preemption is not supported in tickless mode and
* must be set to zero in that case.
*/
+#if !defined(CH_CFG_TIME_QUANTUM)
#define CH_CFG_TIME_QUANTUM 0
+#endif
/**
* @brief Managed RAM size.
@@ -107,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -116,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -135,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -153,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -161,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -170,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -178,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -189,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -197,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -207,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -217,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -227,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -235,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -245,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -254,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -265,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -275,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -284,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -296,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -305,7 +355,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMPOOLS)
#define CH_CFG_USE_MEMPOOLS TRUE
+#endif
/**
* @brief Objects FIFOs APIs.
@@ -314,7 +366,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_OBJ_FIFOS)
#define CH_CFG_USE_OBJ_FIFOS TRUE
+#endif
/**
* @brief Dynamic Threads APIs.
@@ -325,7 +379,9 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#if !defined(CH_CFG_USE_DYNAMIC)
#define CH_CFG_USE_DYNAMIC TRUE
+#endif
/** @} */
@@ -343,39 +399,53 @@ *
* @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
/** @} */
@@ -391,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -400,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -409,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -419,7 +495,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
@@ -427,14 +505,18 @@ *
* @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/
+#if !defined(CH_DBG_TRACE_MASK)
#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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.
*/
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -446,7 +528,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -456,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -467,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -490,7 +578,7 @@ * @details User initialization code added to the @p chSysInit() function
* just before interrupts are enabled globally.
*/
-#define CH_CFG_SYSTEM_INIT_HOOK(tp) { \
+#define CH_CFG_SYSTEM_INIT_HOOK() { \
/* Add threads initialization code here.*/ \
}
diff --git a/testhal/STM32/STM32F1xx/qei/Makefile b/testhal/STM32/STM32F1xx/qei/Makefile index f7a7450..ff058da 100644 --- a/testhal/STM32/STM32F1xx/qei/Makefile +++ b/testhal/STM32/STM32F1xx/qei/Makefile @@ -86,8 +86,10 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib +# Licensing files. +include $(CHIBIOS)/os/license/license.mk # Startup files. include $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_stm32f1xx.mk # HAL-OSAL files (optional). @@ -108,19 +110,13 @@ LDSCRIPT= $(STARTUPLD)/STM32F103xB.ld # C sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CSRC = $(STARTUPSRC) \ - $(KERNSRC) \ - $(PORTSRC) \ - $(OSALSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ +CSRC = $(ALLCSRC) \ $(TESTSRC) \ main.c # C++ sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CPPSRC = +CPPSRC = $(ALLCPPSRC) # C sources to be compiled in ARM mode regardless of the global setting. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler @@ -143,13 +139,10 @@ TCSRC = TCPPSRC = # List ASM source files here -ASMSRC = -ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) +ASMSRC = $(ALLASMSRC) +ASMXSRC = $(ALLXASMSRC) -INCDIR = $(CHIBIOS)/os/license \ - $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ - $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ - $(CHIBIOS_CONTRIB)/os/various +INCDIR = $(ALLINC) $(TESTINC) # # Project, sources and paths diff --git a/testhal/STM32/STM32F1xx/qei/chconf.h b/testhal/STM32/STM32F1xx/qei/chconf.h index 42ee69b..c0052b1 100644 --- a/testhal/STM32/STM32F1xx/qei/chconf.h +++ b/testhal/STM32/STM32F1xx/qei/chconf.h @@ -29,7 +29,7 @@ #define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,26 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#if !defined(CH_CFG_ST_RESOLUTION)
#define CH_CFG_ST_RESOLUTION 16
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 10000
+#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.
@@ -71,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 2
+#endif
/** @} */
@@ -94,7 +104,9 @@ * @note The round robin preemption is not supported in tickless mode and
* must be set to zero in that case.
*/
+#if !defined(CH_CFG_TIME_QUANTUM)
#define CH_CFG_TIME_QUANTUM 0
+#endif
/**
* @brief Managed RAM size.
@@ -107,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -116,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -135,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -153,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -161,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -170,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -178,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -189,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -197,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -207,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -217,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -227,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -235,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -245,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -254,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -265,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -275,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -284,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -296,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -305,7 +355,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMPOOLS)
#define CH_CFG_USE_MEMPOOLS TRUE
+#endif
/**
* @brief Objects FIFOs APIs.
@@ -314,7 +366,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_OBJ_FIFOS)
#define CH_CFG_USE_OBJ_FIFOS TRUE
+#endif
/**
* @brief Dynamic Threads APIs.
@@ -325,7 +379,9 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#if !defined(CH_CFG_USE_DYNAMIC)
#define CH_CFG_USE_DYNAMIC TRUE
+#endif
/** @} */
@@ -343,39 +399,53 @@ *
* @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
/** @} */
@@ -391,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -400,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -409,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -419,7 +495,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
@@ -427,14 +505,18 @@ *
* @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/
+#if !defined(CH_DBG_TRACE_MASK)
#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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.
*/
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -446,7 +528,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -456,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -467,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -490,7 +578,7 @@ * @details User initialization code added to the @p chSysInit() function
* just before interrupts are enabled globally.
*/
-#define CH_CFG_SYSTEM_INIT_HOOK(tp) { \
+#define CH_CFG_SYSTEM_INIT_HOOK() { \
/* Add threads initialization code here.*/ \
}
diff --git a/testhal/STM32/STM32F3xx/COMP/Makefile b/testhal/STM32/STM32F3xx/COMP/Makefile index 0e3d04d..e2dac00 100644 --- a/testhal/STM32/STM32F3xx/COMP/Makefile +++ b/testhal/STM32/STM32F3xx/COMP/Makefile @@ -86,8 +86,10 @@ endif PROJECT = ch
# Imported source files and paths
-CHIBIOS = ../../../../../ChibiOS-RT
+CHIBIOS = ../../../../../ChibiOS
CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
+# Licensing files.
+include $(CHIBIOS)/os/license/license.mk
# Startup files.
include $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_stm32f3xx.mk
# HAL-OSAL files (optional).
@@ -108,19 +110,13 @@ LDSCRIPT= $(STARTUPLD)/STM32F303xC.ld # C sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CSRC = $(STARTUPSRC) \
- $(KERNSRC) \
- $(PORTSRC) \
- $(OSALSRC) \
- $(HALSRC) \
- $(PLATFORMSRC) \
- $(BOARDSRC) \
+CSRC = $(ALLCSRC) \
$(TESTSRC) \
main.c
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CPPSRC =
+CPPSRC = $(ALLCPPSRC)
# C sources to be compiled in ARM mode regardless of the global setting.
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
@@ -143,13 +139,10 @@ TCSRC = TCPPSRC =
# List ASM source files here
-ASMSRC =
-ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
+ASMSRC = $(ALLASMSRC)
+ASMXSRC = $(ALLXASMSRC)
-INCDIR = $(CHIBIOS)/os/license \
- $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
- $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
- $(CHIBIOS_CONTRIB)/os/various
+INCDIR = $(ALLINC) $(TESTINC)
#
# Project, sources and paths
diff --git a/testhal/STM32/STM32F3xx/COMP/chconf.h b/testhal/STM32/STM32F3xx/COMP/chconf.h index 53bd676..58cd5db 100644 --- a/testhal/STM32/STM32F3xx/COMP/chconf.h +++ b/testhal/STM32/STM32F3xx/COMP/chconf.h @@ -29,7 +29,7 @@ #define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,26 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 10000
+#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.
@@ -71,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 2
+#endif
/** @} */
@@ -94,7 +104,9 @@ * @note The round robin preemption is not supported in tickless mode and
* must be set to zero in that case.
*/
+#if !defined(CH_CFG_TIME_QUANTUM)
#define CH_CFG_TIME_QUANTUM 0
+#endif
/**
* @brief Managed RAM size.
@@ -107,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -116,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -135,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -153,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -161,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -170,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -178,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -189,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -197,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -207,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -217,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -227,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -235,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -245,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -254,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -265,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -275,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -284,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -296,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -305,7 +355,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMPOOLS)
#define CH_CFG_USE_MEMPOOLS TRUE
+#endif
/**
* @brief Objects FIFOs APIs.
@@ -314,7 +366,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_OBJ_FIFOS)
#define CH_CFG_USE_OBJ_FIFOS TRUE
+#endif
/**
* @brief Dynamic Threads APIs.
@@ -325,7 +379,9 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#if !defined(CH_CFG_USE_DYNAMIC)
#define CH_CFG_USE_DYNAMIC TRUE
+#endif
/** @} */
@@ -343,39 +399,53 @@ *
* @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
/** @} */
@@ -391,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -400,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -409,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -419,7 +495,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
@@ -427,14 +505,18 @@ *
* @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/
+#if !defined(CH_DBG_TRACE_MASK)
#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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.
*/
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -446,7 +528,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -456,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -467,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -490,7 +578,7 @@ * @details User initialization code added to the @p chSysInit() function
* just before interrupts are enabled globally.
*/
-#define CH_CFG_SYSTEM_INIT_HOOK(tp) { \
+#define CH_CFG_SYSTEM_INIT_HOOK() { \
/* Add threads initialization code here.*/ \
}
diff --git a/testhal/STM32/STM32F3xx/EEProm/Makefile b/testhal/STM32/STM32F3xx/EEProm/Makefile index 0e3d04d..e2dac00 100644 --- a/testhal/STM32/STM32F3xx/EEProm/Makefile +++ b/testhal/STM32/STM32F3xx/EEProm/Makefile @@ -86,8 +86,10 @@ endif PROJECT = ch
# Imported source files and paths
-CHIBIOS = ../../../../../ChibiOS-RT
+CHIBIOS = ../../../../../ChibiOS
CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
+# Licensing files.
+include $(CHIBIOS)/os/license/license.mk
# Startup files.
include $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_stm32f3xx.mk
# HAL-OSAL files (optional).
@@ -108,19 +110,13 @@ LDSCRIPT= $(STARTUPLD)/STM32F303xC.ld # C sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CSRC = $(STARTUPSRC) \
- $(KERNSRC) \
- $(PORTSRC) \
- $(OSALSRC) \
- $(HALSRC) \
- $(PLATFORMSRC) \
- $(BOARDSRC) \
+CSRC = $(ALLCSRC) \
$(TESTSRC) \
main.c
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CPPSRC =
+CPPSRC = $(ALLCPPSRC)
# C sources to be compiled in ARM mode regardless of the global setting.
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
@@ -143,13 +139,10 @@ TCSRC = TCPPSRC =
# List ASM source files here
-ASMSRC =
-ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
+ASMSRC = $(ALLASMSRC)
+ASMXSRC = $(ALLXASMSRC)
-INCDIR = $(CHIBIOS)/os/license \
- $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
- $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
- $(CHIBIOS_CONTRIB)/os/various
+INCDIR = $(ALLINC) $(TESTINC)
#
# Project, sources and paths
diff --git a/testhal/STM32/STM32F3xx/EEProm/chconf.h b/testhal/STM32/STM32F3xx/EEProm/chconf.h index 53bd676..58cd5db 100644 --- a/testhal/STM32/STM32F3xx/EEProm/chconf.h +++ b/testhal/STM32/STM32F3xx/EEProm/chconf.h @@ -29,7 +29,7 @@ #define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,26 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 10000
+#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.
@@ -71,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 2
+#endif
/** @} */
@@ -94,7 +104,9 @@ * @note The round robin preemption is not supported in tickless mode and
* must be set to zero in that case.
*/
+#if !defined(CH_CFG_TIME_QUANTUM)
#define CH_CFG_TIME_QUANTUM 0
+#endif
/**
* @brief Managed RAM size.
@@ -107,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -116,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -135,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -153,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -161,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -170,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -178,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -189,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -197,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -207,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -217,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -227,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -235,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -245,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -254,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -265,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -275,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -284,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -296,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -305,7 +355,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMPOOLS)
#define CH_CFG_USE_MEMPOOLS TRUE
+#endif
/**
* @brief Objects FIFOs APIs.
@@ -314,7 +366,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_OBJ_FIFOS)
#define CH_CFG_USE_OBJ_FIFOS TRUE
+#endif
/**
* @brief Dynamic Threads APIs.
@@ -325,7 +379,9 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#if !defined(CH_CFG_USE_DYNAMIC)
#define CH_CFG_USE_DYNAMIC TRUE
+#endif
/** @} */
@@ -343,39 +399,53 @@ *
* @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
/** @} */
@@ -391,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -400,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -409,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -419,7 +495,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
@@ -427,14 +505,18 @@ *
* @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/
+#if !defined(CH_DBG_TRACE_MASK)
#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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.
*/
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -446,7 +528,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -456,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -467,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -490,7 +578,7 @@ * @details User initialization code added to the @p chSysInit() function
* just before interrupts are enabled globally.
*/
-#define CH_CFG_SYSTEM_INIT_HOOK(tp) { \
+#define CH_CFG_SYSTEM_INIT_HOOK() { \
/* Add threads initialization code here.*/ \
}
diff --git a/testhal/STM32/STM32F3xx/OPAMP/Makefile b/testhal/STM32/STM32F3xx/OPAMP/Makefile new file mode 100644 index 0000000..e2dac00 --- /dev/null +++ b/testhal/STM32/STM32F3xx/OPAMP/Makefile @@ -0,0 +1,214 @@ +##############################################################################
+# Build global options
+# NOTE: Can be overridden externally.
+#
+
+# Compiler options here.
+ifeq ($(USE_OPT),)
+ USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16
+endif
+
+# C specific options here (added to USE_OPT).
+ifeq ($(USE_COPT),)
+ USE_COPT =
+endif
+
+# C++ specific options here (added to USE_OPT).
+ifeq ($(USE_CPPOPT),)
+ USE_CPPOPT = -fno-rtti
+endif
+
+# Enable this if you want the linker to remove unused code and data
+ifeq ($(USE_LINK_GC),)
+ USE_LINK_GC = yes
+endif
+
+# Linker extra options here.
+ifeq ($(USE_LDOPT),)
+ USE_LDOPT =
+endif
+
+# Enable this if you want link time optimizations (LTO)
+ifeq ($(USE_LTO),)
+ USE_LTO = yes
+endif
+
+# If enabled, this option allows to compile the application in THUMB mode.
+ifeq ($(USE_THUMB),)
+ USE_THUMB = yes
+endif
+
+# Enable this if you want to see the full log while compiling.
+ifeq ($(USE_VERBOSE_COMPILE),)
+ USE_VERBOSE_COMPILE = no
+endif
+
+# If enabled, this option makes the build process faster by not compiling
+# modules not used in the current configuration.
+ifeq ($(USE_SMART_BUILD),)
+ USE_SMART_BUILD = yes
+endif
+
+#
+# Build global options
+##############################################################################
+
+##############################################################################
+# Architecture or project specific options
+#
+
+# Stack size to be allocated to the Cortex-M process stack. This stack is
+# the stack used by the main() thread.
+ifeq ($(USE_PROCESS_STACKSIZE),)
+ USE_PROCESS_STACKSIZE = 0x400
+endif
+
+# Stack size to the allocated to the Cortex-M main/exceptions stack. This
+# stack is used for processing interrupts and exceptions.
+ifeq ($(USE_EXCEPTIONS_STACKSIZE),)
+ USE_EXCEPTIONS_STACKSIZE = 0x400
+endif
+
+# Enables the use of FPU (no, softfp, hard).
+ifeq ($(USE_FPU),)
+ USE_FPU = no
+endif
+
+#
+# Architecture or project specific options
+##############################################################################
+
+##############################################################################
+# Project, sources and paths
+#
+
+# Define project name here
+PROJECT = ch
+
+# Imported source files and paths
+CHIBIOS = ../../../../../ChibiOS
+CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
+# Licensing files.
+include $(CHIBIOS)/os/license/license.mk
+# Startup files.
+include $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_stm32f3xx.mk
+# HAL-OSAL files (optional).
+include $(CHIBIOS_CONTRIB)/os/hal/hal.mk
+include $(CHIBIOS_CONTRIB)/os/hal/ports/STM32/STM32F3xx/platform.mk
+include $(CHIBIOS)/os/hal/boards/ST_STM32F3_DISCOVERY/board.mk
+include $(CHIBIOS)/os/hal/osal/rt/osal.mk
+# RTOS files (optional).
+include $(CHIBIOS)/os/rt/rt.mk
+include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v7m.mk
+# Other files (optional).
+#include $(CHIBIOS)/test/lib/test.mk
+#include $(CHIBIOS)/test/rt/rt_test.mk
+#include $(CHIBIOS)/test/oslib/oslib_test.mk
+
+# Define linker script file here
+LDSCRIPT= $(STARTUPLD)/STM32F303xC.ld
+
+# C sources that can be compiled in ARM or THUMB mode depending on the global
+# setting.
+CSRC = $(ALLCSRC) \
+ $(TESTSRC) \
+ main.c
+
+# C++ sources that can be compiled in ARM or THUMB mode depending on the global
+# setting.
+CPPSRC = $(ALLCPPSRC)
+
+# C sources to be compiled in ARM mode regardless of the global setting.
+# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
+# option that results in lower performance and larger code size.
+ACSRC =
+
+# C++ sources to be compiled in ARM mode regardless of the global setting.
+# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
+# option that results in lower performance and larger code size.
+ACPPSRC =
+
+# C sources to be compiled in THUMB mode regardless of the global setting.
+# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
+# option that results in lower performance and larger code size.
+TCSRC =
+
+# C sources to be compiled in THUMB mode regardless of the global setting.
+# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
+# option that results in lower performance and larger code size.
+TCPPSRC =
+
+# List ASM source files here
+ASMSRC = $(ALLASMSRC)
+ASMXSRC = $(ALLXASMSRC)
+
+INCDIR = $(ALLINC) $(TESTINC)
+
+#
+# Project, sources and paths
+##############################################################################
+
+##############################################################################
+# Compiler settings
+#
+
+MCU = cortex-m4
+
+#TRGT = arm-elf-
+TRGT = arm-none-eabi-
+CC = $(TRGT)gcc
+CPPC = $(TRGT)g++
+# Enable loading with g++ only if you need C++ runtime support.
+# NOTE: You can use C++ even without C++ support if you are careful. C++
+# runtime support makes code size explode.
+LD = $(TRGT)gcc
+#LD = $(TRGT)g++
+CP = $(TRGT)objcopy
+AS = $(TRGT)gcc -x assembler-with-cpp
+AR = $(TRGT)ar
+OD = $(TRGT)objdump
+SZ = $(TRGT)size
+HEX = $(CP) -O ihex
+BIN = $(CP) -O binary
+
+# ARM-specific options here
+AOPT =
+
+# THUMB-specific options here
+TOPT = -mthumb -DTHUMB
+
+# Define C warning options here
+CWARN = -Wall -Wextra -Wundef -Wstrict-prototypes
+
+# Define C++ warning options here
+CPPWARN = -Wall -Wextra -Wundef
+
+#
+# Compiler settings
+##############################################################################
+
+##############################################################################
+# Start of user section
+#
+
+# List all user C define here, like -D_DEBUG=1
+UDEFS =
+
+# Define ASM defines here
+UADEFS =
+
+# List all user directories here
+UINCDIR =
+
+# List the user directory to look for the libraries here
+ULIBDIR =
+
+# List all user libraries here
+ULIBS =
+
+#
+# End of user defines
+##############################################################################
+
+RULESPATH = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC
+include $(RULESPATH)/rules.mk
diff --git a/testhal/STM32/STM32F3xx/OPAMP/chconf.h b/testhal/STM32/STM32F3xx/OPAMP/chconf.h new file mode 100644 index 0000000..58cd5db --- /dev/null +++ b/testhal/STM32/STM32F3xx/OPAMP/chconf.h @@ -0,0 +1,696 @@ +/*
+ 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.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/**
+ * @file 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.
+ *
+ * @addtogroup config
+ * @details Kernel related settings and hooks.
+ * @{
+ */
+
+#ifndef CHCONF_H
+#define CHCONF_H
+
+#define _CHIBIOS_RT_CONF_
+#define _CHIBIOS_RT_CONF_VER_5_1_
+
+/*===========================================================================*/
+/**
+ * @name System timers settings
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief System time counter resolution.
+ * @note Allowed values are 16 or 32 bits.
+ */
+#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.
+ */
+#if !defined(CH_CFG_ST_FREQUENCY)
+#define CH_CFG_ST_FREQUENCY 10000
+#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.
+ * @note If this value is zero then the system uses the classic
+ * periodic tick. This value represents the minimum number
+ * of ticks that is safe to specify in a timeout directive.
+ * The value one is not valid, timeouts are rounded up to
+ * this value.
+ */
+#if !defined(CH_CFG_ST_TIMEDELTA)
+#define CH_CFG_ST_TIMEDELTA 2
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Kernel parameters and options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Round robin interval.
+ * @details This constant is the number of system ticks allowed for the
+ * threads before preemption occurs. Setting this value to zero
+ * disables the preemption for threads with equal priority and the
+ * round robin becomes cooperative. Note that higher priority
+ * threads can still preempt, the kernel is always preemptive.
+ * @note Disabling the round robin preemption makes the kernel more compact
+ * and generally faster.
+ * @note The round robin preemption is not supported in tickless mode and
+ * must be set to zero in that case.
+ */
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 0
+#endif
+
+/**
+ * @brief Managed RAM size.
+ * @details Size of the RAM area to be managed by the OS. If set to zero
+ * then the whole available RAM is used. The core memory is made
+ * available to the heap allocator and/or can be used directly through
+ * the simplified core memory allocator.
+ *
+ * @note In order to let the OS manage the whole RAM the linker script must
+ * provide the @p __heap_base__ and @p __heap_end__ symbols.
+ * @note Requires @p CH_CFG_USE_MEMCORE.
+ */
+#if !defined(CH_CFG_MEMCORE_SIZE)
+#define CH_CFG_MEMCORE_SIZE 0
+#endif
+
+/**
+ * @brief Idle thread automatic spawn suppression.
+ * @details When this option is activated the function @p chSysInit()
+ * does not spawn the idle thread. The application @p main()
+ * function becomes the idle thread and must implement an
+ * infinite loop.
+ */
+#if !defined(CH_CFG_NO_IDLE_THREAD)
+#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Performance options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief OS optimization.
+ * @details If enabled then time efficient rather than space efficient code
+ * is used when two possible implementations exist.
+ *
+ * @note This is not related to the compiler optimization options.
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
+#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Subsystem options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Time Measurement APIs.
+ * @details If enabled then the time measurement APIs are included in
+ * the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_TM)
+#define CH_CFG_USE_TM FALSE
+#endif
+
+/**
+ * @brief Threads registry APIs.
+ * @details If enabled then the registry APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_REGISTRY)
+#define CH_CFG_USE_REGISTRY TRUE
+#endif
+
+/**
+ * @brief Threads synchronization APIs.
+ * @details If enabled then the @p chThdWait() function is included in
+ * the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_WAITEXIT)
+#define CH_CFG_USE_WAITEXIT TRUE
+#endif
+
+/**
+ * @brief Semaphores APIs.
+ * @details If enabled then the Semaphores APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_SEMAPHORES)
+#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
+
+/**
+ * @brief Semaphores queuing mode.
+ * @details If enabled then the threads are enqueued on semaphores by
+ * priority rather than in FIFO order.
+ *
+ * @note The default is @p FALSE. Enable this if you have special
+ * requirements.
+ * @note Requires @p CH_CFG_USE_SEMAPHORES.
+ */
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
+#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
+
+/**
+ * @brief Mutexes APIs.
+ * @details If enabled then the mutexes APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_MUTEXES)
+#define CH_CFG_USE_MUTEXES TRUE
+#endif
+
+/**
+ * @brief Enables recursive behavior on mutexes.
+ * @note Recursive mutexes are heavier and have an increased
+ * memory footprint.
+ *
+ * @note The default is @p FALSE.
+ * @note Requires @p CH_CFG_USE_MUTEXES.
+ */
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
+#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
+
+/**
+ * @brief Conditional Variables APIs.
+ * @details If enabled then the conditional variables APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_MUTEXES.
+ */
+#if !defined(CH_CFG_USE_CONDVARS)
+#define CH_CFG_USE_CONDVARS TRUE
+#endif
+
+/**
+ * @brief Conditional Variables APIs with timeout.
+ * @details If enabled then the conditional variables APIs with timeout
+ * specification are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_CONDVARS.
+ */
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
+#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
+
+/**
+ * @brief Events Flags APIs.
+ * @details If enabled then the event flags APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_EVENTS)
+#define CH_CFG_USE_EVENTS TRUE
+#endif
+
+/**
+ * @brief Events Flags APIs with timeout.
+ * @details If enabled then the events APIs with timeout specification
+ * are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_EVENTS.
+ */
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
+#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
+
+/**
+ * @brief Synchronous Messages APIs.
+ * @details If enabled then the synchronous messages APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_MESSAGES)
+#define CH_CFG_USE_MESSAGES TRUE
+#endif
+
+/**
+ * @brief Synchronous Messages queuing mode.
+ * @details If enabled then messages are served by priority rather than in
+ * FIFO order.
+ *
+ * @note The default is @p FALSE. Enable this if you have special
+ * requirements.
+ * @note Requires @p CH_CFG_USE_MESSAGES.
+ */
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
+#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
+
+/**
+ * @brief Mailboxes APIs.
+ * @details If enabled then the asynchronous messages (mailboxes) APIs are
+ * included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_SEMAPHORES.
+ */
+#if !defined(CH_CFG_USE_MAILBOXES)
+#define CH_CFG_USE_MAILBOXES TRUE
+#endif
+
+/**
+ * @brief Core Memory Manager APIs.
+ * @details If enabled then the core memory manager APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_MEMCORE)
+#define CH_CFG_USE_MEMCORE TRUE
+#endif
+
+/**
+ * @brief Heap Allocator APIs.
+ * @details If enabled then the memory heap allocator APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or
+ * @p CH_CFG_USE_SEMAPHORES.
+ * @note Mutexes are recommended.
+ */
+#if !defined(CH_CFG_USE_HEAP)
+#define CH_CFG_USE_HEAP TRUE
+#endif
+
+/**
+ * @brief Memory Pools Allocator APIs.
+ * @details If enabled then the memory pools allocator APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p 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 Dynamic Threads APIs.
+ * @details If enabled then the dynamic threads creation APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_WAITEXIT.
+ * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
+ */
+#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
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Debug options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Debug option, kernel statistics.
+ *
+ * @note The default is @p FALSE.
+ */
+#if !defined(CH_DBG_STATISTICS)
+#define CH_DBG_STATISTICS FALSE
+#endif
+
+/**
+ * @brief Debug option, system state check.
+ * @details If enabled the correct call protocol for system APIs is checked
+ * at runtime.
+ *
+ * @note The default is @p FALSE.
+ */
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
+#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
+
+/**
+ * @brief Debug option, parameters checks.
+ * @details If enabled then the checks on the API functions input
+ * parameters are activated.
+ *
+ * @note The default is @p FALSE.
+ */
+#if !defined(CH_DBG_ENABLE_CHECKS)
+#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
+
+/**
+ * @brief Debug option, consistency checks.
+ * @details If enabled then all the assertions in the kernel code are
+ * activated. This includes consistency checks inside the kernel,
+ * runtime anomalies and port-defined checks.
+ *
+ * @note The default is @p FALSE.
+ */
+#if !defined(CH_DBG_ENABLE_ASSERTS)
+#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
+
+/**
+ * @brief Debug option, trace buffer.
+ * @details If enabled then the trace buffer is activated.
+ *
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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.
+ */
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
+
+/**
+ * @brief Debug option, stack checks.
+ * @details If enabled then a runtime stack check is performed.
+ *
+ * @note The default is @p FALSE.
+ * @note The stack check is performed in a architecture/port dependent way.
+ * It may not be implemented or some ports.
+ * @note The default failure mode is to halt the system with the global
+ * @p panic_msg variable set to @p NULL.
+ */
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
+#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
+
+/**
+ * @brief Debug option, stacks initialization.
+ * @details If enabled then the threads working area is filled with a byte
+ * value when a thread is created. This can be useful for the
+ * runtime measurement of the used stack.
+ *
+ * @note The default is @p FALSE.
+ */
+#if !defined(CH_DBG_FILL_THREADS)
+#define CH_DBG_FILL_THREADS TRUE
+#endif
+
+/**
+ * @brief Debug option, threads profiling.
+ * @details If enabled then a field is added to the @p thread_t structure that
+ * counts the system ticks occurred while executing the thread.
+ *
+ * @note The default is @p FALSE.
+ * @note This debug option is not currently compatible with the
+ * tickless mode.
+ */
+#if !defined(CH_DBG_THREADS_PROFILING)
+#define CH_DBG_THREADS_PROFILING FALSE
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Kernel hooks
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @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.
+ */
+#define CH_CFG_THREAD_EXTRA_FIELDS \
+ /* Add threads custom fields here.*/
+
+/**
+ * @brief Threads initialization hook.
+ * @details User initialization code added to the @p _thread_init() function.
+ *
+ * @note It is invoked from within @p _thread_init() and implicitly from all
+ * the threads creation APIs.
+ */
+#define CH_CFG_THREAD_INIT_HOOK(tp) { \
+ /* Add threads initialization code here.*/ \
+}
+
+/**
+ * @brief Threads finalization hook.
+ * @details User finalization code added to the @p chThdExit() API.
+ */
+#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
+ /* Add threads finalization code here.*/ \
+}
+
+/**
+ * @brief Context switch hook.
+ * @details This hook is invoked just before switching between threads.
+ */
+#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \
+ /* Context switch code here.*/ \
+}
+
+/**
+ * @brief ISR enter hook.
+ */
+#define CH_CFG_IRQ_PROLOGUE_HOOK() { \
+ /* IRQ prologue code here.*/ \
+}
+
+/**
+ * @brief ISR exit hook.
+ */
+#define CH_CFG_IRQ_EPILOGUE_HOOK() { \
+ /* IRQ epilogue code here.*/ \
+}
+
+/**
+ * @brief Idle thread enter hook.
+ * @note This hook is invoked within a critical zone, no OS functions
+ * should be invoked from here.
+ * @note This macro can be used to activate a power saving mode.
+ */
+#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
+}
+
+/**
+ * @brief Idle thread leave hook.
+ * @note This hook is invoked within a critical zone, no OS functions
+ * should be invoked from here.
+ * @note This macro can be used to deactivate a power saving mode.
+ */
+#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
+}
+
+/**
+ * @brief Idle Loop hook.
+ * @details This hook is continuously invoked by the idle thread loop.
+ */
+#define CH_CFG_IDLE_LOOP_HOOK() { \
+ /* Idle loop code here.*/ \
+}
+
+/**
+ * @brief System tick event hook.
+ * @details This hook is invoked in the system tick handler immediately
+ * after processing the virtual timers queue.
+ */
+#define CH_CFG_SYSTEM_TICK_HOOK() { \
+ /* System tick event code here.*/ \
+}
+
+/**
+ * @brief System halt hook.
+ * @details This hook is invoked in case to a system halting error before
+ * the system is halted.
+ */
+#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \
+ /* System halt code here.*/ \
+}
+
+/**
+ * @brief Trace hook.
+ * @details This hook is invoked each time a new record is written in the
+ * trace buffer.
+ */
+#define CH_CFG_TRACE_HOOK(tep) { \
+ /* Trace code here.*/ \
+}
+
+/** @} */
+
+/*===========================================================================*/
+/* Port-specific settings (override port settings defaulted in chcore.h). */
+/*===========================================================================*/
+
+#endif /* CHCONF_H */
+
+/** @} */
diff --git a/testhal/STM32/STM32F3xx/OPAMP/halconf.h b/testhal/STM32/STM32F3xx/OPAMP/halconf.h new file mode 100644 index 0000000..9192b27 --- /dev/null +++ b/testhal/STM32/STM32F3xx/OPAMP/halconf.h @@ -0,0 +1,419 @@ +/*
+ 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.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/**
+ * @file templates/halconf.h
+ * @brief HAL configuration header.
+ * @details HAL configuration file, this file allows to enable or disable the
+ * various device drivers from your application. You may also use
+ * this file in order to override the device drivers default settings.
+ *
+ * @addtogroup HAL_CONF
+ * @{
+ */
+
+#ifndef HALCONF_H
+#define HALCONF_H
+
+#include "mcuconf.h"
+
+/**
+ * @brief Enables the PAL subsystem.
+ */
+#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__)
+#define HAL_USE_PAL TRUE
+#endif
+
+/**
+ * @brief Enables the ADC subsystem.
+ */
+#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__)
+#define HAL_USE_ADC TRUE
+#endif
+
+/**
+ * @brief Enables the CAN subsystem.
+ */
+#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__)
+#define HAL_USE_CAN FALSE
+#endif
+
+/**
+ * @brief Enables the cryptographic subsystem.
+ */
+#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__)
+#define HAL_USE_CRY FALSE
+#endif
+
+/**
+ * @brief Enables the DAC subsystem.
+ */
+#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__)
+#define HAL_USE_DAC TRUE
+#endif
+
+/**
+ * @brief Enables the EXT subsystem.
+ */
+#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__)
+#define HAL_USE_EXT FALSE
+#endif
+
+/**
+ * @brief Enables the GPT subsystem.
+ */
+#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__)
+#define HAL_USE_GPT TRUE
+#endif
+
+/**
+ * @brief Enables the I2C subsystem.
+ */
+#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__)
+#define HAL_USE_I2C FALSE
+#endif
+
+/**
+ * @brief Enables the I2S subsystem.
+ */
+#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__)
+#define HAL_USE_I2S FALSE
+#endif
+
+/**
+ * @brief Enables the ICU subsystem.
+ */
+#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__)
+#define HAL_USE_ICU FALSE
+#endif
+
+/**
+ * @brief Enables the MAC subsystem.
+ */
+#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__)
+#define HAL_USE_MAC FALSE
+#endif
+
+/**
+ * @brief Enables the MMC_SPI subsystem.
+ */
+#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__)
+#define HAL_USE_MMC_SPI FALSE
+#endif
+
+/**
+ * @brief Enables the PWM subsystem.
+ */
+#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__)
+#define HAL_USE_PWM FALSE
+#endif
+
+/**
+ * @brief Enables the QSPI subsystem.
+ */
+#if !defined(HAL_USE_QSPI) || defined(__DOXYGEN__)
+#define HAL_USE_QSPI FALSE
+#endif
+
+/**
+ * @brief Enables the RTC subsystem.
+ */
+#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__)
+#define HAL_USE_RTC FALSE
+#endif
+
+/**
+ * @brief Enables the SDC subsystem.
+ */
+#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__)
+#define HAL_USE_SDC FALSE
+#endif
+
+/**
+ * @brief Enables the SERIAL subsystem.
+ */
+#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__)
+#define HAL_USE_SERIAL FALSE
+#endif
+
+/**
+ * @brief Enables the SERIAL over USB subsystem.
+ */
+#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
+#define HAL_USE_SERIAL_USB FALSE
+#endif
+
+/**
+ * @brief Enables the SPI subsystem.
+ */
+#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__)
+#define HAL_USE_SPI FALSE
+#endif
+
+/**
+ * @brief Enables the UART subsystem.
+ */
+#if !defined(HAL_USE_UART) || defined(__DOXYGEN__)
+#define HAL_USE_UART FALSE
+#endif
+
+/**
+ * @brief Enables the USB subsystem.
+ */
+#if !defined(HAL_USE_USB) || defined(__DOXYGEN__)
+#define HAL_USE_USB FALSE
+#endif
+
+/**
+ * @brief Enables the WDG subsystem.
+ */
+#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__)
+#define HAL_USE_WDG FALSE
+#endif
+
+/*===========================================================================*/
+/* ADC driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__)
+#define ADC_USE_WAIT TRUE
+#endif
+
+/**
+ * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+#define ADC_USE_MUTUAL_EXCLUSION TRUE
+#endif
+
+/*===========================================================================*/
+/* CAN driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Sleep mode related APIs inclusion switch.
+ */
+#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__)
+#define CAN_USE_SLEEP_MODE TRUE
+#endif
+
+/*===========================================================================*/
+/* CRY driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables the SW fall-back of the cryptographic driver.
+ * @details When enabled, this option, activates a fall-back software
+ * implementation for algorithms not supported by the underlying
+ * hardware.
+ * @note Fall-back implementations may not be present for all algorithms.
+ */
+#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__)
+#define HAL_CRY_USE_FALLBACK FALSE
+#endif
+
+/**
+ * @brief Makes the driver forcibly use the fall-back implementations.
+ */
+#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__)
+#define HAL_CRY_ENFORCE_FALLBACK FALSE
+#endif
+
+/*===========================================================================*/
+/* I2C driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables the mutual exclusion APIs on the I2C bus.
+ */
+#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+#define I2C_USE_MUTUAL_EXCLUSION TRUE
+#endif
+
+/*===========================================================================*/
+/* MAC driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables an event sources for incoming packets.
+ */
+#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__)
+#define MAC_USE_ZERO_COPY FALSE
+#endif
+
+/**
+ * @brief Enables an event sources for incoming packets.
+ */
+#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__)
+#define MAC_USE_EVENTS TRUE
+#endif
+
+/*===========================================================================*/
+/* MMC_SPI driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Delays insertions.
+ * @details If enabled this options inserts delays into the MMC waiting
+ * routines releasing some extra CPU time for the threads with
+ * lower priority, this may slow down the driver a bit however.
+ * This option is recommended also if the SPI driver does not
+ * use a DMA channel and heavily loads the CPU.
+ */
+#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__)
+#define MMC_NICE_WAITING TRUE
+#endif
+
+/*===========================================================================*/
+/* SDC driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Number of initialization attempts before rejecting the card.
+ * @note Attempts are performed at 10mS intervals.
+ */
+#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__)
+#define SDC_INIT_RETRY 100
+#endif
+
+/**
+ * @brief Include support for MMC cards.
+ * @note MMC support is not yet implemented so this option must be kept
+ * at @p FALSE.
+ */
+#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__)
+#define SDC_MMC_SUPPORT FALSE
+#endif
+
+/**
+ * @brief Delays insertions.
+ * @details If enabled this options inserts delays into the MMC waiting
+ * routines releasing some extra CPU time for the threads with
+ * lower priority, this may slow down the driver a bit however.
+ */
+#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__)
+#define SDC_NICE_WAITING TRUE
+#endif
+
+/*===========================================================================*/
+/* SERIAL driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Default bit rate.
+ * @details Configuration parameter, this is the baud rate selected for the
+ * default configuration.
+ */
+#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__)
+#define SERIAL_DEFAULT_BITRATE 38400
+#endif
+
+/**
+ * @brief Serial buffers size.
+ * @details Configuration parameter, you can change the depth of the queue
+ * buffers depending on the requirements of your application.
+ * @note The default is 16 bytes for both the transmission and receive
+ * buffers.
+ */
+#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
+#define SERIAL_BUFFERS_SIZE 16
+#endif
+
+/*===========================================================================*/
+/* SERIAL_USB driver related setting. */
+/*===========================================================================*/
+
+/**
+ * @brief Serial over USB buffers size.
+ * @details Configuration parameter, the buffer size must be a multiple of
+ * the USB data endpoint maximum packet size.
+ * @note The default is 256 bytes for both the transmission and receive
+ * buffers.
+ */
+#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__)
+#define SERIAL_USB_BUFFERS_SIZE 256
+#endif
+
+/**
+ * @brief Serial over USB number of buffers.
+ * @note The default is 2 buffers.
+ */
+#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__)
+#define SERIAL_USB_BUFFERS_NUMBER 2
+#endif
+
+/*===========================================================================*/
+/* SPI driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__)
+#define SPI_USE_WAIT TRUE
+#endif
+
+/**
+ * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+#define SPI_USE_MUTUAL_EXCLUSION TRUE
+#endif
+
+/*===========================================================================*/
+/* UART driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__)
+#define UART_USE_WAIT FALSE
+#endif
+
+/**
+ * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+#define UART_USE_MUTUAL_EXCLUSION FALSE
+#endif
+
+/*===========================================================================*/
+/* USB driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__)
+#define USB_USE_WAIT FALSE
+#endif
+
+#include "halconf_community.h"
+
+#endif /* HALCONF_H */
+
+/** @} */
diff --git a/testhal/STM32/STM32F3xx/OPAMP/halconf_community.h b/testhal/STM32/STM32F3xx/OPAMP/halconf_community.h new file mode 100644 index 0000000..6f56cd8 --- /dev/null +++ b/testhal/STM32/STM32F3xx/OPAMP/halconf_community.h @@ -0,0 +1,180 @@ +/*
+ ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#ifndef HALCONF_COMMUNITY_H
+#define HALCONF_COMMUNITY_H
+
+/**
+ * @brief Enables the community overlay.
+ */
+#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__)
+#define HAL_USE_COMMUNITY TRUE
+#endif
+
+/**
+ * @brief Enables the FSMC subsystem.
+ */
+#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__)
+#define HAL_USE_FSMC FALSE
+#endif
+
+/**
+ * @brief Enables the NAND subsystem.
+ */
+#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__)
+#define HAL_USE_NAND FALSE
+#endif
+
+/**
+ * @brief Enables the 1-wire subsystem.
+ */
+#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__)
+#define HAL_USE_ONEWIRE FALSE
+#endif
+
+/**
+ * @brief Enables the EICU subsystem.
+ */
+#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__)
+#define HAL_USE_EICU FALSE
+#endif
+
+/**
+ * @brief Enables the CRC subsystem.
+ */
+#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__)
+#define HAL_USE_CRC FALSE
+#endif
+
+/**
+ * @brief Enables the RNG subsystem.
+ */
+#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__)
+#define HAL_USE_RNG FALSE
+#endif
+
+/**
+ * @brief Enables the EEPROM subsystem.
+ */
+#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__)
+#define HAL_USE_EEPROM FALSE
+#endif
+
+/**
+ * @brief Enables the TIMCAP subsystem.
+ */
+#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__)
+#define HAL_USE_TIMCAP FALSE
+#endif
+
+/**
+ * @brief Enables the TIMCAP subsystem.
+ */
+#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__)
+#define HAL_USE_COMP TRUE
+#endif
+
+/**
+ * @brief Enables the OPAMP subsystem.
+ */
+#if !defined(HAL_USE_OPAMP) || defined(__DOXYGEN__)
+#define HAL_USE_OPAMP TRUE
+#endif
+
+/**
+ * @brief Enables the QEI subsystem.
+ */
+#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__)
+#define HAL_USE_QEI FALSE
+#endif
+
+/**
+ * @brief Enables the USBH subsystem.
+ */
+#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__)
+#define HAL_USE_USBH FALSE
+#endif
+
+/**
+ * @brief Enables the USB_MSD subsystem.
+ */
+#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__)
+#define HAL_USE_USB_MSD FALSE
+#endif
+
+/*===========================================================================*/
+/* FSMCNAND driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+#define NAND_USE_MUTUAL_EXCLUSION TRUE
+#endif
+
+/*===========================================================================*/
+/* 1-wire driver related settings. */
+/*===========================================================================*/
+/**
+ * @brief Enables strong pull up feature.
+ * @note Disabling this option saves both code and data space.
+ */
+#define ONEWIRE_USE_STRONG_PULLUP FALSE
+
+/**
+ * @brief Enables search ROM feature.
+ * @note Disabling this option saves both code and data space.
+ */
+#define ONEWIRE_USE_SEARCH_ROM TRUE
+
+/*===========================================================================*/
+/* QEI driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables discard of overlow
+ */
+#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__)
+#define QEI_USE_OVERFLOW_DISCARD FALSE
+#endif
+
+/**
+ * @brief Enables min max of overlow
+ */
+#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__)
+#define QEI_USE_OVERFLOW_MINMAX FALSE
+#endif
+
+/*===========================================================================*/
+/* EEProm driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables 24xx series I2C eeprom device driver.
+ * @note Disabling this option saves both code and data space.
+ */
+#define EEPROM_USE_EE24XX FALSE
+ /**
+ * @brief Enables 25xx series SPI eeprom device driver.
+ * @note Disabling this option saves both code and data space.
+ */
+#define EEPROM_USE_EE25XX FALSE
+
+#endif /* HALCONF_COMMUNITY_H */
+
+/** @} */
diff --git a/testhal/STM32/STM32F3xx/OPAMP/main.c b/testhal/STM32/STM32F3xx/OPAMP/main.c new file mode 100644 index 0000000..39af13c --- /dev/null +++ b/testhal/STM32/STM32F3xx/OPAMP/main.c @@ -0,0 +1,132 @@ +/*
+ ChibiOS - Copyright (C) 2006..2015 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.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#include "ch.h"
+#include "hal.h"
+
+#define DAC_BUFFER_SIZE 360
+
+/*
+ * DAC test buffer (sine wave).
+ */
+static const dacsample_t dac_buffer[DAC_BUFFER_SIZE] = {
+ 2047, 2082, 2118, 2154, 2189, 2225, 2260, 2296, 2331, 2367, 2402, 2437,
+ 2472, 2507, 2542, 2576, 2611, 2645, 2679, 2713, 2747, 2780, 2813, 2846,
+ 2879, 2912, 2944, 2976, 3008, 3039, 3070, 3101, 3131, 3161, 3191, 3221,
+ 3250, 3278, 3307, 3335, 3362, 3389, 3416, 3443, 3468, 3494, 3519, 3544,
+ 3568, 3591, 3615, 3637, 3660, 3681, 3703, 3723, 3744, 3763, 3782, 3801,
+ 3819, 3837, 3854, 3870, 3886, 3902, 3917, 3931, 3944, 3958, 3970, 3982,
+ 3993, 4004, 4014, 4024, 4033, 4041, 4049, 4056, 4062, 4068, 4074, 4078,
+ 4082, 4086, 4089, 4091, 4092, 4093, 4094, 4093, 4092, 4091, 4089, 4086,
+ 4082, 4078, 4074, 4068, 4062, 4056, 4049, 4041, 4033, 4024, 4014, 4004,
+ 3993, 3982, 3970, 3958, 3944, 3931, 3917, 3902, 3886, 3870, 3854, 3837,
+ 3819, 3801, 3782, 3763, 3744, 3723, 3703, 3681, 3660, 3637, 3615, 3591,
+ 3568, 3544, 3519, 3494, 3468, 3443, 3416, 3389, 3362, 3335, 3307, 3278,
+ 3250, 3221, 3191, 3161, 3131, 3101, 3070, 3039, 3008, 2976, 2944, 2912,
+ 2879, 2846, 2813, 2780, 2747, 2713, 2679, 2645, 2611, 2576, 2542, 2507,
+ 2472, 2437, 2402, 2367, 2331, 2296, 2260, 2225, 2189, 2154, 2118, 2082,
+ 2047, 2012, 1976, 1940, 1905, 1869, 1834, 1798, 1763, 1727, 1692, 1657,
+ 1622, 1587, 1552, 1518, 1483, 1449, 1415, 1381, 1347, 1314, 1281, 1248,
+ 1215, 1182, 1150, 1118, 1086, 1055, 1024, 993, 963, 933, 903, 873,
+ 844, 816, 787, 759, 732, 705, 678, 651, 626, 600, 575, 550,
+ 526, 503, 479, 457, 434, 413, 391, 371, 350, 331, 312, 293,
+ 275, 257, 240, 224, 208, 192, 177, 163, 150, 136, 124, 112,
+ 101, 90, 80, 70, 61, 53, 45, 38, 32, 26, 20, 16,
+ 12, 8, 5, 3, 2, 1, 0, 1, 2, 3, 5, 8,
+ 12, 16, 20, 26, 32, 38, 45, 53, 61, 70, 80, 90,
+ 101, 112, 124, 136, 150, 163, 177, 192, 208, 224, 240, 257,
+ 275, 293, 312, 331, 350, 371, 391, 413, 434, 457, 479, 503,
+ 526, 550, 575, 600, 626, 651, 678, 705, 732, 759, 787, 816,
+ 844, 873, 903, 933, 963, 993, 1024, 1055, 1086, 1118, 1150, 1182,
+ 1215, 1248, 1281, 1314, 1347, 1381, 1415, 1449, 1483, 1518, 1552, 1587,
+ 1622, 1657, 1692, 1727, 1763, 1798, 1834, 1869, 1905, 1940, 1976, 2012
+};
+
+static const DACConfig dac1cfg1 = {
+ .init = 2047U,
+ .datamode = DAC_DHRM_12BIT_RIGHT,
+ .cr = 0
+};
+
+static const DACConversionGroup dacgrpcfg1 = {
+ .num_channels = 1U,
+ .end_cb = NULL,
+ .error_cb = NULL,
+ .trigger = DAC_TRG(0)
+};
+
+/*
+ * GPT6 configuration.
+ */
+static const GPTConfig gpt6cfg1 = {
+ .frequency = 10000U,
+ .callback = NULL,
+ .cr2 = TIM_CR2_MMS_1, /* MMS = 010 = TRGO on Update Event. */
+ .dier = 0U
+};
+
+/*
+ * OpAmp configuration.
+ * We will double the input voltage
+ */
+static const OPAMPConfig opamp1_conf = {
+ OPAMP1_CSR_VPSEL_PA01 | // INP connectd to PA1
+ OPAMP1_CSR_VMSEL_PGA | // INM connected to PGA
+ OPAMPx_CSR_PGAGAIN_x2 | // Gain of 2x
+ OPAMPx_CSR_PGACONNECT_GROUND // PGA connected to ground
+};
+
+/*
+ * Application entry point.
+ */
+int main(void) {
+
+ halInit();
+ chSysInit();
+
+ /*
+ * Set PA3 - PA1 to Analog (DAC1_CH1, OPAMP1_INP)
+ * You will have to connect these with a jumper wire
+ */
+ palSetPadMode(GPIOA, 3, PAL_MODE_INPUT_ANALOG);
+ palSetPadMode(GPIOA, 1, PAL_MODE_INPUT_ANALOG);
+
+ /*
+ * Start peripherals
+ */
+ dacStart(&DACD1, &dac1cfg1);
+ opampStart(&OPAMPD1, &opamp1_conf);
+ gptStart(&GPTD6, &gpt6cfg1);
+
+ /*
+ * Starting a continuous conversion.
+ */
+ dacStartConversion(&DACD1, &dacgrpcfg1, dac_buffer, DAC_BUFFER_SIZE);
+ gptStartContinuous(&GPTD6, 2U);
+
+ opampEnable(&OPAMPD1);
+ opampCalibrate();
+
+ /*
+ * Normal main() thread activity.
+ */
+ while (true) {
+
+ chThdSleepMilliseconds(250);
+ palToggleLine(LINE_LED3_RED);
+ }
+ return 0;
+}
diff --git a/testhal/STM32/STM32F3xx/OPAMP/mcuconf.h b/testhal/STM32/STM32F3xx/OPAMP/mcuconf.h new file mode 100644 index 0000000..9b14ad7 --- /dev/null +++ b/testhal/STM32/STM32F3xx/OPAMP/mcuconf.h @@ -0,0 +1,255 @@ +/*
+ 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.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#ifndef MCUCONF_H
+#define MCUCONF_H
+
+/*
+ * STM32F3xx drivers configuration.
+ * The following settings override the default settings present in
+ * the various device driver implementation headers.
+ * Note that the settings for each driver only have effect if the whole
+ * driver is enabled in halconf.h.
+ *
+ * IRQ priorities:
+ * 15...0 Lowest...Highest.
+ *
+ * DMA priorities:
+ * 0...3 Lowest...Highest.
+ */
+
+#define STM32F3xx_MCUCONF
+
+/*
+ * HAL driver system settings.
+ */
+#define STM32_NO_INIT FALSE
+#define STM32_PVD_ENABLE FALSE
+#define STM32_PLS STM32_PLS_LEV0
+#define STM32_HSI_ENABLED TRUE
+#define STM32_LSI_ENABLED TRUE
+#define STM32_HSE_ENABLED TRUE
+#define STM32_LSE_ENABLED FALSE
+#define STM32_SW STM32_SW_PLL
+#define STM32_PLLSRC STM32_PLLSRC_HSE
+#define STM32_PREDIV_VALUE 1
+#define STM32_PLLMUL_VALUE 9
+#define STM32_HPRE STM32_HPRE_DIV1
+#define STM32_PPRE1 STM32_PPRE1_DIV2
+#define STM32_PPRE2 STM32_PPRE2_DIV2
+#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK
+#define STM32_ADC12PRES STM32_ADC12PRES_DIV1
+#define STM32_ADC34PRES STM32_ADC34PRES_DIV1
+#define STM32_USART1SW STM32_USART1SW_PCLK
+#define STM32_USART2SW STM32_USART2SW_PCLK
+#define STM32_USART3SW STM32_USART3SW_PCLK
+#define STM32_UART4SW STM32_UART4SW_PCLK
+#define STM32_UART5SW STM32_UART5SW_PCLK
+#define STM32_I2C1SW STM32_I2C1SW_SYSCLK
+#define STM32_I2C2SW STM32_I2C2SW_SYSCLK
+#define STM32_TIM1SW STM32_TIM1SW_PCLK2
+#define STM32_TIM8SW STM32_TIM8SW_PCLK2
+#define STM32_RTCSEL STM32_RTCSEL_LSI
+#define STM32_USB_CLOCK_REQUIRED TRUE
+#define STM32_USBPRE STM32_USBPRE_DIV1P5
+
+/*
+ * IRQ system settings.
+ */
+#define STM32_IRQ_EXTI0_PRIORITY 6
+#define STM32_IRQ_EXTI1_PRIORITY 6
+#define STM32_IRQ_EXTI2_PRIORITY 6
+#define STM32_IRQ_EXTI3_PRIORITY 6
+#define STM32_IRQ_EXTI4_PRIORITY 6
+#define STM32_IRQ_EXTI5_9_PRIORITY 6
+#define STM32_IRQ_EXTI10_15_PRIORITY 6
+#define STM32_IRQ_EXTI16_PRIORITY 6
+#define STM32_IRQ_EXTI17_PRIORITY 6
+#define STM32_IRQ_EXTI18_PRIORITY 6
+#define STM32_IRQ_EXTI19_PRIORITY 6
+#define STM32_IRQ_EXTI20_PRIORITY 6
+#define STM32_IRQ_EXTI21_22_29_PRIORITY 6
+#define STM32_IRQ_EXTI30_32_PRIORITY 6
+#define STM32_IRQ_EXTI33_PRIORITY 6
+
+/*
+ * ADC driver system settings.
+ */
+#define STM32_ADC_DUAL_MODE FALSE
+#define STM32_ADC_COMPACT_SAMPLES FALSE
+#define STM32_ADC_USE_ADC1 TRUE
+#define STM32_ADC_USE_ADC2 TRUE
+#define STM32_ADC_USE_ADC3 TRUE
+#define STM32_ADC_USE_ADC4 TRUE
+#define STM32_ADC_ADC1_DMA_STREAM STM32_DMA_STREAM_ID(1, 1)
+#define STM32_ADC_ADC2_DMA_STREAM STM32_DMA_STREAM_ID(2, 1)
+#define STM32_ADC_ADC3_DMA_STREAM STM32_DMA_STREAM_ID(2, 5)
+#define STM32_ADC_ADC4_DMA_STREAM STM32_DMA_STREAM_ID(2, 2)
+#define STM32_ADC_ADC1_DMA_PRIORITY 2
+#define STM32_ADC_ADC2_DMA_PRIORITY 2
+#define STM32_ADC_ADC3_DMA_PRIORITY 2
+#define STM32_ADC_ADC4_DMA_PRIORITY 2
+#define STM32_ADC_ADC12_IRQ_PRIORITY 5
+#define STM32_ADC_ADC3_IRQ_PRIORITY 5
+#define STM32_ADC_ADC4_IRQ_PRIORITY 5
+#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 5
+#define STM32_ADC_ADC2_DMA_IRQ_PRIORITY 5
+#define STM32_ADC_ADC3_DMA_IRQ_PRIORITY 5
+#define STM32_ADC_ADC4_DMA_IRQ_PRIORITY 5
+#define STM32_ADC_ADC12_CLOCK_MODE ADC_CCR_CKMODE_AHB_DIV1
+#define STM32_ADC_ADC34_CLOCK_MODE ADC_CCR_CKMODE_AHB_DIV1
+
+/*
+ * CAN driver system settings.
+ */
+#define STM32_CAN_USE_CAN1 FALSE
+#define STM32_CAN_CAN1_IRQ_PRIORITY 11
+
+/*
+ * DAC driver system settings.
+ */
+#define STM32_DAC_DUAL_MODE FALSE
+#define STM32_DAC_USE_DAC1_CH1 TRUE
+#define STM32_DAC_USE_DAC1_CH2 TRUE
+#define STM32_DAC_DAC1_CH1_IRQ_PRIORITY 10
+#define STM32_DAC_DAC1_CH2_IRQ_PRIORITY 10
+#define STM32_DAC_DAC1_CH1_DMA_PRIORITY 2
+#define STM32_DAC_DAC1_CH2_DMA_PRIORITY 2
+
+/*
+ * GPT driver system settings.
+ */
+#define STM32_GPT_USE_TIM1 FALSE
+#define STM32_GPT_USE_TIM2 FALSE
+#define STM32_GPT_USE_TIM3 FALSE
+#define STM32_GPT_USE_TIM4 FALSE
+#define STM32_GPT_USE_TIM6 TRUE
+#define STM32_GPT_USE_TIM7 FALSE
+#define STM32_GPT_USE_TIM8 FALSE
+#define STM32_GPT_TIM1_IRQ_PRIORITY 7
+#define STM32_GPT_TIM2_IRQ_PRIORITY 7
+#define STM32_GPT_TIM3_IRQ_PRIORITY 7
+#define STM32_GPT_TIM4_IRQ_PRIORITY 7
+#define STM32_GPT_TIM6_IRQ_PRIORITY 7
+#define STM32_GPT_TIM7_IRQ_PRIORITY 7
+#define STM32_GPT_TIM8_IRQ_PRIORITY 7
+
+/*
+ * I2C driver system settings.
+ */
+#define STM32_I2C_USE_I2C1 FALSE
+#define STM32_I2C_USE_I2C2 FALSE
+#define STM32_I2C_BUSY_TIMEOUT 50
+#define STM32_I2C_I2C1_IRQ_PRIORITY 10
+#define STM32_I2C_I2C2_IRQ_PRIORITY 10
+#define STM32_I2C_USE_DMA TRUE
+#define STM32_I2C_I2C1_DMA_PRIORITY 1
+#define STM32_I2C_I2C2_DMA_PRIORITY 1
+#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
+
+/*
+ * ICU driver system settings.
+ */
+#define STM32_ICU_USE_TIM1 FALSE
+#define STM32_ICU_USE_TIM2 FALSE
+#define STM32_ICU_USE_TIM3 FALSE
+#define STM32_ICU_USE_TIM4 FALSE
+#define STM32_ICU_USE_TIM8 FALSE
+#define STM32_ICU_TIM1_IRQ_PRIORITY 7
+#define STM32_ICU_TIM2_IRQ_PRIORITY 7
+#define STM32_ICU_TIM3_IRQ_PRIORITY 7
+#define STM32_ICU_TIM4_IRQ_PRIORITY 7
+#define STM32_ICU_TIM8_IRQ_PRIORITY 7
+
+/*
+ * PWM driver system settings.
+ */
+#define STM32_PWM_USE_ADVANCED FALSE
+#define STM32_PWM_USE_TIM1 FALSE
+#define STM32_PWM_USE_TIM2 FALSE
+#define STM32_PWM_USE_TIM3 FALSE
+#define STM32_PWM_USE_TIM4 FALSE
+#define STM32_PWM_USE_TIM8 FALSE
+#define STM32_PWM_TIM1_IRQ_PRIORITY 7
+#define STM32_PWM_TIM2_IRQ_PRIORITY 7
+#define STM32_PWM_TIM3_IRQ_PRIORITY 7
+#define STM32_PWM_TIM4_IRQ_PRIORITY 7
+#define STM32_PWM_TIM8_IRQ_PRIORITY 7
+
+/*
+ * SERIAL driver system settings.
+ */
+#define STM32_SERIAL_USE_USART1 FALSE
+#define STM32_SERIAL_USE_USART2 FALSE
+#define STM32_SERIAL_USE_USART3 FALSE
+#define STM32_SERIAL_USE_UART4 FALSE
+#define STM32_SERIAL_USE_UART5 FALSE
+#define STM32_SERIAL_USART1_PRIORITY 12
+#define STM32_SERIAL_USART2_PRIORITY 12
+#define STM32_SERIAL_USART3_PRIORITY 12
+#define STM32_SERIAL_UART4_PRIORITY 12
+#define STM32_SERIAL_UART5_PRIORITY 12
+
+/*
+ * SPI driver system settings.
+ */
+#define STM32_SPI_USE_SPI1 FALSE
+#define STM32_SPI_USE_SPI2 FALSE
+#define STM32_SPI_USE_SPI3 FALSE
+#define STM32_SPI_SPI1_DMA_PRIORITY 1
+#define STM32_SPI_SPI2_DMA_PRIORITY 1
+#define STM32_SPI_SPI3_DMA_PRIORITY 1
+#define STM32_SPI_SPI1_IRQ_PRIORITY 10
+#define STM32_SPI_SPI2_IRQ_PRIORITY 10
+#define STM32_SPI_SPI3_IRQ_PRIORITY 10
+#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
+
+/*
+ * ST driver system settings.
+ */
+#define STM32_ST_IRQ_PRIORITY 8
+#define STM32_ST_USE_TIMER 2
+
+/*
+ * UART driver system settings.
+ */
+#define STM32_UART_USE_USART1 FALSE
+#define STM32_UART_USE_USART2 FALSE
+#define STM32_UART_USE_USART3 FALSE
+#define STM32_UART_USART1_IRQ_PRIORITY 12
+#define STM32_UART_USART2_IRQ_PRIORITY 12
+#define STM32_UART_USART3_IRQ_PRIORITY 12
+#define STM32_UART_USART1_DMA_PRIORITY 0
+#define STM32_UART_USART2_DMA_PRIORITY 0
+#define STM32_UART_USART3_DMA_PRIORITY 0
+#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
+
+/*
+ * USB driver system settings.
+ */
+#define STM32_USB_USE_USB1 FALSE
+#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE
+#define STM32_USB_USB1_HP_IRQ_PRIORITY 13
+#define STM32_USB_USB1_LP_IRQ_PRIORITY 14
+
+/*
+ * WDG driver system settings.
+ */
+#define STM32_WDG_USE_IWDG FALSE
+
+#include "mcuconf_community.h"
+
+#endif /* MCUCONF_H */
diff --git a/testhal/STM32/STM32F3xx/OPAMP/mcuconf_community.h b/testhal/STM32/STM32F3xx/OPAMP/mcuconf_community.h new file mode 100644 index 0000000..2f44dc1 --- /dev/null +++ b/testhal/STM32/STM32F3xx/OPAMP/mcuconf_community.h @@ -0,0 +1,165 @@ +/* + ChibiOS/RT - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/* + * FSMC driver system settings. + */ +#define STM32_FSMC_USE_FSMC1 FALSE +#define STM32_FSMC_FSMC1_IRQ_PRIORITY 10 + +/* + * FSMC NAND driver system settings. + */ +#define STM32_NAND_USE_FSMC_NAND1 FALSE +#define STM32_NAND_USE_FSMC_NAND2 FALSE +#define STM32_NAND_USE_EXT_INT FALSE +#define STM32_NAND_DMA_STREAM STM32_DMA_STREAM_ID(2, 7) +#define STM32_NAND_DMA_PRIORITY 0 +#define STM32_NAND_DMA_ERROR_HOOK(nandp) osalSysHalt("DMA failure") + +/* + * FSMC SRAM driver system settings. + */ +#define STM32_USE_FSMC_SRAM FALSE +#define STM32_SRAM_USE_FSMC_SRAM1 FALSE +#define STM32_SRAM_USE_FSMC_SRAM2 FALSE +#define STM32_SRAM_USE_FSMC_SRAM3 FALSE +#define STM32_SRAM_USE_FSMC_SRAM4 FALSE + +/* + * FSMC SDRAM driver system settings. + */ +#define STM32_USE_FSMC_SDRAM FALSE + +/* + * TIMCAP driver system settings. + */ +#define STM32_TIMCAP_USE_TIM1 TRUE +#define STM32_TIMCAP_USE_TIM2 FALSE +#define STM32_TIMCAP_USE_TIM3 TRUE +#define STM32_TIMCAP_USE_TIM4 TRUE +#define STM32_TIMCAP_USE_TIM5 TRUE +#define STM32_TIMCAP_USE_TIM8 TRUE +#define STM32_TIMCAP_USE_TIM9 TRUE +#define STM32_TIMCAP_TIM1_IRQ_PRIORITY 3 +#define STM32_TIMCAP_TIM2_IRQ_PRIORITY 3 +#define STM32_TIMCAP_TIM3_IRQ_PRIORITY 3 +#define STM32_TIMCAP_TIM4_IRQ_PRIORITY 3 +#define STM32_TIMCAP_TIM5_IRQ_PRIORITY 3 +#define STM32_TIMCAP_TIM8_IRQ_PRIORITY 3 +#define STM32_TIMCAP_TIM9_IRQ_PRIORITY 3 + +/* + * COMP driver system settings. + */ +#define STM32_COMP_USE_COMP1 TRUE +#define STM32_COMP_USE_COMP2 TRUE +#define STM32_COMP_USE_COMP3 TRUE +#define STM32_COMP_USE_COMP4 TRUE +#define STM32_COMP_USE_COMP5 TRUE +#define STM32_COMP_USE_COMP6 TRUE +#define STM32_COMP_USE_COMP7 TRUE + +#define STM32_COMP_USE_INTERRUPTS TRUE +#define STM32_COMP_1_2_3_IRQ_PRIORITY 5 +#define STM32_COMP_4_5_6_IRQ_PRIORITY 5 +#define STM32_COMP_7_IRQ_PRIORITY 5 + +#if STM32_COMP_USE_INTERRUPTS +#define STM32_DISABLE_EXTI21_22_29_HANDLER +#define STM32_DISABLE_EXTI30_32_HANDLER +#define STM32_DISABLE_EXTI33_HANDLER +#endif + +/* + * OPAMP driver system settings. + */ + +#define STM32_OPAMP_USE_OPAMP1 TRUE +#define STM32_OPAMP_USE_OPAMP2 TRUE +#define STM32_OPAMP_USE_OPAMP3 TRUE +#define STM32_OPAMP_USE_OPAMP4 TRUE +#define STM32_OPAMP_USER_TRIM_ENABLED TRUE + +/* + * USBH driver system settings. + */ +#define STM32_OTG1_CHANNELS_NUMBER 8 +#define STM32_OTG2_CHANNELS_NUMBER 12 + +#define STM32_USBH_USE_OTG1 1 +#define STM32_OTG1_RXFIFO_SIZE 1024 +#define STM32_OTG1_PTXFIFO_SIZE 128 +#define STM32_OTG1_NPTXFIFO_SIZE 128 + +#define STM32_USBH_USE_OTG2 0 +#define STM32_OTG2_RXFIFO_SIZE 2048 +#define STM32_OTG2_PTXFIFO_SIZE 1024 +#define STM32_OTG2_NPTXFIFO_SIZE 1024 + +#define STM32_USBH_MIN_QSPACE 4 +#define STM32_USBH_CHANNELS_NP 4 + +/* + * CRC driver system settings. + */ +#define STM32_CRC_USE_CRC1 TRUE +#define STM32_CRC_CRC1_DMA_IRQ_PRIORITY 1 +#define STM32_CRC_CRC1_DMA_PRIORITY 2 +#define STM32_CRC_CRC1_DMA_STREAM STM32_DMA1_STREAM2 + +#define CRCSW_USE_CRC1 FALSE +#define CRCSW_CRC32_TABLE TRUE +#define CRCSW_CRC16_TABLE TRUE +#define CRCSW_PROGRAMMABLE TRUE + +/* + * EICU driver system settings. + */ +#define STM32_EICU_USE_TIM1 TRUE +#define STM32_EICU_USE_TIM2 FALSE +#define STM32_EICU_USE_TIM3 TRUE +#define STM32_EICU_USE_TIM4 TRUE +#define STM32_EICU_USE_TIM5 TRUE +#define STM32_EICU_USE_TIM8 TRUE +#define STM32_EICU_USE_TIM9 TRUE +#define STM32_EICU_USE_TIM10 TRUE +#define STM32_EICU_USE_TIM11 TRUE +#define STM32_EICU_USE_TIM12 TRUE +#define STM32_EICU_USE_TIM13 TRUE +#define STM32_EICU_USE_TIM14 TRUE +#define STM32_EICU_TIM1_IRQ_PRIORITY 7 +#define STM32_EICU_TIM2_IRQ_PRIORITY 7 +#define STM32_EICU_TIM3_IRQ_PRIORITY 7 +#define STM32_EICU_TIM4_IRQ_PRIORITY 7 +#define STM32_EICU_TIM5_IRQ_PRIORITY 7 +#define STM32_EICU_TIM8_IRQ_PRIORITY 7 +#define STM32_EICU_TIM9_IRQ_PRIORITY 7 +#define STM32_EICU_TIM10_IRQ_PRIORITY 7 +#define STM32_EICU_TIM11_IRQ_PRIORITY 7 +#define STM32_EICU_TIM12_IRQ_PRIORITY 7 +#define STM32_EICU_TIM13_IRQ_PRIORITY 7 +#define STM32_EICU_TIM14_IRQ_PRIORITY 7 + +/* + * QEI driver system settings. + */ +#define STM32_QEI_USE_TIM1 TRUE +#define STM32_QEI_USE_TIM2 FALSE +#define STM32_QEI_USE_TIM3 TRUE +#define STM32_QEI_TIM1_IRQ_PRIORITY 3 +#define STM32_QEI_TIM2_IRQ_PRIORITY 3 +#define STM32_QEI_TIM3_IRQ_PRIORITY 3 diff --git a/testhal/STM32/STM32F3xx/TIMCAP/Makefile b/testhal/STM32/STM32F3xx/TIMCAP/Makefile index b67e7f1..418518d 100644 --- a/testhal/STM32/STM32F3xx/TIMCAP/Makefile +++ b/testhal/STM32/STM32F3xx/TIMCAP/Makefile @@ -86,8 +86,10 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib +# Licensing files. +include $(CHIBIOS)/os/license/license.mk # Startup files. include $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_stm32f3xx.mk # HAL-OSAL files (optional). @@ -108,19 +110,13 @@ LDSCRIPT= $(STARTUPLD)/STM32F303xC.ld # C sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CSRC = $(STARTUPSRC) \ - $(KERNSRC) \ - $(PORTSRC) \ - $(OSALSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ +CSRC = $(ALLCSRC) \ $(TESTSRC) \ main.c # C++ sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CPPSRC = +CPPSRC = $(ALLCPPSRC) # C sources to be compiled in ARM mode regardless of the global setting. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler @@ -143,13 +139,10 @@ TCSRC = TCPPSRC = # List ASM source files here -ASMSRC = -ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) +ASMSRC = $(ALLASMSRC) +ASMXSRC = $(ALLXASMSRC) -INCDIR = $(CHIBIOS)/os/license \ - $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ - $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ - $(CHIBIOS_CONTRIB)/os/various +INCDIR = $(ALLINC) $(TESTINC) # # Project, sources and paths diff --git a/testhal/STM32/STM32F3xx/TIMCAP/chconf.h b/testhal/STM32/STM32F3xx/TIMCAP/chconf.h index 53bd676..58cd5db 100644 --- a/testhal/STM32/STM32F3xx/TIMCAP/chconf.h +++ b/testhal/STM32/STM32F3xx/TIMCAP/chconf.h @@ -29,7 +29,7 @@ #define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,26 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 10000
+#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.
@@ -71,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 2
+#endif
/** @} */
@@ -94,7 +104,9 @@ * @note The round robin preemption is not supported in tickless mode and
* must be set to zero in that case.
*/
+#if !defined(CH_CFG_TIME_QUANTUM)
#define CH_CFG_TIME_QUANTUM 0
+#endif
/**
* @brief Managed RAM size.
@@ -107,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -116,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -135,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -153,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -161,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -170,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -178,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -189,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -197,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -207,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -217,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -227,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -235,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -245,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -254,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -265,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -275,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -284,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -296,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -305,7 +355,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMPOOLS)
#define CH_CFG_USE_MEMPOOLS TRUE
+#endif
/**
* @brief Objects FIFOs APIs.
@@ -314,7 +366,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_OBJ_FIFOS)
#define CH_CFG_USE_OBJ_FIFOS TRUE
+#endif
/**
* @brief Dynamic Threads APIs.
@@ -325,7 +379,9 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#if !defined(CH_CFG_USE_DYNAMIC)
#define CH_CFG_USE_DYNAMIC TRUE
+#endif
/** @} */
@@ -343,39 +399,53 @@ *
* @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
/** @} */
@@ -391,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -400,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -409,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -419,7 +495,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
@@ -427,14 +505,18 @@ *
* @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/
+#if !defined(CH_DBG_TRACE_MASK)
#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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.
*/
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -446,7 +528,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -456,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -467,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -490,7 +578,7 @@ * @details User initialization code added to the @p chSysInit() function
* just before interrupts are enabled globally.
*/
-#define CH_CFG_SYSTEM_INIT_HOOK(tp) { \
+#define CH_CFG_SYSTEM_INIT_HOOK() { \
/* Add threads initialization code here.*/ \
}
diff --git a/testhal/STM32/STM32F4xx/EICU/EICU_F4x.config b/testhal/STM32/STM32F4xx/EICU/EICU_F4x.config deleted file mode 100644 index e0284f4..0000000 --- a/testhal/STM32/STM32F4xx/EICU/EICU_F4x.config +++ /dev/null @@ -1,2 +0,0 @@ -// Add predefined macros for your project here. For example: -// #define THE_ANSWER 42 diff --git a/testhal/STM32/STM32F4xx/EICU/EICU_F4x.creator b/testhal/STM32/STM32F4xx/EICU/EICU_F4x.creator deleted file mode 100644 index e94cbbd..0000000 --- a/testhal/STM32/STM32F4xx/EICU/EICU_F4x.creator +++ /dev/null @@ -1 +0,0 @@ -[General] diff --git a/testhal/STM32/STM32F4xx/EICU/EICU_F4x.creator.user b/testhal/STM32/STM32F4xx/EICU/EICU_F4x.creator.user deleted file mode 100644 index 80d783a..0000000 --- a/testhal/STM32/STM32F4xx/EICU/EICU_F4x.creator.user +++ /dev/null @@ -1,156 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE QtCreatorProject> -<!-- Written by QtCreator 3.4.0, 2015-07-07T01:03:00. --> -<qtcreator> - <data> - <variable>EnvironmentId</variable> - <value type="QByteArray">{19e2588b-face-4845-bb71-0434e910b089}</value> - </data> - <data> - <variable>ProjectExplorer.Project.ActiveTarget</variable> - <value type="int">0</value> - </data> - <data> - <variable>ProjectExplorer.Project.EditorSettings</variable> - <valuemap type="QVariantMap"> - <value type="bool" key="EditorConfiguration.AutoIndent">true</value> - <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value> - <value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value> - <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0"> - <value type="QString" key="language">Cpp</value> - <valuemap type="QVariantMap" key="value"> - <value type="QByteArray" key="CurrentPreferences">CppGlobal</value> - </valuemap> - </valuemap> - <value type="int" key="EditorConfiguration.CodeStyle.Count">1</value> - <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value> - <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value> - <value type="int" key="EditorConfiguration.IndentSize">4</value> - <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value> - <value type="int" key="EditorConfiguration.MarginColumn">80</value> - <value type="bool" key="EditorConfiguration.MouseHiding">true</value> - <value type="bool" key="EditorConfiguration.MouseNavigation">true</value> - <value type="int" key="EditorConfiguration.PaddingMode">1</value> - <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value> - <value type="bool" key="EditorConfiguration.ShowMargin">false</value> - <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value> - <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value> - <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value> - <value type="int" key="EditorConfiguration.TabSize">8</value> - <value type="bool" key="EditorConfiguration.UseGlobal">true</value> - <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value> - <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value> - <value type="bool" key="EditorConfiguration.cleanIndentation">true</value> - <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value> - <value type="bool" key="EditorConfiguration.inEntireDocument">false</value> - </valuemap> - </data> - <data> - <variable>ProjectExplorer.Project.PluginSettings</variable> - <valuemap type="QVariantMap"/> - </data> - <data> - <variable>ProjectExplorer.Project.Target.0</variable> - <valuemap type="QVariantMap"> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">arm-none-eabi</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">arm-none-eabi</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{a0910195-c955-413e-bfeb-0bb1d84cfc8b}</value> - <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value> - <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">-1</value> - <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">1</value> - <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0"> - <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/barthess/projects/chibios-git/community/testhal/STM32/STM32F4xx/EICU</value> - <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> - <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> - <valuelist type="QVariantList" key="GenericProjectManager.GenericMakeStep.BuildTargets"> - <value type="QString">all</value> - </valuelist> - <value type="bool" key="GenericProjectManager.GenericMakeStep.Clean">false</value> - <value type="QString" key="GenericProjectManager.GenericMakeStep.MakeArguments">-j4</value> - <value type="QString" key="GenericProjectManager.GenericMakeStep.MakeCommand"></value> - <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">GenericProjectManager.GenericMakeStep</value> - </valuemap> - <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value> - </valuemap> - <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1"> - <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> - <valuelist type="QVariantList" key="GenericProjectManager.GenericMakeStep.BuildTargets"> - <value type="QString">clean</value> - </valuelist> - <value type="bool" key="GenericProjectManager.GenericMakeStep.Clean">true</value> - <value type="QString" key="GenericProjectManager.GenericMakeStep.MakeArguments"></value> - <value type="QString" key="GenericProjectManager.GenericMakeStep.MakeCommand"></value> - <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">GenericProjectManager.GenericMakeStep</value> - </valuemap> - <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value> - </valuemap> - <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value> - <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value> - <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Default</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Default</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">GenericProjectManager.GenericBuildConfiguration</value> - </valuemap> - <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value> - <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">0</value> - <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/> - <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0"> - <value type="int" key="PE.EnvironmentAspect.Base">2</value> - <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/> - <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Arguments"></value> - <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Executable"></value> - <value type="bool" key="ProjectExplorer.CustomExecutableRunConfiguration.UseTerminal">false</value> - <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.WorkingDirectory">%{buildDir}</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Custom Executable</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value> - <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value> - <value type="bool" key="RunConfiguration.UseCppDebugger">false</value> - <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value> - <value type="bool" key="RunConfiguration.UseMultiProcess">false</value> - <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value> - <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value> - </valuemap> - <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.1"> - <value type="QString" key="BareMetal.CustomRunConfig.Executable">/home/barthess/projects/chibios-git/community/testhal/STM32/STM32F4xx/EICU/build/ch.elf</value> - <value type="QString" key="BareMetal.RunConfig.WorkingDirectory">/home/barthess/projects/chibios-git/community/testhal/STM32/STM32F4xx/EICU</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Run on GDB server or hardware debugger</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">BareMetal.CustomRunConfig</value> - <value type="QString" key="Qt4ProjectManager.MaemoRunConfiguration.Arguments"></value> - <value type="QString" key="Qt4ProjectManager.MaemoRunConfiguration.ProFile"></value> - <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value> - <value type="bool" key="RunConfiguration.UseCppDebugger">false</value> - <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value> - <value type="bool" key="RunConfiguration.UseMultiProcess">false</value> - <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value> - <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value> - </valuemap> - <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">2</value> - </valuemap> - </data> - <data> - <variable>ProjectExplorer.Project.TargetCount</variable> - <value type="int">1</value> - </data> - <data> - <variable>ProjectExplorer.Project.Updater.FileVersion</variable> - <value type="int">18</value> - </data> - <data> - <variable>Version</variable> - <value type="int">18</value> - </data> -</qtcreator> diff --git a/testhal/STM32/STM32F4xx/EICU/EICU_F4x.files b/testhal/STM32/STM32F4xx/EICU/EICU_F4x.files deleted file mode 100644 index f154876..0000000 --- a/testhal/STM32/STM32F4xx/EICU/EICU_F4x.files +++ /dev/null @@ -1,3443 +0,0 @@ -community/demos/NRF51/RT-WVSHARE_BLE400/chconf.h -community/demos/NRF51/RT-WVSHARE_BLE400/halconf.h -community/demos/NRF51/RT-WVSHARE_BLE400/main.c -community/demos/NRF51/RT-WVSHARE_BLE400/mcuconf.h -community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/res/wolf3d_vgagraph_chunk87.c -community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/res/wolf3d_vgagraph_chunk87.h -community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/chconf.h -community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/halconf.h -community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/halconf_community.h -community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/main.c -community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/mcuconf.h -community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/mcuconf_community.h -community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/usbcfg.c -community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/usbcfg.h -community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/wolf3d_palette.c -community/demos/TIVA/RT-TM4C123G-LAUNCHPAD/chconf.h -community/demos/TIVA/RT-TM4C123G-LAUNCHPAD/halconf.h -community/demos/TIVA/RT-TM4C123G-LAUNCHPAD/main.c -community/demos/TIVA/RT-TM4C123G-LAUNCHPAD/mcuconf.h -community/demos/TIVA/RT-TM4C1294-LAUNCHPAD/chconf.h -community/demos/TIVA/RT-TM4C1294-LAUNCHPAD/halconf.h -community/demos/TIVA/RT-TM4C1294-LAUNCHPAD/main.c -community/demos/TIVA/RT-TM4C1294-LAUNCHPAD/mcuconf.h -community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/web/web.c -community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/web/web.h -community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/chconf.h -community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/halconf.h -community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/lwipopts.h -community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/main.c -community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/mcuconf.h -community/os/common/ports/ARMCMx/devices/NRF51822/cmparams.h -community/os/common/ports/ARMCMx/devices/TM4C123x/cmparams.h -community/os/common/ports/ARMCMx/devices/TM4C129x/cmparams.h -community/os/hal/boards/NONSTANDARD_STM32F4_BARTHESS2/board.c -community/os/hal/boards/NONSTANDARD_STM32F4_BARTHESS2/board.h -community/os/hal/boards/ST_STM32F0308_DISCOVERY/board.c -community/os/hal/boards/ST_STM32F0308_DISCOVERY/board.h -community/os/hal/boards/TI_TM4C123G_LAUNCHPAD/board.c -community/os/hal/boards/TI_TM4C123G_LAUNCHPAD/board.h -community/os/hal/boards/TI_TM4C1294_LAUNCHPAD/board.c -community/os/hal/boards/TI_TM4C1294_LAUNCHPAD/board.h -community/os/hal/boards/WVSHARE_BLE400/board.c -community/os/hal/boards/WVSHARE_BLE400/board.h -community/os/hal/include/eicu.h -community/os/hal/include/hal_community.h -community/os/hal/include/nand.h -community/os/hal/include/onewire.h -community/os/hal/ports/NRF51/NRF51822/hal_lld.c -community/os/hal/ports/NRF51/NRF51822/hal_lld.h -community/os/hal/ports/NRF51/NRF51822/nrf51.h -community/os/hal/ports/NRF51/NRF51822/pal_lld.c -community/os/hal/ports/NRF51/NRF51822/pal_lld.h -community/os/hal/ports/NRF51/NRF51822/serial_lld.c -community/os/hal/ports/NRF51/NRF51822/serial_lld.h -community/os/hal/ports/NRF51/NRF51822/st_lld.c -community/os/hal/ports/NRF51/NRF51822/st_lld.h -community/os/hal/ports/STM32/LLD/DMA2Dv1/stm32_dma2d.c -community/os/hal/ports/STM32/LLD/DMA2Dv1/stm32_dma2d.h -community/os/hal/ports/STM32/LLD/FSMCv1/fsmc.c -community/os/hal/ports/STM32/LLD/FSMCv1/fsmc.h -community/os/hal/ports/STM32/LLD/FSMCv1/fsmc_sdram.c -community/os/hal/ports/STM32/LLD/FSMCv1/fsmc_sdram.h -community/os/hal/ports/STM32/LLD/FSMCv1/fsmc_sram.c -community/os/hal/ports/STM32/LLD/FSMCv1/fsmc_sram.h -community/os/hal/ports/STM32/LLD/FSMCv1/nand_lld.c -community/os/hal/ports/STM32/LLD/FSMCv1/nand_lld.h -community/os/hal/ports/STM32/LLD/LTDCv1/stm32_ltdc.c -community/os/hal/ports/STM32/LLD/LTDCv1/stm32_ltdc.h -community/os/hal/ports/STM32/LLD/TIMv1/eicu_lld.c -community/os/hal/ports/STM32/LLD/TIMv1/eicu_lld.h -community/os/hal/ports/TIVA/LLD/ext_lld.c -community/os/hal/ports/TIVA/LLD/ext_lld.h -community/os/hal/ports/TIVA/LLD/gpt_lld.c -community/os/hal/ports/TIVA/LLD/gpt_lld.h -community/os/hal/ports/TIVA/LLD/i2c_lld.c -community/os/hal/ports/TIVA/LLD/i2c_lld.h -community/os/hal/ports/TIVA/LLD/mac_lld.c -community/os/hal/ports/TIVA/LLD/mac_lld.h -community/os/hal/ports/TIVA/LLD/pal_lld.c -community/os/hal/ports/TIVA/LLD/pal_lld.h -community/os/hal/ports/TIVA/LLD/pwm_lld.c -community/os/hal/ports/TIVA/LLD/pwm_lld.h -community/os/hal/ports/TIVA/LLD/serial_lld.c -community/os/hal/ports/TIVA/LLD/serial_lld.h -community/os/hal/ports/TIVA/LLD/spi_lld.c -community/os/hal/ports/TIVA/LLD/spi_lld.h -community/os/hal/ports/TIVA/LLD/st_lld.c -community/os/hal/ports/TIVA/LLD/st_lld.h -community/os/hal/ports/TIVA/LLD/tiva_gpt.h -community/os/hal/ports/TIVA/LLD/tiva_udma.c -community/os/hal/ports/TIVA/LLD/tiva_udma.h -community/os/hal/ports/TIVA/TM4C123x/hal_lld.c -community/os/hal/ports/TIVA/TM4C123x/hal_lld.h -community/os/hal/ports/TIVA/TM4C123x/tiva_isr.h -community/os/hal/ports/TIVA/TM4C123x/tiva_registry.h -community/os/hal/ports/TIVA/TM4C123x/tm4c123x.h -community/os/hal/ports/TIVA/TM4C129x/hal_lld.c -community/os/hal/ports/TIVA/TM4C129x/hal_lld.h -community/os/hal/ports/TIVA/TM4C129x/tiva_isr.h -community/os/hal/ports/TIVA/TM4C129x/tiva_registry.h -community/os/hal/ports/TIVA/TM4C129x/tm4c129x.h -community/os/hal/src/eicu.c -community/os/hal/src/hal_community.c -community/os/hal/src/nand.c -community/os/hal/src/onewire.c -community/os/various/devices_lib/lcd/ili9341.c -community/os/various/devices_lib/lcd/ili9341.h -community/os/various/devices_lib/mems/l3gd20.c -community/os/various/devices_lib/mems/l3gd20.h -community/os/various/devices_lib/mems/lis3mdl.c -community/os/various/devices_lib/mems/lis3mdl.h -community/os/various/devices_lib/mems/lsm303dlhc.c -community/os/various/devices_lib/mems/lsm303dlhc.h -community/os/various/devices_lib/mems/lsm6ds0.c -community/os/various/devices_lib/mems/lsm6ds0.h -community/os/various/devices_lib/others/max7219.c -community/os/various/devices_lib/others/max7219.h -community/os/various/devices_lib/rf/nrf24l01.c -community/os/various/devices_lib/rf/nrf24l01.h -community/os/various/bitmap.c -community/os/various/bitmap.h -community/os/various/memtest.cpp -community/os/various/memtest.hpp -community/testhal/STM32/STM32F0xx/onewire/chconf.h -community/testhal/STM32/STM32F0xx/onewire/halconf.h -community/testhal/STM32/STM32F0xx/onewire/halconf_community.h -community/testhal/STM32/STM32F0xx/onewire/main.c -community/testhal/STM32/STM32F0xx/onewire/mcuconf.h -community/testhal/STM32/STM32F0xx/onewire/mcuconf_community.h -community/testhal/STM32/STM32F0xx/onewire/onewire_test.c -community/testhal/STM32/STM32F0xx/onewire/onewire_test.h -community/testhal/STM32/STM32F0xx/onewire/search_rom_synth.c -community/testhal/STM32/STM32F1xx/onewire/chconf.h -community/testhal/STM32/STM32F1xx/onewire/halconf.h -community/testhal/STM32/STM32F1xx/onewire/halconf_community.h -community/testhal/STM32/STM32F1xx/onewire/main.c -community/testhal/STM32/STM32F1xx/onewire/mcuconf.h -community/testhal/STM32/STM32F1xx/onewire/mcuconf_community.h -community/testhal/STM32/STM32F1xx/onewire/onewire_test.c -community/testhal/STM32/STM32F1xx/onewire/onewire_test.h -community/testhal/STM32/STM32F1xx/onewire/search_rom_synth.c -community/testhal/STM32/STM32F4xx/EICU/community/demos/NRF51/RT-WVSHARE_BLE400/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/demos/NRF51/RT-WVSHARE_BLE400/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/demos/NRF51/RT-WVSHARE_BLE400/main.c -community/testhal/STM32/STM32F4xx/EICU/community/demos/NRF51/RT-WVSHARE_BLE400/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/res/wolf3d_vgagraph_chunk87.c -community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/res/wolf3d_vgagraph_chunk87.h -community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/halconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/main.c -community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/mcuconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/usbcfg.c -community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/usbcfg.h -community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/wolf3d_palette.c -community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C123G-LAUNCHPAD/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C123G-LAUNCHPAD/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C123G-LAUNCHPAD/main.c -community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C123G-LAUNCHPAD/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD/main.c -community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/web/web.c -community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/web/web.h -community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/lwipopts.h -community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/main.c -community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/os/common/ports/ARMCMx/devices/NRF51822/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/community/os/common/ports/ARMCMx/devices/TM4C123x/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/community/os/common/ports/ARMCMx/devices/TM4C129x/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/NONSTANDARD_STM32F4_BARTHESS2/board.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/NONSTANDARD_STM32F4_BARTHESS2/board.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/ST_STM32F0308_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/ST_STM32F0308_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/TI_TM4C123G_LAUNCHPAD/board.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/TI_TM4C123G_LAUNCHPAD/board.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/TI_TM4C1294_LAUNCHPAD/board.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/TI_TM4C1294_LAUNCHPAD/board.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/WVSHARE_BLE400/board.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/WVSHARE_BLE400/board.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/include/eicu.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/include/hal_community.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/include/nand.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/include/onewire.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/nrf51.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/DMA2Dv1/stm32_dma2d.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/DMA2Dv1/stm32_dma2d.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1/fsmc.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1/fsmc.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1/fsmc_sdram.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1/fsmc_sdram.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1/fsmc_sram.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1/fsmc_sram.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1/nand_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1/nand_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/LTDCv1/stm32_ltdc.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/LTDCv1/stm32_ltdc.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/TIMv1/eicu_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/TIMv1/eicu_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/ext_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/ext_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/gpt_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/gpt_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/i2c_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/i2c_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/mac_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/mac_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/pwm_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/pwm_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/spi_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/spi_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/tiva_gpt.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/tiva_udma.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/tiva_udma.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C123x/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C123x/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C123x/tiva_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C123x/tiva_registry.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C123x/tm4c123x.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C129x/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C129x/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C129x/tiva_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C129x/tiva_registry.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C129x/tm4c129x.h -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/src/eicu.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/src/hal_community.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/src/nand.c -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/src/onewire.c -community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/lcd/ili9341.c -community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/lcd/ili9341.h -community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems/l3gd20.c -community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems/l3gd20.h -community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems/lis3mdl.c -community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems/lis3mdl.h -community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems/lsm303dlhc.c -community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems/lsm303dlhc.h -community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems/lsm6ds0.c -community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems/lsm6ds0.h -community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/others/max7219.c -community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/others/max7219.h -community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/rf/nrf24l01.c -community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/rf/nrf24l01.h -community/testhal/STM32/STM32F4xx/EICU/community/os/various/bitmap.c -community/testhal/STM32/STM32F4xx/EICU/community/os/various/bitmap.h -community/testhal/STM32/STM32F4xx/EICU/community/os/various/memtest.cpp -community/testhal/STM32/STM32F4xx/EICU/community/os/various/memtest.hpp -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/halconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/mcuconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/onewire_test.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/onewire_test.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/search_rom_synth.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/halconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/mcuconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/onewire_test.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/onewire_test.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/search_rom_synth.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/NRF51/RT-WVSHARE_BLE400/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/NRF51/RT-WVSHARE_BLE400/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/NRF51/RT-WVSHARE_BLE400/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/NRF51/RT-WVSHARE_BLE400/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/res/wolf3d_vgagraph_chunk87.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/res/wolf3d_vgagraph_chunk87.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/halconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/mcuconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/usbcfg.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/usbcfg.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/wolf3d_palette.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C123G-LAUNCHPAD/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C123G-LAUNCHPAD/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C123G-LAUNCHPAD/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C123G-LAUNCHPAD/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/web/web.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/web/web.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/lwipopts.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/common/ports/ARMCMx/devices/NRF51822/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/common/ports/ARMCMx/devices/TM4C123x/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/common/ports/ARMCMx/devices/TM4C129x/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/NONSTANDARD_STM32F4_BARTHESS2/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/NONSTANDARD_STM32F4_BARTHESS2/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/ST_STM32F0308_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/ST_STM32F0308_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/TI_TM4C123G_LAUNCHPAD/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/TI_TM4C123G_LAUNCHPAD/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/TI_TM4C1294_LAUNCHPAD/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/TI_TM4C1294_LAUNCHPAD/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/WVSHARE_BLE400/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/WVSHARE_BLE400/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/include/eicu.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/include/hal_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/include/nand.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/include/onewire.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/nrf51.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/DMA2Dv1/stm32_dma2d.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/DMA2Dv1/stm32_dma2d.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1/fsmc.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1/fsmc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1/fsmc_sdram.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1/fsmc_sdram.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1/fsmc_sram.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1/fsmc_sram.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1/nand_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1/nand_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/LTDCv1/stm32_ltdc.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/LTDCv1/stm32_ltdc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/TIMv1/eicu_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/TIMv1/eicu_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/ext_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/ext_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/gpt_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/gpt_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/i2c_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/i2c_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/mac_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/mac_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/pwm_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/pwm_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/spi_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/spi_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/tiva_gpt.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/tiva_udma.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/tiva_udma.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C123x/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C123x/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C123x/tiva_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C123x/tiva_registry.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C123x/tm4c123x.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C129x/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C129x/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C129x/tiva_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C129x/tiva_registry.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C129x/tm4c129x.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/src/eicu.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/src/hal_community.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/src/nand.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/src/onewire.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/lcd/ili9341.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/lcd/ili9341.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems/l3gd20.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems/l3gd20.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems/lis3mdl.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems/lis3mdl.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems/lsm303dlhc.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems/lsm303dlhc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems/lsm6ds0.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems/lsm6ds0.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/others/max7219.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/others/max7219.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/rf/nrf24l01.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/rf/nrf24l01.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/bitmap.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/bitmap.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/memtest.cpp -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/memtest.hpp -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/halconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/mcuconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/onewire_test.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/onewire_test.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/search_rom_synth.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/halconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/mcuconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/onewire_test.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/onewire_test.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/search_rom_synth.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/NRF51/RT-WVSHARE_BLE400/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/NRF51/RT-WVSHARE_BLE400/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/NRF51/RT-WVSHARE_BLE400/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/NRF51/RT-WVSHARE_BLE400/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/res/wolf3d_vgagraph_chunk87.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/res/wolf3d_vgagraph_chunk87.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/halconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/mcuconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/usbcfg.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/usbcfg.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/wolf3d_palette.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C123G-LAUNCHPAD/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C123G-LAUNCHPAD/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C123G-LAUNCHPAD/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C123G-LAUNCHPAD/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/web/web.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/web/web.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/lwipopts.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/common/ports/ARMCMx/devices/NRF51822/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/common/ports/ARMCMx/devices/TM4C123x/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/common/ports/ARMCMx/devices/TM4C129x/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/NONSTANDARD_STM32F4_BARTHESS2/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/NONSTANDARD_STM32F4_BARTHESS2/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/ST_STM32F0308_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/ST_STM32F0308_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/TI_TM4C123G_LAUNCHPAD/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/TI_TM4C123G_LAUNCHPAD/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/TI_TM4C1294_LAUNCHPAD/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/TI_TM4C1294_LAUNCHPAD/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/WVSHARE_BLE400/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/WVSHARE_BLE400/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/include/eicu.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/include/hal_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/include/nand.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/include/onewire.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/nrf51.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/DMA2Dv1/stm32_dma2d.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/DMA2Dv1/stm32_dma2d.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1/fsmc.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1/fsmc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1/fsmc_sdram.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1/fsmc_sdram.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1/fsmc_sram.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1/fsmc_sram.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1/nand_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1/nand_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/LTDCv1/stm32_ltdc.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/LTDCv1/stm32_ltdc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/TIMv1/eicu_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/TIMv1/eicu_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/ext_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/ext_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/gpt_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/gpt_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/i2c_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/i2c_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/mac_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/mac_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/pwm_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/pwm_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/spi_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/spi_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/tiva_gpt.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/tiva_udma.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD/tiva_udma.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C123x/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C123x/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C123x/tiva_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C123x/tiva_registry.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C123x/tm4c123x.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C129x/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C129x/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C129x/tiva_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C129x/tiva_registry.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C129x/tm4c129x.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/src/eicu.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/src/hal_community.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/src/nand.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/src/onewire.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/lcd/ili9341.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/lcd/ili9341.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems/l3gd20.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems/l3gd20.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems/lis3mdl.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems/lis3mdl.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems/lsm303dlhc.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems/lsm303dlhc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems/lsm6ds0.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems/lsm6ds0.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/others/max7219.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/others/max7219.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/rf/nrf24l01.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/rf/nrf24l01.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/bitmap.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/bitmap.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/memtest.cpp -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/memtest.hpp -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/halconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/mcuconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/onewire_test.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/onewire_test.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire/search_rom_synth.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/halconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/mcuconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/onewire_test.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/onewire_test.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire/search_rom_synth.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/halconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/mcuconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/dma_storm.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/dma_storm_adc.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/dma_storm_spi.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/dma_storm_uart.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/halconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/mcuconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/halconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/mcuconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/membench.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/membench.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/memcpy_dma.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/memcpy_dma.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/halconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/mcuconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/membench.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/membench.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/memcpy_dma.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/memcpy_dma.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/halconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/mcuconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/onewire_test.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/onewire_test.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/search_rom_synth.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/EXT/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/EXT/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/EXT/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/EXT/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/GPT/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/GPT/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/GPT/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/GPT/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/I2C/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/I2C/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/I2C/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/I2C/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/PWM/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/PWM/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/PWM/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/PWM/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/SPI/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/SPI/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/SPI/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/SPI/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARM/compilers/GCC/crt1.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARM/devices/LPC214x/armparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARM/devices/LPC214x/lpc214x.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/compilers/GCC/crt1.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/compilers/GCC/vectors.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/K20x/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/KL2x/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32F0xx/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32F1xx/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32F3xx/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32F4xx/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32L0xx/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32L1xx/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/compilers/GCC/vectors.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560BCxx/boot.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560BCxx/intc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560BCxx/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Bxx/boot.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Bxx/intc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Bxx/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Dxx/boot.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Dxx/intc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Dxx/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Pxx/boot.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Pxx/intc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Pxx/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC563Mxx/boot.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC563Mxx/intc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC563Mxx/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC564Axx/boot.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC564Axx/intc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC564Axx/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC56ECxx/boot.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC56ECxx/intc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC56ECxx/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC56ELxx/boot.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC56ELxx/intc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC56ELxx/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC57EMxx_HSM/boot.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC57EMxx_HSM/intc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC57EMxx_HSM/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/arm_common_tables.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/arm_const_structs.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/arm_math.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/core_cm0.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/core_cm0plus.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/core_cm3.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/core_cm4.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/core_cm4_simd.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/core_cmFunc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/core_cmInstr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/KINETIS/kl25z.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/KINETIS/mk20d5.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f030x6.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f030x8.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f031x6.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f038xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f042x6.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f048xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f051x8.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f058xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f071xb.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f072xb.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f078xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f0xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f10x.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f301x8.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f302x8.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f302xc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f303x8.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f303xc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f318xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f328xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f334x8.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f358xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f373xc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f378xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f3xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f401xc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f401xe.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f405xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f407xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f411xe.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f415xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f417xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f427xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f429xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f437xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f439xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f4xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32l051xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32l052xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32l053xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32l061xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32l062xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32l063xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32l0xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32l1xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/system_stm32f0xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/system_stm32f10x.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/system_stm32f3xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/system_stm32f4xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/system_stm32l0xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/system_stm32l1xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ARDUINO_MEGA/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ARDUINO_MEGA/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_11C24/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_11C24/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_1114/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_1114/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_11U14/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_11U14/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_1343/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_1343/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_LPC812/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_LPC812/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/FREESCALE_FREEDOM_K20D50M/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/FREESCALE_FREEDOM_K20D50M/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/FREESCALE_FREEDOM_KL25Z/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/FREESCALE_FREEDOM_KL25Z/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/MAPLEMINI_STM32_F103/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/MAPLEMINI_STM32_F103/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/MCHCK_K20/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/MCHCK_K20/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/NGX_BB_LPC11U14/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/NGX_BB_LPC11U14/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/NONSTANDARD_STM32F4_BARTHESS1/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/NONSTANDARD_STM32F4_BARTHESS1/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_AVR_CAN/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_AVR_CAN/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_AVR_MT_128/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_AVR_MT_128/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P1227/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P1227/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P1343/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P1343/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P2148/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P2148/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P2148/buzzer.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P2148/buzzer.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_MSP430_P1611/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_MSP430_P1611/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_SAM7_EX256/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_SAM7_EX256/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_SAM7_P256/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_SAM7_P256/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_103STK/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_103STK/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_E407/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_E407/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_E407_REV_D/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_E407_REV_D/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_H103/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_H103/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_H407/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_H407/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_LCD/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_LCD/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P103/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P103/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P107/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P107/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P407/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P407/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/PJRC_TEENSY_3/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/PJRC_TEENSY_3/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/RAISONANCE_REVA_STM8S/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/RAISONANCE_REVA_STM8S/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/simulator/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/simulator/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560B/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560B/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560BC/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560BC/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560D/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560D/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560P/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560P/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC563M/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC563M/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC564A/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC564A/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC56EC/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC56EC/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC56EL/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC56EL/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_INEMO_M1_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_INEMO_M1_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F030R8/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F030R8/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F103RB/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F103RB/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F302R8/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F302R8/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F334R8/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F334R8/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F401RE/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F401RE/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F411RE/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F411RE/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_L152RE/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_L152RE/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3210C_EVAL/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3210C_EVAL/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3210E_EVAL/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3210E_EVAL/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3220G_EVAL/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3220G_EVAL/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32373C_EVAL/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32373C_EVAL/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F072B_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F072B_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F0_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F0_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F3_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F3_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F401C_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F401C_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F429I_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F429I_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F4_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F4_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32L_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32L_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32VL_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32VL_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM8L_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM8L_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM8S_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM8S_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/STUDIEL_AT91SAM7A3_EK/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/STUDIEL_AT91SAM7A3_EK/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/adc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/can.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/dac.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/ext.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/gpt.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/hal.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/hal_channels.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/hal_files.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/hal_ioblock.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/hal_mmcsd.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/hal_queues.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/hal_streams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/i2c.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/i2s.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/icu.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/mac.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/mii.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/mmc_spi.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/pal.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/pwm.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/rtc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/sdc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/serial.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/serial_usb.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/spi.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/st.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/uart.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/usb.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/lib/streams/chprintf.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/lib/streams/chprintf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/lib/streams/memstreams.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/lib/streams/memstreams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/lib/streams/nullstreams.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/lib/streams/nullstreams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/nil/osal.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/nil/osal.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/os-less/ARMCMx/osal.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/os-less/ARMCMx/osal.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/rt/osal.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/rt/osal.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/avr_pins.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/avr_timers.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/gpt_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/gpt_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/i2c_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/i2c_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/icu_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/icu_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/pwm_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/pwm_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/spi_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/spi_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/common/ARMCMx/nvic.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/common/ARMCMx/nvic.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/gpt_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/gpt_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/kinetis_registry.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/spi_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/spi_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/kinetis_registry.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/kinetis_tpm.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/pwm_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/pwm_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/LLD/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/LLD/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/LLD/ext_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/LLD/ext_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/LLD/i2c_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/LLD/i2c_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/spi_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/spi_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/vic.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/vic.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/win32/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/win32/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/win32/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/win32/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/console.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/console.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/DACv1/dac_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/DACv1/dac_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/DMAv1/stm32_dma.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/DMAv1/stm32_dma.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/GPIOv1/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/GPIOv1/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/GPIOv2/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/GPIOv2/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/I2Cv1/i2c_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/I2Cv1/i2c_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/I2Cv2/i2c_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/I2Cv2/i2c_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/OTGv1/stm32_otg.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/OTGv1/usb_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/OTGv1/usb_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/RTCv1/rtc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/RTCv1/rtc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/RTCv2/rtc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/RTCv2/rtc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/SPIv1/i2s_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/SPIv1/i2s_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/SPIv1/spi_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/SPIv1/spi_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/SPIv2/spi_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/SPIv2/spi_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/icu_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/icu_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/stm32_tim.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv1/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv1/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv1/uart_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv1/uart_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv2/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv2/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv2/uart_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv2/uart_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USBv1/stm32_usb.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USBv1/usb_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USBv1/usb_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/can_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/can_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/ext_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/ext_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/mac_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/mac_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/sdc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/sdc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/ext_lld_isr.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/ext_lld_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/stm32_dma.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/stm32_dma.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/stm32_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/stm32_rcc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/stm32_registry.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/ext_lld_isr.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/ext_lld_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/hal_lld_f100.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/hal_lld_f103.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/hal_lld_f105_f107.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/stm32_dma.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/stm32_dma.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/stm32_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/stm32_rcc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/stm32_registry.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/ext_lld_isr.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/ext_lld_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/stm32_dma.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/stm32_dma.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/stm32_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/stm32_rcc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/stm32_registry.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/ext_lld_isr.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/ext_lld_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/stm32_dma.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/stm32_dma.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/stm32_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/stm32_rcc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/stm32_registry.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/ext_lld_isr.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/ext_lld_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/stm32_dma.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/stm32_dma.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/stm32_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/stm32_rcc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/stm32_registry.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/ext_lld_isr.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/ext_lld_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/stm32_dma.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/stm32_dma.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/stm32_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/stm32_rcc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/stm32_registry.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/adc.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/can.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/dac.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/ext.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/gpt.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/hal.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/hal_mmcsd.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/hal_queues.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/i2c.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/i2s.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/icu.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/mac.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/mmc_spi.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/pal.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/pwm.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/rtc.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/sdc.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/serial.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/serial_usb.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/spi.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/st.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/uart.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/usb.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/osal/osal.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/osal/osal.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/can_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/can_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/dac_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/dac_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/ext_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/ext_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/gpt_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/gpt_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/i2c_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/i2c_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/i2s_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/i2s_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/icu_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/icu_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/mac_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/mac_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/pwm_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/pwm_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/rtc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/rtc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/sdc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/sdc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/spi_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/spi_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/uart_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/uart_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/usb_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/usb_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/include/nil.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/compilers/GCC/niltypes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/nilcore.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/nilcore.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/nilcore_timer.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/nilcore_v6m.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/nilcore_v6m.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/nilcore_v7m.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/nilcore_v7m.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/AVR/compilers/GCC/niltypes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/AVR/nilcore.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/AVR/nilcore.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/AVR/nilcore_timer.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/e200/compilers/GCC/niltypes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/e200/nilcore.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/e200/nilcore.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/src/nil.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/templates/nilconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/templates/nilcore.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/templates/nilcore.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/templates/nilcore_timer.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/templates/niltypes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/ch.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chbsem.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chcond.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chdebug.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chdynamic.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chevents.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chheap.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chlicense.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chmboxes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chmemcore.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chmempools.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chmsg.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chmtx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chqueues.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chregistry.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chschd.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chsem.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chstats.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chstreams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chsys.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chsystypes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chthreads.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chtm.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chvt.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARM/compilers/GCC/chtypes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARM/chcore.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARM/chcore.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARM/chcore_timer.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/cmsis_os/cmsis_os.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/cmsis_os/cmsis_os.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/compilers/GCC/chtypes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/compilers/IAR/chtypes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/compilers/RVCT/chtypes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/chcore.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/chcore.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/chcore_timer.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/chcore_v6m.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/chcore_v6m.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/chcore_v7m.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/chcore_v7m.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/AVR/compilers/GCC/chtypes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/AVR/chcore.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/AVR/chcore.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/e200/compilers/GCC/chtypes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/e200/chcore.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/e200/chcore.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/SIMIA32/compilers/GCC/chtypes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/SIMIA32/chcore.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/SIMIA32/chcore.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chcond.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chdebug.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chdynamic.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chevents.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chheap.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chmboxes.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chmemcore.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chmempools.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chmsg.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chmtx.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chqueues.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chregistry.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chschd.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chsem.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chstats.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chsys.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chthreads.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chtm.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chvt.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/templates/meta/module.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/templates/meta/module.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/templates/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/templates/chcore.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/templates/chcore.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/templates/chtypes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/cpp_wrappers/ch.cpp -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/cpp_wrappers/ch.hpp -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/cpp_wrappers/syscalls_cpp.cpp -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/cpp_wrappers/syscalls_cpp.hpp -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/devices_lib/accel/lis302dl.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/devices_lib/accel/lis302dl.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/devices_lib/lcd/lcd3310.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/devices_lib/lcd/lcd3310.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/fatfs_bindings/fatfs_diskio.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/fatfs_bindings/fatfs_syscall.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/lwip_bindings/arch/cc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/lwip_bindings/arch/perf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/lwip_bindings/arch/sys_arch.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/lwip_bindings/arch/sys_arch.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/lwip_bindings/lwipthread.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/lwip_bindings/lwipthread.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/evtimer.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/evtimer.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/shell.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/shell.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/syscalls.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/halconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/mcuconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/dma_storm.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/dma_storm_adc.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/dma_storm_spi.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/dma_storm_uart.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/halconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/mcuconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/halconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/mcuconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/membench.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/membench.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/memcpy_dma.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/memcpy_dma.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/halconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/mcuconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/membench.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/membench.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/memcpy_dma.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/memcpy_dma.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/halconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/mcuconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/onewire_test.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/onewire_test.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/search_rom_synth.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/EXT/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/EXT/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/EXT/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/EXT/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/GPT/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/GPT/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/GPT/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/GPT/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/I2C/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/I2C/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/I2C/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/I2C/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/PWM/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/PWM/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/PWM/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/PWM/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/SPI/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/SPI/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/SPI/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/SPI/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARM/compilers/GCC/crt1.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARM/devices/LPC214x/armparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARM/devices/LPC214x/lpc214x.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/compilers/GCC/crt1.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/compilers/GCC/vectors.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/K20x/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/KL2x/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32F0xx/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32F1xx/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32F3xx/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32F4xx/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32L0xx/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32L1xx/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/compilers/GCC/vectors.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560BCxx/boot.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560BCxx/intc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560BCxx/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Bxx/boot.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Bxx/intc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Bxx/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Dxx/boot.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Dxx/intc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Dxx/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Pxx/boot.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Pxx/intc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Pxx/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC563Mxx/boot.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC563Mxx/intc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC563Mxx/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC564Axx/boot.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC564Axx/intc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC564Axx/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC56ECxx/boot.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC56ECxx/intc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC56ECxx/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC56ELxx/boot.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC56ELxx/intc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC56ELxx/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC57EMxx_HSM/boot.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC57EMxx_HSM/intc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC57EMxx_HSM/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/arm_common_tables.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/arm_const_structs.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/arm_math.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/core_cm0.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/core_cm0plus.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/core_cm3.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/core_cm4.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/core_cm4_simd.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/core_cmFunc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/core_cmInstr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/KINETIS/kl25z.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/KINETIS/mk20d5.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f030x6.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f030x8.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f031x6.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f038xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f042x6.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f048xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f051x8.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f058xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f071xb.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f072xb.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f078xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f0xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f10x.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f301x8.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f302x8.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f302xc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f303x8.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f303xc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f318xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f328xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f334x8.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f358xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f373xc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f378xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f3xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f401xc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f401xe.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f405xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f407xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f411xe.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f415xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f417xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f427xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f429xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f437xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f439xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f4xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32l051xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32l052xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32l053xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32l061xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32l062xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32l063xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32l0xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32l1xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/system_stm32f0xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/system_stm32f10x.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/system_stm32f3xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/system_stm32f4xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/system_stm32l0xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/system_stm32l1xx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ARDUINO_MEGA/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ARDUINO_MEGA/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_11C24/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_11C24/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_1114/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_1114/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_11U14/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_11U14/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_1343/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_1343/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_LPC812/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_LPC812/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/FREESCALE_FREEDOM_K20D50M/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/FREESCALE_FREEDOM_K20D50M/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/FREESCALE_FREEDOM_KL25Z/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/FREESCALE_FREEDOM_KL25Z/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/MAPLEMINI_STM32_F103/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/MAPLEMINI_STM32_F103/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/MCHCK_K20/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/MCHCK_K20/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/NGX_BB_LPC11U14/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/NGX_BB_LPC11U14/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/NONSTANDARD_STM32F4_BARTHESS1/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/NONSTANDARD_STM32F4_BARTHESS1/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_AVR_CAN/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_AVR_CAN/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_AVR_MT_128/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_AVR_MT_128/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P1227/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P1227/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P1343/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P1343/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P2148/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P2148/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P2148/buzzer.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P2148/buzzer.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_MSP430_P1611/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_MSP430_P1611/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_SAM7_EX256/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_SAM7_EX256/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_SAM7_P256/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_SAM7_P256/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_103STK/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_103STK/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_E407/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_E407/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_E407_REV_D/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_E407_REV_D/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_H103/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_H103/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_H407/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_H407/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_LCD/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_LCD/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P103/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P103/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P107/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P107/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P407/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P407/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/PJRC_TEENSY_3/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/PJRC_TEENSY_3/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/RAISONANCE_REVA_STM8S/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/RAISONANCE_REVA_STM8S/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/simulator/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/simulator/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560B/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560B/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560BC/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560BC/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560D/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560D/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560P/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560P/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC563M/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC563M/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC564A/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC564A/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC56EC/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC56EC/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC56EL/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC56EL/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_INEMO_M1_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_INEMO_M1_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F030R8/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F030R8/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F103RB/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F103RB/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F302R8/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F302R8/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F334R8/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F334R8/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F401RE/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F401RE/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F411RE/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F411RE/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_L152RE/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_L152RE/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3210C_EVAL/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3210C_EVAL/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3210E_EVAL/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3210E_EVAL/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3220G_EVAL/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3220G_EVAL/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32373C_EVAL/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32373C_EVAL/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F072B_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F072B_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F0_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F0_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F3_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F3_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F401C_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F401C_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F429I_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F429I_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F4_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F4_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32L_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32L_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32VL_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32VL_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM8L_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM8L_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM8S_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM8S_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/STUDIEL_AT91SAM7A3_EK/board.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/STUDIEL_AT91SAM7A3_EK/board.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/adc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/can.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/dac.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/ext.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/gpt.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/hal.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/hal_channels.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/hal_files.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/hal_ioblock.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/hal_mmcsd.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/hal_queues.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/hal_streams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/i2c.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/i2s.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/icu.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/mac.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/mii.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/mmc_spi.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/pal.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/pwm.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/rtc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/sdc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/serial.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/serial_usb.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/spi.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/st.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/uart.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include/usb.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/lib/streams/chprintf.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/lib/streams/chprintf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/lib/streams/memstreams.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/lib/streams/memstreams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/lib/streams/nullstreams.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/lib/streams/nullstreams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/nil/osal.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/nil/osal.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/os-less/ARMCMx/osal.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/os-less/ARMCMx/osal.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/rt/osal.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/rt/osal.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/avr_pins.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/avr_timers.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/gpt_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/gpt_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/i2c_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/i2c_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/icu_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/icu_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/pwm_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/pwm_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/spi_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/spi_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/common/ARMCMx/nvic.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/common/ARMCMx/nvic.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/gpt_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/gpt_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/kinetis_registry.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/spi_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/spi_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/kinetis_registry.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/kinetis_tpm.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/pwm_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/pwm_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/LLD/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/LLD/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/LLD/ext_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/LLD/ext_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/LLD/i2c_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/LLD/i2c_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/spi_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/spi_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/vic.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/vic.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/win32/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/win32/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/win32/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/win32/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/console.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/console.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/DACv1/dac_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/DACv1/dac_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/DMAv1/stm32_dma.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/DMAv1/stm32_dma.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/GPIOv1/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/GPIOv1/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/GPIOv2/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/GPIOv2/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/I2Cv1/i2c_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/I2Cv1/i2c_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/I2Cv2/i2c_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/I2Cv2/i2c_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/OTGv1/stm32_otg.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/OTGv1/usb_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/OTGv1/usb_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/RTCv1/rtc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/RTCv1/rtc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/RTCv2/rtc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/RTCv2/rtc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/SPIv1/i2s_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/SPIv1/i2s_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/SPIv1/spi_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/SPIv1/spi_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/SPIv2/spi_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/SPIv2/spi_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/icu_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/icu_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/stm32_tim.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv1/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv1/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv1/uart_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv1/uart_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv2/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv2/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv2/uart_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv2/uart_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USBv1/stm32_usb.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USBv1/usb_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USBv1/usb_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/can_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/can_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/ext_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/ext_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/mac_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/mac_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/sdc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/sdc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/ext_lld_isr.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/ext_lld_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/stm32_dma.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/stm32_dma.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/stm32_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/stm32_rcc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/stm32_registry.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/ext_lld_isr.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/ext_lld_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/hal_lld_f100.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/hal_lld_f103.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/hal_lld_f105_f107.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/stm32_dma.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/stm32_dma.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/stm32_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/stm32_rcc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/stm32_registry.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/ext_lld_isr.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/ext_lld_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/stm32_dma.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/stm32_dma.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/stm32_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/stm32_rcc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/stm32_registry.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/ext_lld_isr.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/ext_lld_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/stm32_dma.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/stm32_dma.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/stm32_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/stm32_rcc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/stm32_registry.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/ext_lld_isr.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/ext_lld_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/stm32_dma.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/stm32_dma.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/stm32_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/stm32_rcc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/stm32_registry.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/ext_lld_isr.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/ext_lld_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/stm32_dma.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/stm32_dma.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/stm32_isr.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/stm32_rcc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/stm32_registry.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/adc.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/can.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/dac.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/ext.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/gpt.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/hal.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/hal_mmcsd.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/hal_queues.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/i2c.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/i2s.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/icu.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/mac.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/mmc_spi.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/pal.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/pwm.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/rtc.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/sdc.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/serial.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/serial_usb.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/spi.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/st.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/uart.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/src/usb.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/osal/osal.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/osal/osal.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/can_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/can_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/dac_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/dac_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/ext_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/ext_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/gpt_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/gpt_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/i2c_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/i2c_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/i2s_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/i2s_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/icu_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/icu_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/mac_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/mac_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/pwm_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/pwm_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/rtc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/rtc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/sdc_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/sdc_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/spi_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/spi_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/uart_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/uart_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/usb_lld.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/usb_lld.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/include/nil.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/compilers/GCC/niltypes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/nilcore.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/nilcore.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/nilcore_timer.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/nilcore_v6m.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/nilcore_v6m.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/nilcore_v7m.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/nilcore_v7m.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/AVR/compilers/GCC/niltypes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/AVR/nilcore.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/AVR/nilcore.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/AVR/nilcore_timer.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/e200/compilers/GCC/niltypes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/e200/nilcore.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/e200/nilcore.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/src/nil.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/templates/nilconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/templates/nilcore.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/templates/nilcore.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/templates/nilcore_timer.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/templates/niltypes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/ch.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chbsem.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chcond.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chdebug.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chdynamic.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chevents.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chheap.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chlicense.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chmboxes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chmemcore.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chmempools.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chmsg.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chmtx.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chqueues.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chregistry.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chschd.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chsem.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chstats.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chstreams.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chsys.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chsystypes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chthreads.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chtm.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chvt.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARM/compilers/GCC/chtypes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARM/chcore.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARM/chcore.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARM/chcore_timer.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/cmsis_os/cmsis_os.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/cmsis_os/cmsis_os.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/compilers/GCC/chtypes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/compilers/IAR/chtypes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/compilers/RVCT/chtypes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/chcore.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/chcore.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/chcore_timer.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/chcore_v6m.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/chcore_v6m.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/chcore_v7m.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/chcore_v7m.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/AVR/compilers/GCC/chtypes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/AVR/chcore.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/AVR/chcore.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/e200/compilers/GCC/chtypes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/e200/chcore.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/e200/chcore.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/SIMIA32/compilers/GCC/chtypes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/SIMIA32/chcore.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/SIMIA32/chcore.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chcond.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chdebug.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chdynamic.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chevents.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chheap.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chmboxes.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chmemcore.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chmempools.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chmsg.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chmtx.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chqueues.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chregistry.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chschd.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chsem.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chstats.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chsys.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chthreads.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chtm.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chvt.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/templates/meta/module.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/templates/meta/module.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/templates/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/templates/chcore.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/templates/chcore.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/templates/chtypes.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/cpp_wrappers/ch.cpp -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/cpp_wrappers/ch.hpp -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/cpp_wrappers/syscalls_cpp.cpp -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/cpp_wrappers/syscalls_cpp.hpp -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/devices_lib/accel/lis302dl.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/devices_lib/accel/lis302dl.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/devices_lib/lcd/lcd3310.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/devices_lib/lcd/lcd3310.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/fatfs_bindings/fatfs_diskio.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/fatfs_bindings/fatfs_syscall.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/lwip_bindings/arch/cc.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/lwip_bindings/arch/perf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/lwip_bindings/arch/sys_arch.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/lwip_bindings/arch/sys_arch.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/lwip_bindings/lwipthread.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/lwip_bindings/lwipthread.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/evtimer.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/evtimer.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/shell.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/shell.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/syscalls.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/halconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/mcuconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/dma_storm.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/dma_storm_adc.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/dma_storm_spi.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/dma_storm_uart.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/halconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND/mcuconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/halconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/mcuconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/membench.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/membench.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/memcpy_dma.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM/memcpy_dma.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/halconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/mcuconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/membench.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/membench.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/memcpy_dma.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM/memcpy_dma.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/halconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/mcuconf_community.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/onewire_test.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/onewire_test.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire/search_rom_synth.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/EXT/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/EXT/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/EXT/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/EXT/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/GPT/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/GPT/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/GPT/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/GPT/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/I2C/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/I2C/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/I2C/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/I2C/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/PWM/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/PWM/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/PWM/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/PWM/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/SPI/chconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/SPI/halconf.h -community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/SPI/main.c -community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/SPI/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARM/compilers/GCC/crt1.c -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARM/devices/LPC214x/armparams.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARM/devices/LPC214x/lpc214x.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/compilers/GCC/crt1.c -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/compilers/GCC/vectors.c -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/K20x/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/KL2x/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32F0xx/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32F1xx/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32F3xx/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32F4xx/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32L0xx/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32L1xx/cmparams.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/compilers/GCC/vectors.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560BCxx/boot.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560BCxx/intc.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560BCxx/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Bxx/boot.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Bxx/intc.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Bxx/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Dxx/boot.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Dxx/intc.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Dxx/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Pxx/boot.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Pxx/intc.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Pxx/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC563Mxx/boot.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC563Mxx/intc.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC563Mxx/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC564Axx/boot.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC564Axx/intc.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC564Axx/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC56ECxx/boot.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC56ECxx/intc.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC56ECxx/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC56ELxx/boot.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC56ELxx/intc.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC56ELxx/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC57EMxx_HSM/boot.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC57EMxx_HSM/intc.h -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC57EMxx_HSM/ppcparams.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/arm_common_tables.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/arm_const_structs.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/arm_math.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/core_cm0.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/core_cm0plus.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/core_cm3.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/core_cm4.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/core_cm4_simd.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/core_cmFunc.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include/core_cmInstr.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/KINETIS/kl25z.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/KINETIS/mk20d5.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f030x6.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f030x8.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f031x6.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f038xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f042x6.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f048xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f051x8.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f058xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f071xb.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f072xb.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f078xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f0xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f10x.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f301x8.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f302x8.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f302xc.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f303x8.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f303xc.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f318xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f328xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f334x8.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f358xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f373xc.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f378xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f3xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f401xc.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f401xe.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f405xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f407xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f411xe.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f415xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f417xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f427xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f429xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f437xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f439xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32f4xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32l051xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32l052xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32l053xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32l061xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32l062xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32l063xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32l0xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/stm32l1xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/system_stm32f0xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/system_stm32f10x.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/system_stm32f3xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/system_stm32f4xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/system_stm32l0xx.h -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST/system_stm32l1xx.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ARDUINO_MEGA/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ARDUINO_MEGA/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_11C24/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_11C24/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_1114/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_1114/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_11U14/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_11U14/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_1343/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_1343/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_LPC812/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_LPC812/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/FREESCALE_FREEDOM_K20D50M/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/FREESCALE_FREEDOM_K20D50M/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/FREESCALE_FREEDOM_KL25Z/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/FREESCALE_FREEDOM_KL25Z/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/MAPLEMINI_STM32_F103/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/MAPLEMINI_STM32_F103/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/MCHCK_K20/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/MCHCK_K20/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/NGX_BB_LPC11U14/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/NGX_BB_LPC11U14/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/NONSTANDARD_STM32F4_BARTHESS1/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/NONSTANDARD_STM32F4_BARTHESS1/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_AVR_CAN/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_AVR_CAN/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_AVR_MT_128/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_AVR_MT_128/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P1227/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P1227/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P1343/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P1343/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P2148/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P2148/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P2148/buzzer.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P2148/buzzer.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_MSP430_P1611/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_MSP430_P1611/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_SAM7_EX256/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_SAM7_EX256/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_SAM7_P256/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_SAM7_P256/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_103STK/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_103STK/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_E407/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_E407/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_E407_REV_D/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_E407_REV_D/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_H103/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_H103/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_H407/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_H407/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_LCD/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_LCD/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P103/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P103/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P107/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P107/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P407/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P407/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/PJRC_TEENSY_3/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/PJRC_TEENSY_3/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/RAISONANCE_REVA_STM8S/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/RAISONANCE_REVA_STM8S/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/simulator/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/simulator/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560B/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560B/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560BC/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560BC/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560D/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560D/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560P/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560P/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC563M/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC563M/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC564A/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC564A/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC56EC/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC56EC/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC56EL/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC56EL/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_INEMO_M1_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_INEMO_M1_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F030R8/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F030R8/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F103RB/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F103RB/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F302R8/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F302R8/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F334R8/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F334R8/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F401RE/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F401RE/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F411RE/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F411RE/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_L152RE/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_L152RE/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3210C_EVAL/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3210C_EVAL/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3210E_EVAL/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3210E_EVAL/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3220G_EVAL/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3220G_EVAL/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32373C_EVAL/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32373C_EVAL/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F072B_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F072B_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F0_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F0_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F3_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F3_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F401C_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F401C_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F429I_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F429I_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F4_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F4_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32L_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32L_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32VL_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32VL_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM8L_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM8L_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM8S_DISCOVERY/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM8S_DISCOVERY/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/STUDIEL_AT91SAM7A3_EK/board.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/STUDIEL_AT91SAM7A3_EK/board.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/adc.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/can.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/dac.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/ext.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/gpt.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/hal.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/hal_channels.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/hal_files.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/hal_ioblock.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/hal_mmcsd.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/hal_queues.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/hal_streams.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/i2c.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/i2s.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/icu.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/mac.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/mii.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/mmc_spi.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/pal.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/pwm.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/rtc.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/sdc.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/serial.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/serial_usb.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/spi.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/st.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/uart.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/include/usb.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/lib/streams/chprintf.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/lib/streams/chprintf.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/lib/streams/memstreams.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/lib/streams/memstreams.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/lib/streams/nullstreams.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/lib/streams/nullstreams.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/nil/osal.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/nil/osal.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/os-less/ARMCMx/osal.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/os-less/ARMCMx/osal.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/rt/osal.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/rt/osal.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/avr_pins.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/avr_timers.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/gpt_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/gpt_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/i2c_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/i2c_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/icu_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/icu_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/pwm_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/pwm_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/spi_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/spi_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/common/ARMCMx/nvic.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/common/ARMCMx/nvic.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/gpt_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/gpt_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/kinetis_registry.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/spi_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/spi_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/kinetis_registry.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/kinetis_tpm.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/pwm_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/pwm_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/LLD/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/LLD/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/LLD/ext_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/LLD/ext_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/LLD/i2c_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/LLD/i2c_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/spi_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/spi_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/vic.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x/vic.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/win32/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/win32/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/win32/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/win32/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/console.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/console.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/DACv1/dac_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/DACv1/dac_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/DMAv1/stm32_dma.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/DMAv1/stm32_dma.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/GPIOv1/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/GPIOv1/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/GPIOv2/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/GPIOv2/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/I2Cv1/i2c_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/I2Cv1/i2c_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/I2Cv2/i2c_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/I2Cv2/i2c_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/OTGv1/stm32_otg.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/OTGv1/usb_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/OTGv1/usb_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/RTCv1/rtc_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/RTCv1/rtc_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/RTCv2/rtc_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/RTCv2/rtc_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/SPIv1/i2s_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/SPIv1/i2s_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/SPIv1/spi_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/SPIv1/spi_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/SPIv2/spi_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/SPIv2/spi_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/icu_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/icu_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1/stm32_tim.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv1/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv1/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv1/uart_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv1/uart_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv2/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv2/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv2/uart_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv2/uart_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USBv1/stm32_usb.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USBv1/usb_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USBv1/usb_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/can_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/can_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/ext_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/ext_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/mac_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/mac_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/sdc_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/sdc_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/ext_lld_isr.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/ext_lld_isr.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/stm32_dma.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/stm32_dma.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/stm32_isr.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/stm32_rcc.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx/stm32_registry.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/ext_lld_isr.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/ext_lld_isr.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/hal_lld_f100.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/hal_lld_f103.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/hal_lld_f105_f107.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/stm32_dma.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/stm32_dma.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/stm32_isr.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/stm32_rcc.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx/stm32_registry.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/ext_lld_isr.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/ext_lld_isr.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/stm32_dma.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/stm32_dma.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/stm32_isr.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/stm32_rcc.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x/stm32_registry.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/ext_lld_isr.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/ext_lld_isr.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/stm32_dma.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/stm32_dma.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/stm32_isr.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/stm32_rcc.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx/stm32_registry.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/ext_lld_isr.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/ext_lld_isr.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/stm32_dma.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/stm32_dma.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/stm32_isr.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/stm32_rcc.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx/stm32_registry.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/ext_lld_isr.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/ext_lld_isr.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/stm32_dma.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/stm32_dma.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/stm32_isr.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/stm32_rcc.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx/stm32_registry.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/src/adc.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/src/can.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/src/dac.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/src/ext.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/src/gpt.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/src/hal.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/src/hal_mmcsd.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/src/hal_queues.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/src/i2c.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/src/i2s.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/src/icu.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/src/mac.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/src/mmc_spi.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/src/pal.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/src/pwm.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/src/rtc.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/src/sdc.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/src/serial.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/src/serial_usb.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/src/spi.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/src/st.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/src/uart.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/src/usb.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/osal/osal.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/osal/osal.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/adc_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/adc_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/can_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/can_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/dac_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/dac_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/ext_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/ext_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/gpt_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/gpt_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/hal_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/hal_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/halconf.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/i2c_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/i2c_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/i2s_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/i2s_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/icu_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/icu_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/mac_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/mac_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/pal_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/pal_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/pwm_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/pwm_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/rtc_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/rtc_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/sdc_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/sdc_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/serial_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/serial_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/spi_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/spi_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/st_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/st_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/uart_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/uart_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/usb_lld.c -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/usb_lld.h -community/testhal/STM32/STM32F4xx/EICU/os/nil/include/nil.h -community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/compilers/GCC/niltypes.h -community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/nilcore.c -community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/nilcore.h -community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/nilcore_timer.h -community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/nilcore_v6m.c -community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/nilcore_v6m.h -community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/nilcore_v7m.c -community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/nilcore_v7m.h -community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/AVR/compilers/GCC/niltypes.h -community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/AVR/nilcore.c -community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/AVR/nilcore.h -community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/AVR/nilcore_timer.h -community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/e200/compilers/GCC/niltypes.h -community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/e200/nilcore.c -community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/e200/nilcore.h -community/testhal/STM32/STM32F4xx/EICU/os/nil/src/nil.c -community/testhal/STM32/STM32F4xx/EICU/os/nil/templates/nilconf.h -community/testhal/STM32/STM32F4xx/EICU/os/nil/templates/nilcore.c -community/testhal/STM32/STM32F4xx/EICU/os/nil/templates/nilcore.h -community/testhal/STM32/STM32F4xx/EICU/os/nil/templates/nilcore_timer.h -community/testhal/STM32/STM32F4xx/EICU/os/nil/templates/niltypes.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/include/ch.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chbsem.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chcond.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chdebug.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chdynamic.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chevents.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chheap.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chlicense.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chmboxes.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chmemcore.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chmempools.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chmsg.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chmtx.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chqueues.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chregistry.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chschd.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chsem.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chstats.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chstreams.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chsys.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chsystypes.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chthreads.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chtm.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/include/chvt.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARM/compilers/GCC/chtypes.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARM/chcore.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARM/chcore.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARM/chcore_timer.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/cmsis_os/cmsis_os.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/cmsis_os/cmsis_os.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/compilers/GCC/chtypes.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/compilers/IAR/chtypes.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/compilers/RVCT/chtypes.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/chcore.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/chcore.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/chcore_timer.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/chcore_v6m.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/chcore_v6m.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/chcore_v7m.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/chcore_v7m.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/AVR/compilers/GCC/chtypes.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/AVR/chcore.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/AVR/chcore.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/e200/compilers/GCC/chtypes.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/e200/chcore.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/e200/chcore.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/SIMIA32/compilers/GCC/chtypes.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/SIMIA32/chcore.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/SIMIA32/chcore.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chcond.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chdebug.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chdynamic.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chevents.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chheap.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chmboxes.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chmemcore.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chmempools.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chmsg.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chmtx.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chqueues.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chregistry.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chschd.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chsem.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chstats.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chsys.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chthreads.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chtm.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/src/chvt.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/templates/meta/module.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/templates/meta/module.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/templates/chconf.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/templates/chcore.c -community/testhal/STM32/STM32F4xx/EICU/os/rt/templates/chcore.h -community/testhal/STM32/STM32F4xx/EICU/os/rt/templates/chtypes.h -community/testhal/STM32/STM32F4xx/EICU/os/various/cpp_wrappers/ch.cpp -community/testhal/STM32/STM32F4xx/EICU/os/various/cpp_wrappers/ch.hpp -community/testhal/STM32/STM32F4xx/EICU/os/various/cpp_wrappers/syscalls_cpp.cpp -community/testhal/STM32/STM32F4xx/EICU/os/various/cpp_wrappers/syscalls_cpp.hpp -community/testhal/STM32/STM32F4xx/EICU/os/various/devices_lib/accel/lis302dl.c -community/testhal/STM32/STM32F4xx/EICU/os/various/devices_lib/accel/lis302dl.h -community/testhal/STM32/STM32F4xx/EICU/os/various/devices_lib/lcd/lcd3310.c -community/testhal/STM32/STM32F4xx/EICU/os/various/devices_lib/lcd/lcd3310.h -community/testhal/STM32/STM32F4xx/EICU/os/various/fatfs_bindings/fatfs_diskio.c -community/testhal/STM32/STM32F4xx/EICU/os/various/fatfs_bindings/fatfs_syscall.c -community/testhal/STM32/STM32F4xx/EICU/os/various/lwip_bindings/arch/cc.h -community/testhal/STM32/STM32F4xx/EICU/os/various/lwip_bindings/arch/perf.h -community/testhal/STM32/STM32F4xx/EICU/os/various/lwip_bindings/arch/sys_arch.c -community/testhal/STM32/STM32F4xx/EICU/os/various/lwip_bindings/arch/sys_arch.h -community/testhal/STM32/STM32F4xx/EICU/os/various/lwip_bindings/lwipthread.c -community/testhal/STM32/STM32F4xx/EICU/os/various/lwip_bindings/lwipthread.h -community/testhal/STM32/STM32F4xx/EICU/os/various/evtimer.c -community/testhal/STM32/STM32F4xx/EICU/os/various/evtimer.h -community/testhal/STM32/STM32F4xx/EICU/os/various/shell.c -community/testhal/STM32/STM32F4xx/EICU/os/various/shell.h -community/testhal/STM32/STM32F4xx/EICU/os/various/syscalls.c -community/testhal/STM32/STM32F4xx/EICU/chconf.h -community/testhal/STM32/STM32F4xx/EICU/halconf.h -community/testhal/STM32/STM32F4xx/EICU/halconf_community.h -community/testhal/STM32/STM32F4xx/EICU/main.c -community/testhal/STM32/STM32F4xx/EICU/mcuconf.h -community/testhal/STM32/STM32F4xx/EICU/mcuconf_community.h -community/testhal/STM32/STM32F4xx/FSMC_NAND/chconf.h -community/testhal/STM32/STM32F4xx/FSMC_NAND/dma_storm.h -community/testhal/STM32/STM32F4xx/FSMC_NAND/dma_storm_adc.c -community/testhal/STM32/STM32F4xx/FSMC_NAND/dma_storm_spi.c -community/testhal/STM32/STM32F4xx/FSMC_NAND/dma_storm_uart.c -community/testhal/STM32/STM32F4xx/FSMC_NAND/halconf.h -community/testhal/STM32/STM32F4xx/FSMC_NAND/halconf_community.h -community/testhal/STM32/STM32F4xx/FSMC_NAND/main.c -community/testhal/STM32/STM32F4xx/FSMC_NAND/mcuconf.h -community/testhal/STM32/STM32F4xx/FSMC_NAND/mcuconf_community.h -community/testhal/STM32/STM32F4xx/FSMC_SDRAM/chconf.h -community/testhal/STM32/STM32F4xx/FSMC_SDRAM/halconf.h -community/testhal/STM32/STM32F4xx/FSMC_SDRAM/halconf_community.h -community/testhal/STM32/STM32F4xx/FSMC_SDRAM/main.c -community/testhal/STM32/STM32F4xx/FSMC_SDRAM/mcuconf.h -community/testhal/STM32/STM32F4xx/FSMC_SDRAM/mcuconf_community.h -community/testhal/STM32/STM32F4xx/FSMC_SDRAM/membench.c -community/testhal/STM32/STM32F4xx/FSMC_SDRAM/membench.h -community/testhal/STM32/STM32F4xx/FSMC_SDRAM/memcpy_dma.c -community/testhal/STM32/STM32F4xx/FSMC_SDRAM/memcpy_dma.h -community/testhal/STM32/STM32F4xx/FSMC_SRAM/chconf.h -community/testhal/STM32/STM32F4xx/FSMC_SRAM/halconf.h -community/testhal/STM32/STM32F4xx/FSMC_SRAM/halconf_community.h -community/testhal/STM32/STM32F4xx/FSMC_SRAM/main.c -community/testhal/STM32/STM32F4xx/FSMC_SRAM/mcuconf.h -community/testhal/STM32/STM32F4xx/FSMC_SRAM/mcuconf_community.h -community/testhal/STM32/STM32F4xx/FSMC_SRAM/membench.c -community/testhal/STM32/STM32F4xx/FSMC_SRAM/membench.h -community/testhal/STM32/STM32F4xx/FSMC_SRAM/memcpy_dma.c -community/testhal/STM32/STM32F4xx/FSMC_SRAM/memcpy_dma.h -community/testhal/STM32/STM32F4xx/onewire/chconf.h -community/testhal/STM32/STM32F4xx/onewire/halconf.h -community/testhal/STM32/STM32F4xx/onewire/halconf_community.h -community/testhal/STM32/STM32F4xx/onewire/main.c -community/testhal/STM32/STM32F4xx/onewire/mcuconf.h -community/testhal/STM32/STM32F4xx/onewire/mcuconf_community.h -community/testhal/STM32/STM32F4xx/onewire/onewire_test.c -community/testhal/STM32/STM32F4xx/onewire/onewire_test.h -community/testhal/STM32/STM32F4xx/onewire/search_rom_synth.c -community/testhal/TIVA/TM4C123x/EXT/chconf.h -community/testhal/TIVA/TM4C123x/EXT/halconf.h -community/testhal/TIVA/TM4C123x/EXT/main.c -community/testhal/TIVA/TM4C123x/EXT/mcuconf.h -community/testhal/TIVA/TM4C123x/GPT/chconf.h -community/testhal/TIVA/TM4C123x/GPT/halconf.h -community/testhal/TIVA/TM4C123x/GPT/main.c -community/testhal/TIVA/TM4C123x/GPT/mcuconf.h -community/testhal/TIVA/TM4C123x/I2C/chconf.h -community/testhal/TIVA/TM4C123x/I2C/halconf.h -community/testhal/TIVA/TM4C123x/I2C/main.c -community/testhal/TIVA/TM4C123x/I2C/mcuconf.h -community/testhal/TIVA/TM4C123x/PWM/chconf.h -community/testhal/TIVA/TM4C123x/PWM/halconf.h -community/testhal/TIVA/TM4C123x/PWM/main.c -community/testhal/TIVA/TM4C123x/PWM/mcuconf.h -community/testhal/TIVA/TM4C123x/SPI/chconf.h -community/testhal/TIVA/TM4C123x/SPI/halconf.h -community/testhal/TIVA/TM4C123x/SPI/main.c -community/testhal/TIVA/TM4C123x/SPI/mcuconf.h -os/common/ports/ARM/compilers/GCC/crt1.c -os/common/ports/ARM/devices/LPC214x/armparams.h -os/common/ports/ARM/devices/LPC214x/lpc214x.h -os/common/ports/ARMCMx/compilers/GCC/crt1.c -os/common/ports/ARMCMx/compilers/GCC/vectors.c -os/common/ports/ARMCMx/devices/K20x/cmparams.h -os/common/ports/ARMCMx/devices/KL2x/cmparams.h -os/common/ports/ARMCMx/devices/STM32F0xx/cmparams.h -os/common/ports/ARMCMx/devices/STM32F1xx/cmparams.h -os/common/ports/ARMCMx/devices/STM32F3xx/cmparams.h -os/common/ports/ARMCMx/devices/STM32F4xx/cmparams.h -os/common/ports/ARMCMx/devices/STM32L0xx/cmparams.h -os/common/ports/ARMCMx/devices/STM32L1xx/cmparams.h -os/common/ports/e200/compilers/GCC/vectors.h -os/common/ports/e200/devices/SPC560BCxx/boot.h -os/common/ports/e200/devices/SPC560BCxx/intc.h -os/common/ports/e200/devices/SPC560BCxx/ppcparams.h -os/common/ports/e200/devices/SPC560Bxx/boot.h -os/common/ports/e200/devices/SPC560Bxx/intc.h -os/common/ports/e200/devices/SPC560Bxx/ppcparams.h -os/common/ports/e200/devices/SPC560Dxx/boot.h -os/common/ports/e200/devices/SPC560Dxx/intc.h -os/common/ports/e200/devices/SPC560Dxx/ppcparams.h -os/common/ports/e200/devices/SPC560Pxx/boot.h -os/common/ports/e200/devices/SPC560Pxx/intc.h -os/common/ports/e200/devices/SPC560Pxx/ppcparams.h -os/common/ports/e200/devices/SPC563Mxx/boot.h -os/common/ports/e200/devices/SPC563Mxx/intc.h -os/common/ports/e200/devices/SPC563Mxx/ppcparams.h -os/common/ports/e200/devices/SPC564Axx/boot.h -os/common/ports/e200/devices/SPC564Axx/intc.h -os/common/ports/e200/devices/SPC564Axx/ppcparams.h -os/common/ports/e200/devices/SPC56ECxx/boot.h -os/common/ports/e200/devices/SPC56ECxx/intc.h -os/common/ports/e200/devices/SPC56ECxx/ppcparams.h -os/common/ports/e200/devices/SPC56ELxx/boot.h -os/common/ports/e200/devices/SPC56ELxx/intc.h -os/common/ports/e200/devices/SPC56ELxx/ppcparams.h -os/common/ports/e200/devices/SPC57EMxx_HSM/boot.h -os/common/ports/e200/devices/SPC57EMxx_HSM/intc.h -os/common/ports/e200/devices/SPC57EMxx_HSM/ppcparams.h -os/ext/CMSIS/include/arm_common_tables.h -os/ext/CMSIS/include/arm_const_structs.h -os/ext/CMSIS/include/arm_math.h -os/ext/CMSIS/include/core_cm0.h -os/ext/CMSIS/include/core_cm0plus.h -os/ext/CMSIS/include/core_cm3.h -os/ext/CMSIS/include/core_cm4.h -os/ext/CMSIS/include/core_cm4_simd.h -os/ext/CMSIS/include/core_cmFunc.h -os/ext/CMSIS/include/core_cmInstr.h -os/ext/CMSIS/KINETIS/kl25z.h -os/ext/CMSIS/KINETIS/mk20d5.h -os/ext/CMSIS/ST/stm32f030x6.h -os/ext/CMSIS/ST/stm32f030x8.h -os/ext/CMSIS/ST/stm32f031x6.h -os/ext/CMSIS/ST/stm32f038xx.h -os/ext/CMSIS/ST/stm32f042x6.h -os/ext/CMSIS/ST/stm32f048xx.h -os/ext/CMSIS/ST/stm32f051x8.h -os/ext/CMSIS/ST/stm32f058xx.h -os/ext/CMSIS/ST/stm32f071xb.h -os/ext/CMSIS/ST/stm32f072xb.h -os/ext/CMSIS/ST/stm32f078xx.h -os/ext/CMSIS/ST/stm32f0xx.h -os/ext/CMSIS/ST/stm32f10x.h -os/ext/CMSIS/ST/stm32f301x8.h -os/ext/CMSIS/ST/stm32f302x8.h -os/ext/CMSIS/ST/stm32f302xc.h -os/ext/CMSIS/ST/stm32f303x8.h -os/ext/CMSIS/ST/stm32f303xc.h -os/ext/CMSIS/ST/stm32f318xx.h -os/ext/CMSIS/ST/stm32f328xx.h -os/ext/CMSIS/ST/stm32f334x8.h -os/ext/CMSIS/ST/stm32f358xx.h -os/ext/CMSIS/ST/stm32f373xc.h -os/ext/CMSIS/ST/stm32f378xx.h -os/ext/CMSIS/ST/stm32f3xx.h -os/ext/CMSIS/ST/stm32f401xc.h -os/ext/CMSIS/ST/stm32f401xe.h -os/ext/CMSIS/ST/stm32f405xx.h -os/ext/CMSIS/ST/stm32f407xx.h -os/ext/CMSIS/ST/stm32f411xe.h -os/ext/CMSIS/ST/stm32f415xx.h -os/ext/CMSIS/ST/stm32f417xx.h -os/ext/CMSIS/ST/stm32f427xx.h -os/ext/CMSIS/ST/stm32f429xx.h -os/ext/CMSIS/ST/stm32f437xx.h -os/ext/CMSIS/ST/stm32f439xx.h -os/ext/CMSIS/ST/stm32f4xx.h -os/ext/CMSIS/ST/stm32l051xx.h -os/ext/CMSIS/ST/stm32l052xx.h -os/ext/CMSIS/ST/stm32l053xx.h -os/ext/CMSIS/ST/stm32l061xx.h -os/ext/CMSIS/ST/stm32l062xx.h -os/ext/CMSIS/ST/stm32l063xx.h -os/ext/CMSIS/ST/stm32l0xx.h -os/ext/CMSIS/ST/stm32l1xx.h -os/ext/CMSIS/ST/system_stm32f0xx.h -os/ext/CMSIS/ST/system_stm32f10x.h -os/ext/CMSIS/ST/system_stm32f3xx.h -os/ext/CMSIS/ST/system_stm32f4xx.h -os/ext/CMSIS/ST/system_stm32l0xx.h -os/ext/CMSIS/ST/system_stm32l1xx.h -os/hal/boards/ARDUINO_MEGA/board.c -os/hal/boards/ARDUINO_MEGA/board.h -os/hal/boards/EA_LPCXPRESSO_11C24/board.c -os/hal/boards/EA_LPCXPRESSO_11C24/board.h -os/hal/boards/EA_LPCXPRESSO_BB_1114/board.c -os/hal/boards/EA_LPCXPRESSO_BB_1114/board.h -os/hal/boards/EA_LPCXPRESSO_BB_11U14/board.c -os/hal/boards/EA_LPCXPRESSO_BB_11U14/board.h -os/hal/boards/EA_LPCXPRESSO_BB_1343/board.c -os/hal/boards/EA_LPCXPRESSO_BB_1343/board.h -os/hal/boards/EA_LPCXPRESSO_LPC812/board.c -os/hal/boards/EA_LPCXPRESSO_LPC812/board.h -os/hal/boards/FREESCALE_FREEDOM_K20D50M/board.c -os/hal/boards/FREESCALE_FREEDOM_K20D50M/board.h -os/hal/boards/FREESCALE_FREEDOM_KL25Z/board.c -os/hal/boards/FREESCALE_FREEDOM_KL25Z/board.h -os/hal/boards/MAPLEMINI_STM32_F103/board.c -os/hal/boards/MAPLEMINI_STM32_F103/board.h -os/hal/boards/MCHCK_K20/board.c -os/hal/boards/MCHCK_K20/board.h -os/hal/boards/NGX_BB_LPC11U14/board.c -os/hal/boards/NGX_BB_LPC11U14/board.h -os/hal/boards/NONSTANDARD_STM32F4_BARTHESS1/board.c -os/hal/boards/NONSTANDARD_STM32F4_BARTHESS1/board.h -os/hal/boards/OLIMEX_AVR_CAN/board.c -os/hal/boards/OLIMEX_AVR_CAN/board.h -os/hal/boards/OLIMEX_AVR_MT_128/board.c -os/hal/boards/OLIMEX_AVR_MT_128/board.h -os/hal/boards/OLIMEX_LPC_P1227/board.c -os/hal/boards/OLIMEX_LPC_P1227/board.h -os/hal/boards/OLIMEX_LPC_P1343/board.c -os/hal/boards/OLIMEX_LPC_P1343/board.h -os/hal/boards/OLIMEX_LPC_P2148/board.c -os/hal/boards/OLIMEX_LPC_P2148/board.h -os/hal/boards/OLIMEX_LPC_P2148/buzzer.c -os/hal/boards/OLIMEX_LPC_P2148/buzzer.h -os/hal/boards/OLIMEX_MSP430_P1611/board.c -os/hal/boards/OLIMEX_MSP430_P1611/board.h -os/hal/boards/OLIMEX_SAM7_EX256/board.c -os/hal/boards/OLIMEX_SAM7_EX256/board.h -os/hal/boards/OLIMEX_SAM7_P256/board.c -os/hal/boards/OLIMEX_SAM7_P256/board.h -os/hal/boards/OLIMEX_STM32_103STK/board.c -os/hal/boards/OLIMEX_STM32_103STK/board.h -os/hal/boards/OLIMEX_STM32_E407/board.c -os/hal/boards/OLIMEX_STM32_E407/board.h -os/hal/boards/OLIMEX_STM32_E407_REV_D/board.c -os/hal/boards/OLIMEX_STM32_E407_REV_D/board.h -os/hal/boards/OLIMEX_STM32_H103/board.c -os/hal/boards/OLIMEX_STM32_H103/board.h -os/hal/boards/OLIMEX_STM32_H407/board.c -os/hal/boards/OLIMEX_STM32_H407/board.h -os/hal/boards/OLIMEX_STM32_LCD/board.c -os/hal/boards/OLIMEX_STM32_LCD/board.h -os/hal/boards/OLIMEX_STM32_P103/board.c -os/hal/boards/OLIMEX_STM32_P103/board.h -os/hal/boards/OLIMEX_STM32_P107/board.c -os/hal/boards/OLIMEX_STM32_P107/board.h -os/hal/boards/OLIMEX_STM32_P407/board.c -os/hal/boards/OLIMEX_STM32_P407/board.h -os/hal/boards/PJRC_TEENSY_3/board.c -os/hal/boards/PJRC_TEENSY_3/board.h -os/hal/boards/RAISONANCE_REVA_STM8S/board.c -os/hal/boards/RAISONANCE_REVA_STM8S/board.h -os/hal/boards/simulator/board.c -os/hal/boards/simulator/board.h -os/hal/boards/ST_EVB_SPC560B/board.c -os/hal/boards/ST_EVB_SPC560B/board.h -os/hal/boards/ST_EVB_SPC560BC/board.c -os/hal/boards/ST_EVB_SPC560BC/board.h -os/hal/boards/ST_EVB_SPC560D/board.c -os/hal/boards/ST_EVB_SPC560D/board.h -os/hal/boards/ST_EVB_SPC560P/board.c -os/hal/boards/ST_EVB_SPC560P/board.h -os/hal/boards/ST_EVB_SPC563M/board.c -os/hal/boards/ST_EVB_SPC563M/board.h -os/hal/boards/ST_EVB_SPC564A/board.c -os/hal/boards/ST_EVB_SPC564A/board.h -os/hal/boards/ST_EVB_SPC56EC/board.c -os/hal/boards/ST_EVB_SPC56EC/board.h -os/hal/boards/ST_EVB_SPC56EL/board.c -os/hal/boards/ST_EVB_SPC56EL/board.h -os/hal/boards/ST_INEMO_M1_DISCOVERY/board.c -os/hal/boards/ST_INEMO_M1_DISCOVERY/board.h -os/hal/boards/ST_NUCLEO_F030R8/board.c -os/hal/boards/ST_NUCLEO_F030R8/board.h -os/hal/boards/ST_NUCLEO_F103RB/board.c -os/hal/boards/ST_NUCLEO_F103RB/board.h -os/hal/boards/ST_NUCLEO_F302R8/board.c -os/hal/boards/ST_NUCLEO_F302R8/board.h -os/hal/boards/ST_NUCLEO_F334R8/board.c -os/hal/boards/ST_NUCLEO_F334R8/board.h -os/hal/boards/ST_NUCLEO_F401RE/board.c -os/hal/boards/ST_NUCLEO_F401RE/board.h -os/hal/boards/ST_NUCLEO_F411RE/board.c -os/hal/boards/ST_NUCLEO_F411RE/board.h -os/hal/boards/ST_NUCLEO_L152RE/board.c -os/hal/boards/ST_NUCLEO_L152RE/board.h -os/hal/boards/ST_STM3210C_EVAL/board.c -os/hal/boards/ST_STM3210C_EVAL/board.h -os/hal/boards/ST_STM3210E_EVAL/board.c -os/hal/boards/ST_STM3210E_EVAL/board.h -os/hal/boards/ST_STM3220G_EVAL/board.c -os/hal/boards/ST_STM3220G_EVAL/board.h -os/hal/boards/ST_STM32373C_EVAL/board.c -os/hal/boards/ST_STM32373C_EVAL/board.h -os/hal/boards/ST_STM32F072B_DISCOVERY/board.c -os/hal/boards/ST_STM32F072B_DISCOVERY/board.h -os/hal/boards/ST_STM32F0_DISCOVERY/board.c -os/hal/boards/ST_STM32F0_DISCOVERY/board.h -os/hal/boards/ST_STM32F3_DISCOVERY/board.c -os/hal/boards/ST_STM32F3_DISCOVERY/board.h -os/hal/boards/ST_STM32F401C_DISCOVERY/board.c -os/hal/boards/ST_STM32F401C_DISCOVERY/board.h -os/hal/boards/ST_STM32F429I_DISCOVERY/board.c -os/hal/boards/ST_STM32F429I_DISCOVERY/board.h -os/hal/boards/ST_STM32F4_DISCOVERY/board.c -os/hal/boards/ST_STM32F4_DISCOVERY/board.h -os/hal/boards/ST_STM32L_DISCOVERY/board.c -os/hal/boards/ST_STM32L_DISCOVERY/board.h -os/hal/boards/ST_STM32VL_DISCOVERY/board.c -os/hal/boards/ST_STM32VL_DISCOVERY/board.h -os/hal/boards/ST_STM8L_DISCOVERY/board.c -os/hal/boards/ST_STM8L_DISCOVERY/board.h -os/hal/boards/ST_STM8S_DISCOVERY/board.c -os/hal/boards/ST_STM8S_DISCOVERY/board.h -os/hal/boards/STUDIEL_AT91SAM7A3_EK/board.c -os/hal/boards/STUDIEL_AT91SAM7A3_EK/board.h -os/hal/include/adc.h -os/hal/include/can.h -os/hal/include/dac.h -os/hal/include/ext.h -os/hal/include/gpt.h -os/hal/include/hal.h -os/hal/include/hal_channels.h -os/hal/include/hal_files.h -os/hal/include/hal_ioblock.h -os/hal/include/hal_mmcsd.h -os/hal/include/hal_queues.h -os/hal/include/hal_streams.h -os/hal/include/i2c.h -os/hal/include/i2s.h -os/hal/include/icu.h -os/hal/include/mac.h -os/hal/include/mii.h -os/hal/include/mmc_spi.h -os/hal/include/pal.h -os/hal/include/pwm.h -os/hal/include/rtc.h -os/hal/include/sdc.h -os/hal/include/serial.h -os/hal/include/serial_usb.h -os/hal/include/spi.h -os/hal/include/st.h -os/hal/include/uart.h -os/hal/include/usb.h -os/hal/lib/streams/chprintf.c -os/hal/lib/streams/chprintf.h -os/hal/lib/streams/memstreams.c -os/hal/lib/streams/memstreams.h -os/hal/lib/streams/nullstreams.c -os/hal/lib/streams/nullstreams.h -os/hal/osal/nil/osal.c -os/hal/osal/nil/osal.h -os/hal/osal/os-less/ARMCMx/osal.c -os/hal/osal/os-less/ARMCMx/osal.h -os/hal/osal/rt/osal.c -os/hal/osal/rt/osal.h -os/hal/ports/AVR/adc_lld.c -os/hal/ports/AVR/adc_lld.h -os/hal/ports/AVR/avr_pins.h -os/hal/ports/AVR/avr_timers.h -os/hal/ports/AVR/gpt_lld.c -os/hal/ports/AVR/gpt_lld.h -os/hal/ports/AVR/hal_lld.c -os/hal/ports/AVR/hal_lld.h -os/hal/ports/AVR/i2c_lld.c -os/hal/ports/AVR/i2c_lld.h -os/hal/ports/AVR/icu_lld.c -os/hal/ports/AVR/icu_lld.h -os/hal/ports/AVR/pal_lld.c -os/hal/ports/AVR/pal_lld.h -os/hal/ports/AVR/pwm_lld.c -os/hal/ports/AVR/pwm_lld.h -os/hal/ports/AVR/serial_lld.c -os/hal/ports/AVR/serial_lld.h -os/hal/ports/AVR/spi_lld.c -os/hal/ports/AVR/spi_lld.h -os/hal/ports/AVR/st_lld.c -os/hal/ports/AVR/st_lld.h -os/hal/ports/common/ARMCMx/nvic.c -os/hal/ports/common/ARMCMx/nvic.h -os/hal/ports/KINETIS/K20x/gpt_lld.c -os/hal/ports/KINETIS/K20x/gpt_lld.h -os/hal/ports/KINETIS/K20x/hal_lld.c -os/hal/ports/KINETIS/K20x/hal_lld.h -os/hal/ports/KINETIS/K20x/kinetis_registry.h -os/hal/ports/KINETIS/K20x/pal_lld.c -os/hal/ports/KINETIS/K20x/pal_lld.h -os/hal/ports/KINETIS/K20x/serial_lld.c -os/hal/ports/KINETIS/K20x/serial_lld.h -os/hal/ports/KINETIS/K20x/spi_lld.c -os/hal/ports/KINETIS/K20x/spi_lld.h -os/hal/ports/KINETIS/K20x/st_lld.c -os/hal/ports/KINETIS/K20x/st_lld.h -os/hal/ports/KINETIS/KL2x/hal_lld.c -os/hal/ports/KINETIS/KL2x/hal_lld.h -os/hal/ports/KINETIS/KL2x/kinetis_registry.h -os/hal/ports/KINETIS/KL2x/kinetis_tpm.h -os/hal/ports/KINETIS/KL2x/pal_lld.c -os/hal/ports/KINETIS/KL2x/pal_lld.h -os/hal/ports/KINETIS/KL2x/pwm_lld.c -os/hal/ports/KINETIS/KL2x/pwm_lld.h -os/hal/ports/KINETIS/KL2x/serial_lld.c -os/hal/ports/KINETIS/KL2x/serial_lld.h -os/hal/ports/KINETIS/KL2x/st_lld.c -os/hal/ports/KINETIS/KL2x/st_lld.h -os/hal/ports/KINETIS/LLD/adc_lld.c -os/hal/ports/KINETIS/LLD/adc_lld.h -os/hal/ports/KINETIS/LLD/ext_lld.c -os/hal/ports/KINETIS/LLD/ext_lld.h -os/hal/ports/KINETIS/LLD/i2c_lld.c -os/hal/ports/KINETIS/LLD/i2c_lld.h -os/hal/ports/LPC/LPC214x/hal_lld.c -os/hal/ports/LPC/LPC214x/hal_lld.h -os/hal/ports/LPC/LPC214x/pal_lld.c -os/hal/ports/LPC/LPC214x/pal_lld.h -os/hal/ports/LPC/LPC214x/serial_lld.c -os/hal/ports/LPC/LPC214x/serial_lld.h -os/hal/ports/LPC/LPC214x/spi_lld.c -os/hal/ports/LPC/LPC214x/spi_lld.h -os/hal/ports/LPC/LPC214x/st_lld.c -os/hal/ports/LPC/LPC214x/st_lld.h -os/hal/ports/LPC/LPC214x/vic.c -os/hal/ports/LPC/LPC214x/vic.h -os/hal/ports/simulator/win32/hal_lld.c -os/hal/ports/simulator/win32/hal_lld.h -os/hal/ports/simulator/win32/serial_lld.c -os/hal/ports/simulator/win32/serial_lld.h -os/hal/ports/simulator/console.c -os/hal/ports/simulator/console.h -os/hal/ports/simulator/pal_lld.c -os/hal/ports/simulator/pal_lld.h -os/hal/ports/simulator/st_lld.c -os/hal/ports/simulator/st_lld.h -os/hal/ports/STM32/LLD/DACv1/dac_lld.c -os/hal/ports/STM32/LLD/DACv1/dac_lld.h -os/hal/ports/STM32/LLD/DMAv1/stm32_dma.c -os/hal/ports/STM32/LLD/DMAv1/stm32_dma.h -os/hal/ports/STM32/LLD/GPIOv1/pal_lld.c -os/hal/ports/STM32/LLD/GPIOv1/pal_lld.h -os/hal/ports/STM32/LLD/GPIOv2/pal_lld.c -os/hal/ports/STM32/LLD/GPIOv2/pal_lld.h -os/hal/ports/STM32/LLD/I2Cv1/i2c_lld.c -os/hal/ports/STM32/LLD/I2Cv1/i2c_lld.h -os/hal/ports/STM32/LLD/I2Cv2/i2c_lld.c -os/hal/ports/STM32/LLD/I2Cv2/i2c_lld.h -os/hal/ports/STM32/LLD/OTGv1/stm32_otg.h -os/hal/ports/STM32/LLD/OTGv1/usb_lld.c -os/hal/ports/STM32/LLD/OTGv1/usb_lld.h -os/hal/ports/STM32/LLD/RTCv1/rtc_lld.c -os/hal/ports/STM32/LLD/RTCv1/rtc_lld.h -os/hal/ports/STM32/LLD/RTCv2/rtc_lld.c -os/hal/ports/STM32/LLD/RTCv2/rtc_lld.h -os/hal/ports/STM32/LLD/SPIv1/i2s_lld.c -os/hal/ports/STM32/LLD/SPIv1/i2s_lld.h -os/hal/ports/STM32/LLD/SPIv1/spi_lld.c -os/hal/ports/STM32/LLD/SPIv1/spi_lld.h -os/hal/ports/STM32/LLD/SPIv2/spi_lld.c -os/hal/ports/STM32/LLD/SPIv2/spi_lld.h -os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c -os/hal/ports/STM32/LLD/TIMv1/gpt_lld.h -os/hal/ports/STM32/LLD/TIMv1/icu_lld.c -os/hal/ports/STM32/LLD/TIMv1/icu_lld.h -os/hal/ports/STM32/LLD/TIMv1/pwm_lld.c -os/hal/ports/STM32/LLD/TIMv1/pwm_lld.h -os/hal/ports/STM32/LLD/TIMv1/st_lld.c -os/hal/ports/STM32/LLD/TIMv1/st_lld.h -os/hal/ports/STM32/LLD/TIMv1/stm32_tim.h -os/hal/ports/STM32/LLD/USARTv1/serial_lld.c -os/hal/ports/STM32/LLD/USARTv1/serial_lld.h -os/hal/ports/STM32/LLD/USARTv1/uart_lld.c -os/hal/ports/STM32/LLD/USARTv1/uart_lld.h -os/hal/ports/STM32/LLD/USARTv2/serial_lld.c -os/hal/ports/STM32/LLD/USARTv2/serial_lld.h -os/hal/ports/STM32/LLD/USARTv2/uart_lld.c -os/hal/ports/STM32/LLD/USARTv2/uart_lld.h -os/hal/ports/STM32/LLD/USBv1/stm32_usb.h -os/hal/ports/STM32/LLD/USBv1/usb_lld.c -os/hal/ports/STM32/LLD/USBv1/usb_lld.h -os/hal/ports/STM32/LLD/can_lld.c -os/hal/ports/STM32/LLD/can_lld.h -os/hal/ports/STM32/LLD/ext_lld.c -os/hal/ports/STM32/LLD/ext_lld.h -os/hal/ports/STM32/LLD/mac_lld.c -os/hal/ports/STM32/LLD/mac_lld.h -os/hal/ports/STM32/LLD/sdc_lld.c -os/hal/ports/STM32/LLD/sdc_lld.h -os/hal/ports/STM32/STM32F0xx/adc_lld.c -os/hal/ports/STM32/STM32F0xx/adc_lld.h -os/hal/ports/STM32/STM32F0xx/ext_lld_isr.c -os/hal/ports/STM32/STM32F0xx/ext_lld_isr.h -os/hal/ports/STM32/STM32F0xx/hal_lld.c -os/hal/ports/STM32/STM32F0xx/hal_lld.h -os/hal/ports/STM32/STM32F0xx/stm32_dma.c -os/hal/ports/STM32/STM32F0xx/stm32_dma.h -os/hal/ports/STM32/STM32F0xx/stm32_isr.h -os/hal/ports/STM32/STM32F0xx/stm32_rcc.h -os/hal/ports/STM32/STM32F0xx/stm32_registry.h -os/hal/ports/STM32/STM32F1xx/adc_lld.c -os/hal/ports/STM32/STM32F1xx/adc_lld.h -os/hal/ports/STM32/STM32F1xx/ext_lld_isr.c -os/hal/ports/STM32/STM32F1xx/ext_lld_isr.h -os/hal/ports/STM32/STM32F1xx/hal_lld.c -os/hal/ports/STM32/STM32F1xx/hal_lld.h -os/hal/ports/STM32/STM32F1xx/hal_lld_f100.h -os/hal/ports/STM32/STM32F1xx/hal_lld_f103.h -os/hal/ports/STM32/STM32F1xx/hal_lld_f105_f107.h -os/hal/ports/STM32/STM32F1xx/stm32_dma.c -os/hal/ports/STM32/STM32F1xx/stm32_dma.h -os/hal/ports/STM32/STM32F1xx/stm32_isr.h -os/hal/ports/STM32/STM32F1xx/stm32_rcc.h -os/hal/ports/STM32/STM32F1xx/stm32_registry.h -os/hal/ports/STM32/STM32F37x/adc_lld.c -os/hal/ports/STM32/STM32F37x/adc_lld.h -os/hal/ports/STM32/STM32F37x/ext_lld_isr.c -os/hal/ports/STM32/STM32F37x/ext_lld_isr.h -os/hal/ports/STM32/STM32F37x/hal_lld.c -os/hal/ports/STM32/STM32F37x/hal_lld.h -os/hal/ports/STM32/STM32F37x/stm32_dma.c -os/hal/ports/STM32/STM32F37x/stm32_dma.h -os/hal/ports/STM32/STM32F37x/stm32_isr.h -os/hal/ports/STM32/STM32F37x/stm32_rcc.h -os/hal/ports/STM32/STM32F37x/stm32_registry.h -os/hal/ports/STM32/STM32F3xx/adc_lld.c -os/hal/ports/STM32/STM32F3xx/adc_lld.h -os/hal/ports/STM32/STM32F3xx/ext_lld_isr.c -os/hal/ports/STM32/STM32F3xx/ext_lld_isr.h -os/hal/ports/STM32/STM32F3xx/hal_lld.c -os/hal/ports/STM32/STM32F3xx/hal_lld.h -os/hal/ports/STM32/STM32F3xx/stm32_dma.c -os/hal/ports/STM32/STM32F3xx/stm32_dma.h -os/hal/ports/STM32/STM32F3xx/stm32_isr.h -os/hal/ports/STM32/STM32F3xx/stm32_rcc.h -os/hal/ports/STM32/STM32F3xx/stm32_registry.h -os/hal/ports/STM32/STM32F4xx/adc_lld.c -os/hal/ports/STM32/STM32F4xx/adc_lld.h -os/hal/ports/STM32/STM32F4xx/ext_lld_isr.c -os/hal/ports/STM32/STM32F4xx/ext_lld_isr.h -os/hal/ports/STM32/STM32F4xx/hal_lld.c -os/hal/ports/STM32/STM32F4xx/hal_lld.h -os/hal/ports/STM32/STM32F4xx/stm32_dma.c -os/hal/ports/STM32/STM32F4xx/stm32_dma.h -os/hal/ports/STM32/STM32F4xx/stm32_isr.h -os/hal/ports/STM32/STM32F4xx/stm32_rcc.h -os/hal/ports/STM32/STM32F4xx/stm32_registry.h -os/hal/ports/STM32/STM32L1xx/adc_lld.c -os/hal/ports/STM32/STM32L1xx/adc_lld.h -os/hal/ports/STM32/STM32L1xx/ext_lld_isr.c -os/hal/ports/STM32/STM32L1xx/ext_lld_isr.h -os/hal/ports/STM32/STM32L1xx/hal_lld.c -os/hal/ports/STM32/STM32L1xx/hal_lld.h -os/hal/ports/STM32/STM32L1xx/stm32_dma.c -os/hal/ports/STM32/STM32L1xx/stm32_dma.h -os/hal/ports/STM32/STM32L1xx/stm32_isr.h -os/hal/ports/STM32/STM32L1xx/stm32_rcc.h -os/hal/ports/STM32/STM32L1xx/stm32_registry.h -os/hal/src/adc.c -os/hal/src/can.c -os/hal/src/dac.c -os/hal/src/ext.c -os/hal/src/gpt.c -os/hal/src/hal.c -os/hal/src/hal_mmcsd.c -os/hal/src/hal_queues.c -os/hal/src/i2c.c -os/hal/src/i2s.c -os/hal/src/icu.c -os/hal/src/mac.c -os/hal/src/mmc_spi.c -os/hal/src/pal.c -os/hal/src/pwm.c -os/hal/src/rtc.c -os/hal/src/sdc.c -os/hal/src/serial.c -os/hal/src/serial_usb.c -os/hal/src/spi.c -os/hal/src/st.c -os/hal/src/uart.c -os/hal/src/usb.c -os/hal/templates/osal/osal.c -os/hal/templates/osal/osal.h -os/hal/templates/adc_lld.c -os/hal/templates/adc_lld.h -os/hal/templates/can_lld.c -os/hal/templates/can_lld.h -os/hal/templates/dac_lld.c -os/hal/templates/dac_lld.h -os/hal/templates/ext_lld.c -os/hal/templates/ext_lld.h -os/hal/templates/gpt_lld.c -os/hal/templates/gpt_lld.h -os/hal/templates/hal_lld.c -os/hal/templates/hal_lld.h -os/hal/templates/halconf.h -os/hal/templates/i2c_lld.c -os/hal/templates/i2c_lld.h -os/hal/templates/i2s_lld.c -os/hal/templates/i2s_lld.h -os/hal/templates/icu_lld.c -os/hal/templates/icu_lld.h -os/hal/templates/mac_lld.c -os/hal/templates/mac_lld.h -os/hal/templates/mcuconf.h -os/hal/templates/pal_lld.c -os/hal/templates/pal_lld.h -os/hal/templates/pwm_lld.c -os/hal/templates/pwm_lld.h -os/hal/templates/rtc_lld.c -os/hal/templates/rtc_lld.h -os/hal/templates/sdc_lld.c -os/hal/templates/sdc_lld.h -os/hal/templates/serial_lld.c -os/hal/templates/serial_lld.h -os/hal/templates/spi_lld.c -os/hal/templates/spi_lld.h -os/hal/templates/st_lld.c -os/hal/templates/st_lld.h -os/hal/templates/uart_lld.c -os/hal/templates/uart_lld.h -os/hal/templates/usb_lld.c -os/hal/templates/usb_lld.h -os/nil/include/nil.h -os/nil/ports/ARMCMx/compilers/GCC/niltypes.h -os/nil/ports/ARMCMx/nilcore.c -os/nil/ports/ARMCMx/nilcore.h -os/nil/ports/ARMCMx/nilcore_timer.h -os/nil/ports/ARMCMx/nilcore_v6m.c -os/nil/ports/ARMCMx/nilcore_v6m.h -os/nil/ports/ARMCMx/nilcore_v7m.c -os/nil/ports/ARMCMx/nilcore_v7m.h -os/nil/ports/AVR/compilers/GCC/niltypes.h -os/nil/ports/AVR/nilcore.c -os/nil/ports/AVR/nilcore.h -os/nil/ports/AVR/nilcore_timer.h -os/nil/ports/e200/compilers/GCC/niltypes.h -os/nil/ports/e200/nilcore.c -os/nil/ports/e200/nilcore.h -os/nil/src/nil.c -os/nil/templates/nilconf.h -os/nil/templates/nilcore.c -os/nil/templates/nilcore.h -os/nil/templates/nilcore_timer.h -os/nil/templates/niltypes.h -os/rt/include/ch.h -os/rt/include/chbsem.h -os/rt/include/chcond.h -os/rt/include/chdebug.h -os/rt/include/chdynamic.h -os/rt/include/chevents.h -os/rt/include/chheap.h -os/rt/include/chlicense.h -os/rt/include/chmboxes.h -os/rt/include/chmemcore.h -os/rt/include/chmempools.h -os/rt/include/chmsg.h -os/rt/include/chmtx.h -os/rt/include/chqueues.h -os/rt/include/chregistry.h -os/rt/include/chschd.h -os/rt/include/chsem.h -os/rt/include/chstats.h -os/rt/include/chstreams.h -os/rt/include/chsys.h -os/rt/include/chsystypes.h -os/rt/include/chthreads.h -os/rt/include/chtm.h -os/rt/include/chvt.h -os/rt/ports/ARM/compilers/GCC/chtypes.h -os/rt/ports/ARM/chcore.c -os/rt/ports/ARM/chcore.h -os/rt/ports/ARM/chcore_timer.h -os/rt/ports/ARMCMx/cmsis_os/cmsis_os.c -os/rt/ports/ARMCMx/cmsis_os/cmsis_os.h -os/rt/ports/ARMCMx/compilers/GCC/chtypes.h -os/rt/ports/ARMCMx/compilers/IAR/chtypes.h -os/rt/ports/ARMCMx/compilers/RVCT/chtypes.h -os/rt/ports/ARMCMx/chcore.c -os/rt/ports/ARMCMx/chcore.h -os/rt/ports/ARMCMx/chcore_timer.h -os/rt/ports/ARMCMx/chcore_v6m.c -os/rt/ports/ARMCMx/chcore_v6m.h -os/rt/ports/ARMCMx/chcore_v7m.c -os/rt/ports/ARMCMx/chcore_v7m.h -os/rt/ports/AVR/compilers/GCC/chtypes.h -os/rt/ports/AVR/chcore.c -os/rt/ports/AVR/chcore.h -os/rt/ports/e200/compilers/GCC/chtypes.h -os/rt/ports/e200/chcore.c -os/rt/ports/e200/chcore.h -os/rt/ports/SIMIA32/compilers/GCC/chtypes.h -os/rt/ports/SIMIA32/chcore.c -os/rt/ports/SIMIA32/chcore.h -os/rt/src/chcond.c -os/rt/src/chdebug.c -os/rt/src/chdynamic.c -os/rt/src/chevents.c -os/rt/src/chheap.c -os/rt/src/chmboxes.c -os/rt/src/chmemcore.c -os/rt/src/chmempools.c -os/rt/src/chmsg.c -os/rt/src/chmtx.c -os/rt/src/chqueues.c -os/rt/src/chregistry.c -os/rt/src/chschd.c -os/rt/src/chsem.c -os/rt/src/chstats.c -os/rt/src/chsys.c -os/rt/src/chthreads.c -os/rt/src/chtm.c -os/rt/src/chvt.c -os/rt/templates/meta/module.c -os/rt/templates/meta/module.h -os/rt/templates/chconf.h -os/rt/templates/chcore.c -os/rt/templates/chcore.h -os/rt/templates/chtypes.h -os/various/cpp_wrappers/ch.cpp -os/various/cpp_wrappers/ch.hpp -os/various/cpp_wrappers/syscalls_cpp.cpp -os/various/cpp_wrappers/syscalls_cpp.hpp -os/various/devices_lib/accel/lis302dl.c -os/various/devices_lib/accel/lis302dl.h -os/various/devices_lib/lcd/lcd3310.c -os/various/devices_lib/lcd/lcd3310.h -os/various/fatfs_bindings/fatfs_diskio.c -os/various/fatfs_bindings/fatfs_syscall.c -os/various/lwip_bindings/arch/cc.h -os/various/lwip_bindings/arch/perf.h -os/various/lwip_bindings/arch/sys_arch.c -os/various/lwip_bindings/arch/sys_arch.h -os/various/lwip_bindings/lwipthread.c -os/various/lwip_bindings/lwipthread.h -os/various/evtimer.c -os/various/evtimer.h -os/various/shell.c -os/various/shell.h -os/various/syscalls.c -chconf.h -halconf.h -halconf_community.h -main.c -mcuconf.h -mcuconf_community.h -Makefile diff --git a/testhal/STM32/STM32F4xx/EICU/EICU_F4x.includes b/testhal/STM32/STM32F4xx/EICU/EICU_F4x.includes deleted file mode 100644 index a5e7917..0000000 --- a/testhal/STM32/STM32F4xx/EICU/EICU_F4x.includes +++ /dev/null @@ -1,769 +0,0 @@ -. -community/demos/NRF51/RT-WVSHARE_BLE400 -community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D -community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/res -community/demos/TIVA/RT-TM4C123G-LAUNCHPAD -community/demos/TIVA/RT-TM4C1294-LAUNCHPAD -community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP -community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/web -community/os/common/ports/ARMCMx/devices/NRF51822 -community/os/common/ports/ARMCMx/devices/TM4C123x -community/os/common/ports/ARMCMx/devices/TM4C129x -community/os/hal/boards/NONSTANDARD_STM32F4_BARTHESS2 -community/os/hal/boards/ST_STM32F0308_DISCOVERY -community/os/hal/boards/TI_TM4C123G_LAUNCHPAD -community/os/hal/boards/TI_TM4C1294_LAUNCHPAD -community/os/hal/boards/WVSHARE_BLE400 -community/os/hal/include -community/os/hal/ports/NRF51/NRF51822 -community/os/hal/ports/STM32/LLD/DMA2Dv1 -community/os/hal/ports/STM32/LLD/FSMCv1 -community/os/hal/ports/STM32/LLD/LTDCv1 -community/os/hal/ports/STM32/LLD/TIMv1 -community/os/hal/ports/TIVA/LLD -community/os/hal/ports/TIVA/TM4C123x -community/os/hal/ports/TIVA/TM4C129x -community/os/various -community/os/various/devices_lib/lcd -community/os/various/devices_lib/mems -community/os/various/devices_lib/others -community/os/various/devices_lib/rf -community/testhal/STM32/STM32F0xx/onewire -community/testhal/STM32/STM32F1xx/onewire -community/testhal/STM32/STM32F4xx/EICU -community/testhal/STM32/STM32F4xx/EICU/community/demos/NRF51/RT-WVSHARE_BLE400 -community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D -community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/res -community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C123G-LAUNCHPAD -community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD -community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP -community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/web -community/testhal/STM32/STM32F4xx/EICU/community/os/common/ports/ARMCMx/devices/NRF51822 -community/testhal/STM32/STM32F4xx/EICU/community/os/common/ports/ARMCMx/devices/TM4C123x -community/testhal/STM32/STM32F4xx/EICU/community/os/common/ports/ARMCMx/devices/TM4C129x -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/NONSTANDARD_STM32F4_BARTHESS2 -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/ST_STM32F0308_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/TI_TM4C123G_LAUNCHPAD -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/TI_TM4C1294_LAUNCHPAD -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/WVSHARE_BLE400 -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/include -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822 -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/DMA2Dv1 -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1 -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/LTDCv1 -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/TIMv1 -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C123x -community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C129x -community/testhal/STM32/STM32F4xx/EICU/community/os/various -community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/lcd -community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems -community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/others -community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/rf -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/NRF51/RT-WVSHARE_BLE400 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/res -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C123G-LAUNCHPAD -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/web -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/common/ports/ARMCMx/devices/NRF51822 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/common/ports/ARMCMx/devices/TM4C123x -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/common/ports/ARMCMx/devices/TM4C129x -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/NONSTANDARD_STM32F4_BARTHESS2 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/ST_STM32F0308_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/TI_TM4C123G_LAUNCHPAD -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/TI_TM4C1294_LAUNCHPAD -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/WVSHARE_BLE400 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/include -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/DMA2Dv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/LTDCv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/TIMv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C123x -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C129x -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/lcd -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/others -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/rf -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/NRF51/RT-WVSHARE_BLE400 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/STM32/RT-STM32F429-DISCOVERY-DMA2D/res -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C123G-LAUNCHPAD -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/web -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/common/ports/ARMCMx/devices/NRF51822 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/common/ports/ARMCMx/devices/TM4C123x -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/common/ports/ARMCMx/devices/TM4C129x -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/NONSTANDARD_STM32F4_BARTHESS2 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/ST_STM32F0308_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/TI_TM4C123G_LAUNCHPAD -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/TI_TM4C1294_LAUNCHPAD -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/boards/WVSHARE_BLE400 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/include -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/NRF51/NRF51822 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/DMA2Dv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/FSMCv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/LTDCv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/STM32/LLD/TIMv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/LLD -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C123x -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/hal/ports/TIVA/TM4C129x -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/lcd -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/mems -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/others -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/os/various/devices_lib/rf -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F0xx/onewire -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F1xx/onewire -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/EXT -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/GPT -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/I2C -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/PWM -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/SPI -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARM/devices/LPC214x -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/K20x -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/KL2x -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32F0xx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32F1xx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32F3xx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32F4xx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32L0xx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32L1xx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560BCxx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Bxx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Dxx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Pxx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC563Mxx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC564Axx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC56ECxx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC56ELxx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC57EMxx_HSM -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/KINETIS -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ARDUINO_MEGA -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_11C24 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_1114 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_11U14 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_1343 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_LPC812 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/FREESCALE_FREEDOM_K20D50M -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/FREESCALE_FREEDOM_KL25Z -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/MAPLEMINI_STM32_F103 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/MCHCK_K20 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/NGX_BB_LPC11U14 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/NONSTANDARD_STM32F4_BARTHESS1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_AVR_CAN -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_AVR_MT_128 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P1227 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P1343 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P2148 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_MSP430_P1611 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_SAM7_EX256 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_SAM7_P256 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_103STK -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_E407 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_E407_REV_D -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_H103 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_H407 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_LCD -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P103 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P107 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P407 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/PJRC_TEENSY_3 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/RAISONANCE_REVA_STM8S -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/simulator -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560B -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560BC -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560D -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560P -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC563M -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC564A -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC56EC -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC56EL -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_INEMO_M1_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F030R8 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F103RB -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F302R8 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F334R8 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F401RE -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F411RE -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_L152RE -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3210C_EVAL -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3210E_EVAL -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3220G_EVAL -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32373C_EVAL -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F072B_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F0_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F3_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F401C_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F429I_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F4_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32L_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32VL_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM8L_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM8S_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/STUDIEL_AT91SAM7A3_EK -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/lib/streams -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/nil -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/os-less/ARMCMx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/rt -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/common/ARMCMx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/LLD -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/win32 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/DACv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/DMAv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/GPIOv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/GPIOv2 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/I2Cv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/I2Cv2 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/OTGv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/RTCv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/RTCv2 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/SPIv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/SPIv2 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv2 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USBv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/osal -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/include -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/AVR -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/AVR/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/e200 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/e200/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/templates -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARM -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARM/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/cmsis_os -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/compilers/IAR -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/compilers/RVCT -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/AVR -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/AVR/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/e200 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/e200/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/SIMIA32 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/SIMIA32/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/templates -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/templates/meta -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/devices_lib/accel -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/devices_lib/lcd -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/lwip_bindings -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/lwip_bindings/arch -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/EXT -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/GPT -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/I2C -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/PWM -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/SPI -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARM/devices/LPC214x -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/K20x -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/KL2x -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32F0xx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32F1xx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32F3xx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32F4xx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32L0xx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32L1xx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560BCxx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Bxx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Dxx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Pxx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC563Mxx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC564Axx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC56ECxx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC56ELxx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC57EMxx_HSM -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/KINETIS -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ARDUINO_MEGA -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_11C24 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_1114 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_11U14 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_1343 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_LPC812 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/FREESCALE_FREEDOM_K20D50M -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/FREESCALE_FREEDOM_KL25Z -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/MAPLEMINI_STM32_F103 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/MCHCK_K20 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/NGX_BB_LPC11U14 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/NONSTANDARD_STM32F4_BARTHESS1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_AVR_CAN -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_AVR_MT_128 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P1227 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P1343 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P2148 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_MSP430_P1611 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_SAM7_EX256 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_SAM7_P256 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_103STK -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_E407 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_E407_REV_D -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_H103 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_H407 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_LCD -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P103 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P107 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P407 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/PJRC_TEENSY_3 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/RAISONANCE_REVA_STM8S -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/simulator -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560B -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560BC -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560D -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560P -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC563M -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC564A -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC56EC -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC56EL -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_INEMO_M1_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F030R8 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F103RB -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F302R8 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F334R8 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F401RE -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F411RE -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_L152RE -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3210C_EVAL -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3210E_EVAL -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3220G_EVAL -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32373C_EVAL -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F072B_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F0_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F3_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F401C_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F429I_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F4_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32L_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32VL_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM8L_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM8S_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/STUDIEL_AT91SAM7A3_EK -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/include -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/lib/streams -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/nil -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/os-less/ARMCMx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/rt -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/common/ARMCMx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/LLD -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/win32 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/DACv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/DMAv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/GPIOv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/GPIOv2 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/I2Cv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/I2Cv2 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/OTGv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/RTCv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/RTCv2 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/SPIv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/SPIv2 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv2 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USBv1 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/osal -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/include -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/AVR -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/AVR/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/e200 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/e200/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/nil/templates -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/include -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARM -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARM/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/cmsis_os -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/compilers/IAR -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/compilers/RVCT -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/AVR -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/AVR/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/e200 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/e200/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/SIMIA32 -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/SIMIA32/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/templates -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/rt/templates/meta -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/devices_lib/accel -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/devices_lib/lcd -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/lwip_bindings -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/EICU/os/various/lwip_bindings/arch -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_NAND -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SDRAM -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/FSMC_SRAM -community/testhal/STM32/STM32F4xx/EICU/community/testhal/STM32/STM32F4xx/onewire -community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/EXT -community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/GPT -community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/I2C -community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/PWM -community/testhal/STM32/STM32F4xx/EICU/community/testhal/TIVA/TM4C123x/SPI -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARM/devices/LPC214x -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/K20x -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/KL2x -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32F0xx -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32F1xx -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32F3xx -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32F4xx -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32L0xx -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/ARMCMx/devices/STM32L1xx -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560BCxx -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Bxx -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Dxx -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC560Pxx -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC563Mxx -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC564Axx -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC56ECxx -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC56ELxx -community/testhal/STM32/STM32F4xx/EICU/os/common/ports/e200/devices/SPC57EMxx_HSM -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/include -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/KINETIS -community/testhal/STM32/STM32F4xx/EICU/os/ext/CMSIS/ST -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ARDUINO_MEGA -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_11C24 -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_1114 -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_11U14 -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_BB_1343 -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/EA_LPCXPRESSO_LPC812 -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/FREESCALE_FREEDOM_K20D50M -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/FREESCALE_FREEDOM_KL25Z -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/MAPLEMINI_STM32_F103 -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/MCHCK_K20 -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/NGX_BB_LPC11U14 -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/NONSTANDARD_STM32F4_BARTHESS1 -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_AVR_CAN -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_AVR_MT_128 -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P1227 -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P1343 -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_LPC_P2148 -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_MSP430_P1611 -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_SAM7_EX256 -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_SAM7_P256 -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_103STK -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_E407 -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_E407_REV_D -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_H103 -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_H407 -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_LCD -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P103 -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P107 -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/OLIMEX_STM32_P407 -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/PJRC_TEENSY_3 -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/RAISONANCE_REVA_STM8S -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/simulator -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560B -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560BC -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560D -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC560P -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC563M -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC564A -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC56EC -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_EVB_SPC56EL -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_INEMO_M1_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F030R8 -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F103RB -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F302R8 -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F334R8 -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F401RE -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_F411RE -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_NUCLEO_L152RE -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3210C_EVAL -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3210E_EVAL -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM3220G_EVAL -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32373C_EVAL -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F072B_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F0_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F3_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F401C_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F429I_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32F4_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32L_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM32VL_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM8L_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/ST_STM8S_DISCOVERY -community/testhal/STM32/STM32F4xx/EICU/os/hal/boards/STUDIEL_AT91SAM7A3_EK -community/testhal/STM32/STM32F4xx/EICU/os/hal/include -community/testhal/STM32/STM32F4xx/EICU/os/hal/lib/streams -community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/nil -community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/os-less/ARMCMx -community/testhal/STM32/STM32F4xx/EICU/os/hal/osal/rt -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/AVR -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/common/ARMCMx -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/K20x -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/KL2x -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/KINETIS/LLD -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/LPC/LPC214x -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/simulator/win32 -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/DACv1 -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/DMAv1 -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/GPIOv1 -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/GPIOv2 -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/I2Cv1 -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/I2Cv2 -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/OTGv1 -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/RTCv1 -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/RTCv2 -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/SPIv1 -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/SPIv2 -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/TIMv1 -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv1 -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USARTv2 -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/LLD/USBv1 -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F0xx -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F1xx -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F37x -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F3xx -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32F4xx -community/testhal/STM32/STM32F4xx/EICU/os/hal/ports/STM32/STM32L1xx -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates -community/testhal/STM32/STM32F4xx/EICU/os/hal/templates/osal -community/testhal/STM32/STM32F4xx/EICU/os/nil/include -community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx -community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/ARMCMx/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/AVR -community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/AVR/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/e200 -community/testhal/STM32/STM32F4xx/EICU/os/nil/ports/e200/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/os/nil/templates -community/testhal/STM32/STM32F4xx/EICU/os/rt/include -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARM -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARM/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/cmsis_os -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/compilers/IAR -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/ARMCMx/compilers/RVCT -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/AVR -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/AVR/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/e200 -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/e200/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/SIMIA32 -community/testhal/STM32/STM32F4xx/EICU/os/rt/ports/SIMIA32/compilers/GCC -community/testhal/STM32/STM32F4xx/EICU/os/rt/templates -community/testhal/STM32/STM32F4xx/EICU/os/rt/templates/meta -community/testhal/STM32/STM32F4xx/EICU/os/various -community/testhal/STM32/STM32F4xx/EICU/os/various/devices_lib/accel -community/testhal/STM32/STM32F4xx/EICU/os/various/devices_lib/lcd -community/testhal/STM32/STM32F4xx/EICU/os/various/lwip_bindings -community/testhal/STM32/STM32F4xx/EICU/os/various/lwip_bindings/arch -community/testhal/STM32/STM32F4xx/FSMC_NAND -community/testhal/STM32/STM32F4xx/FSMC_SDRAM -community/testhal/STM32/STM32F4xx/FSMC_SRAM -community/testhal/STM32/STM32F4xx/onewire -community/testhal/TIVA/TM4C123x/EXT -community/testhal/TIVA/TM4C123x/GPT -community/testhal/TIVA/TM4C123x/I2C -community/testhal/TIVA/TM4C123x/PWM -community/testhal/TIVA/TM4C123x/SPI -os/common/ports/ARM/devices/LPC214x -os/common/ports/ARMCMx/devices/K20x -os/common/ports/ARMCMx/devices/KL2x -os/common/ports/ARMCMx/devices/STM32F0xx -os/common/ports/ARMCMx/devices/STM32F1xx -os/common/ports/ARMCMx/devices/STM32F3xx -os/common/ports/ARMCMx/devices/STM32F4xx -os/common/ports/ARMCMx/devices/STM32L0xx -os/common/ports/ARMCMx/devices/STM32L1xx -os/common/ports/e200/compilers/GCC -os/common/ports/e200/devices/SPC560BCxx -os/common/ports/e200/devices/SPC560Bxx -os/common/ports/e200/devices/SPC560Dxx -os/common/ports/e200/devices/SPC560Pxx -os/common/ports/e200/devices/SPC563Mxx -os/common/ports/e200/devices/SPC564Axx -os/common/ports/e200/devices/SPC56ECxx -os/common/ports/e200/devices/SPC56ELxx -os/common/ports/e200/devices/SPC57EMxx_HSM -os/ext/CMSIS/include -os/ext/CMSIS/KINETIS -os/ext/CMSIS/ST -os/hal/boards/ARDUINO_MEGA -os/hal/boards/EA_LPCXPRESSO_11C24 -os/hal/boards/EA_LPCXPRESSO_BB_1114 -os/hal/boards/EA_LPCXPRESSO_BB_11U14 -os/hal/boards/EA_LPCXPRESSO_BB_1343 -os/hal/boards/EA_LPCXPRESSO_LPC812 -os/hal/boards/FREESCALE_FREEDOM_K20D50M -os/hal/boards/FREESCALE_FREEDOM_KL25Z -os/hal/boards/MAPLEMINI_STM32_F103 -os/hal/boards/MCHCK_K20 -os/hal/boards/NGX_BB_LPC11U14 -os/hal/boards/NONSTANDARD_STM32F4_BARTHESS1 -os/hal/boards/OLIMEX_AVR_CAN -os/hal/boards/OLIMEX_AVR_MT_128 -os/hal/boards/OLIMEX_LPC_P1227 -os/hal/boards/OLIMEX_LPC_P1343 -os/hal/boards/OLIMEX_LPC_P2148 -os/hal/boards/OLIMEX_MSP430_P1611 -os/hal/boards/OLIMEX_SAM7_EX256 -os/hal/boards/OLIMEX_SAM7_P256 -os/hal/boards/OLIMEX_STM32_103STK -os/hal/boards/OLIMEX_STM32_E407 -os/hal/boards/OLIMEX_STM32_E407_REV_D -os/hal/boards/OLIMEX_STM32_H103 -os/hal/boards/OLIMEX_STM32_H407 -os/hal/boards/OLIMEX_STM32_LCD -os/hal/boards/OLIMEX_STM32_P103 -os/hal/boards/OLIMEX_STM32_P107 -os/hal/boards/OLIMEX_STM32_P407 -os/hal/boards/PJRC_TEENSY_3 -os/hal/boards/RAISONANCE_REVA_STM8S -os/hal/boards/simulator -os/hal/boards/ST_EVB_SPC560B -os/hal/boards/ST_EVB_SPC560BC -os/hal/boards/ST_EVB_SPC560D -os/hal/boards/ST_EVB_SPC560P -os/hal/boards/ST_EVB_SPC563M -os/hal/boards/ST_EVB_SPC564A -os/hal/boards/ST_EVB_SPC56EC -os/hal/boards/ST_EVB_SPC56EL -os/hal/boards/ST_INEMO_M1_DISCOVERY -os/hal/boards/ST_NUCLEO_F030R8 -os/hal/boards/ST_NUCLEO_F103RB -os/hal/boards/ST_NUCLEO_F302R8 -os/hal/boards/ST_NUCLEO_F334R8 -os/hal/boards/ST_NUCLEO_F401RE -os/hal/boards/ST_NUCLEO_F411RE -os/hal/boards/ST_NUCLEO_L152RE -os/hal/boards/ST_STM3210C_EVAL -os/hal/boards/ST_STM3210E_EVAL -os/hal/boards/ST_STM3220G_EVAL -os/hal/boards/ST_STM32373C_EVAL -os/hal/boards/ST_STM32F072B_DISCOVERY -os/hal/boards/ST_STM32F0_DISCOVERY -os/hal/boards/ST_STM32F3_DISCOVERY -os/hal/boards/ST_STM32F401C_DISCOVERY -os/hal/boards/ST_STM32F429I_DISCOVERY -os/hal/boards/ST_STM32F4_DISCOVERY -os/hal/boards/ST_STM32L_DISCOVERY -os/hal/boards/ST_STM32VL_DISCOVERY -os/hal/boards/ST_STM8L_DISCOVERY -os/hal/boards/ST_STM8S_DISCOVERY -os/hal/boards/STUDIEL_AT91SAM7A3_EK -os/hal/include -os/hal/lib/streams -os/hal/osal/nil -os/hal/osal/os-less/ARMCMx -os/hal/osal/rt -os/hal/ports/AVR -os/hal/ports/common/ARMCMx -os/hal/ports/KINETIS/K20x -os/hal/ports/KINETIS/KL2x -os/hal/ports/KINETIS/LLD -os/hal/ports/LPC/LPC214x -os/hal/ports/simulator -os/hal/ports/simulator/win32 -os/hal/ports/STM32/LLD -os/hal/ports/STM32/LLD/DACv1 -os/hal/ports/STM32/LLD/DMAv1 -os/hal/ports/STM32/LLD/GPIOv1 -os/hal/ports/STM32/LLD/GPIOv2 -os/hal/ports/STM32/LLD/I2Cv1 -os/hal/ports/STM32/LLD/I2Cv2 -os/hal/ports/STM32/LLD/OTGv1 -os/hal/ports/STM32/LLD/RTCv1 -os/hal/ports/STM32/LLD/RTCv2 -os/hal/ports/STM32/LLD/SPIv1 -os/hal/ports/STM32/LLD/SPIv2 -os/hal/ports/STM32/LLD/TIMv1 -os/hal/ports/STM32/LLD/USARTv1 -os/hal/ports/STM32/LLD/USARTv2 -os/hal/ports/STM32/LLD/USBv1 -os/hal/ports/STM32/STM32F0xx -os/hal/ports/STM32/STM32F1xx -os/hal/ports/STM32/STM32F37x -os/hal/ports/STM32/STM32F3xx -os/hal/ports/STM32/STM32F4xx -os/hal/ports/STM32/STM32L1xx -os/hal/templates -os/hal/templates/osal -os/nil/include -os/nil/ports/ARMCMx -os/nil/ports/ARMCMx/compilers/GCC -os/nil/ports/AVR -os/nil/ports/AVR/compilers/GCC -os/nil/ports/e200 -os/nil/ports/e200/compilers/GCC -os/nil/templates -os/rt/include -os/rt/ports/ARM -os/rt/ports/ARM/compilers/GCC -os/rt/ports/ARMCMx -os/rt/ports/ARMCMx/cmsis_os -os/rt/ports/ARMCMx/compilers/GCC -os/rt/ports/ARMCMx/compilers/IAR -os/rt/ports/ARMCMx/compilers/RVCT -os/rt/ports/AVR -os/rt/ports/AVR/compilers/GCC -os/rt/ports/e200 -os/rt/ports/e200/compilers/GCC -os/rt/ports/SIMIA32 -os/rt/ports/SIMIA32/compilers/GCC -os/rt/templates -os/rt/templates/meta -os/various -os/various/devices_lib/accel -os/various/devices_lib/lcd -os/various/lwip_bindings -os/various/lwip_bindings/arch diff --git a/testhal/STM32/STM32F4xx/EICU/Makefile b/testhal/STM32/STM32F4xx/EICU/Makefile index c1eae62..b7a0ff1 100644 --- a/testhal/STM32/STM32F4xx/EICU/Makefile +++ b/testhal/STM32/STM32F4xx/EICU/Makefile @@ -86,8 +86,10 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib +# Licensing files. +include $(CHIBIOS)/os/license/license.mk # Startup files. include $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_stm32f4xx.mk # HAL-OSAL files (optional). @@ -108,19 +110,13 @@ LDSCRIPT= $(STARTUPLD)/STM32F407xG.ld # C sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CSRC = $(STARTUPSRC) \ - $(KERNSRC) \ - $(PORTSRC) \ - $(OSALSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ +CSRC = $(ALLCSRC) \ $(TESTSRC) \ main.c # C++ sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CPPSRC = +CPPSRC = $(ALLCPPSRC) # C sources to be compiled in ARM mode regardless of the global setting. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler @@ -143,13 +139,10 @@ TCSRC = TCPPSRC = # List ASM source files here -ASMSRC = -ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) +ASMSRC = $(ALLASMSRC) +ASMXSRC = $(ALLXASMSRC) -INCDIR = $(CHIBIOS)/os/license \ - $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ - $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ - $(CHIBIOS_CONTRIB)/os/various +INCDIR = $(ALLINC) $(TESTINC) # # Project, sources and paths diff --git a/testhal/STM32/STM32F4xx/EICU/chconf.h b/testhal/STM32/STM32F4xx/EICU/chconf.h index 53bd676..58cd5db 100644 --- a/testhal/STM32/STM32F4xx/EICU/chconf.h +++ b/testhal/STM32/STM32F4xx/EICU/chconf.h @@ -29,7 +29,7 @@ #define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,26 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 10000
+#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.
@@ -71,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 2
+#endif
/** @} */
@@ -94,7 +104,9 @@ * @note The round robin preemption is not supported in tickless mode and
* must be set to zero in that case.
*/
+#if !defined(CH_CFG_TIME_QUANTUM)
#define CH_CFG_TIME_QUANTUM 0
+#endif
/**
* @brief Managed RAM size.
@@ -107,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -116,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -135,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -153,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -161,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -170,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -178,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -189,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -197,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -207,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -217,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -227,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -235,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -245,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -254,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -265,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -275,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -284,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -296,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -305,7 +355,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMPOOLS)
#define CH_CFG_USE_MEMPOOLS TRUE
+#endif
/**
* @brief Objects FIFOs APIs.
@@ -314,7 +366,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_OBJ_FIFOS)
#define CH_CFG_USE_OBJ_FIFOS TRUE
+#endif
/**
* @brief Dynamic Threads APIs.
@@ -325,7 +379,9 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#if !defined(CH_CFG_USE_DYNAMIC)
#define CH_CFG_USE_DYNAMIC TRUE
+#endif
/** @} */
@@ -343,39 +399,53 @@ *
* @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
/** @} */
@@ -391,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -400,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -409,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -419,7 +495,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
@@ -427,14 +505,18 @@ *
* @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/
+#if !defined(CH_DBG_TRACE_MASK)
#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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.
*/
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -446,7 +528,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -456,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -467,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -490,7 +578,7 @@ * @details User initialization code added to the @p chSysInit() function
* just before interrupts are enabled globally.
*/
-#define CH_CFG_SYSTEM_INIT_HOOK(tp) { \
+#define CH_CFG_SYSTEM_INIT_HOOK() { \
/* Add threads initialization code here.*/ \
}
diff --git a/testhal/STM32/STM32F4xx/FSMC_NAND/Makefile b/testhal/STM32/STM32F4xx/FSMC_NAND/Makefile index 5996f17..d4b6572 100644 --- a/testhal/STM32/STM32F4xx/FSMC_NAND/Makefile +++ b/testhal/STM32/STM32F4xx/FSMC_NAND/Makefile @@ -86,8 +86,10 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib +# Licensing files. +include $(CHIBIOS)/os/license/license.mk # Startup files. include $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_stm32f4xx.mk # HAL-OSAL files (optional). @@ -108,13 +110,7 @@ LDSCRIPT= $(STARTUPLD)/STM32F407xG.ld # C sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CSRC = $(STARTUPSRC) \ - $(KERNSRC) \ - $(PORTSRC) \ - $(OSALSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ +CSRC = $(ALLCSRC) \ $(TESTSRC) \ $(CHIBIOS_CONTRIB)/os/various/bitmap.c \ dma_storm_adc.c \ @@ -124,7 +120,7 @@ CSRC = $(STARTUPSRC) \ # C++ sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CPPSRC = +CPPSRC = $(ALLCPPSRC) # C sources to be compiled in ARM mode regardless of the global setting. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler @@ -147,12 +143,10 @@ TCSRC = TCPPSRC = # List ASM source files here -ASMSRC = -ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) +ASMSRC = $(ALLASMSRC) +ASMXSRC = $(ALLXASMSRC) -INCDIR = $(CHIBIOS)/os/license \ - $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ - $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ +INCDIR = $(ALLINC) $(TESTINC) \ $(CHIBIOS_CONTRIB)/os/various # diff --git a/testhal/STM32/STM32F4xx/FSMC_NAND/chconf.h b/testhal/STM32/STM32F4xx/FSMC_NAND/chconf.h index 1843208..be5b6b0 100644 --- a/testhal/STM32/STM32F4xx/FSMC_NAND/chconf.h +++ b/testhal/STM32/STM32F4xx/FSMC_NAND/chconf.h @@ -29,7 +29,7 @@ #define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,26 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 10000
+#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.
@@ -71,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 2
+#endif
/** @} */
@@ -94,7 +104,9 @@ * @note The round robin preemption is not supported in tickless mode and
* must be set to zero in that case.
*/
+#if !defined(CH_CFG_TIME_QUANTUM)
#define CH_CFG_TIME_QUANTUM 0
+#endif
/**
* @brief Managed RAM size.
@@ -107,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -116,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -135,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -153,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM TRUE
+#endif
/**
* @brief Threads registry APIs.
@@ -161,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -170,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -178,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -189,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -197,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -207,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -217,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -227,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -235,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -245,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -254,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -265,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -275,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -284,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -296,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -305,7 +355,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMPOOLS)
#define CH_CFG_USE_MEMPOOLS TRUE
+#endif
/**
* @brief Objects FIFOs APIs.
@@ -314,7 +366,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_OBJ_FIFOS)
#define CH_CFG_USE_OBJ_FIFOS TRUE
+#endif
/**
* @brief Dynamic Threads APIs.
@@ -325,7 +379,9 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#if !defined(CH_CFG_USE_DYNAMIC)
#define CH_CFG_USE_DYNAMIC TRUE
+#endif
/** @} */
@@ -343,39 +399,53 @@ *
* @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
/** @} */
@@ -391,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -400,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -409,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -419,7 +495,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
@@ -427,14 +505,18 @@ *
* @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/
+#if !defined(CH_DBG_TRACE_MASK)
#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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.
*/
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -446,7 +528,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -456,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -467,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -490,7 +578,7 @@ * @details User initialization code added to the @p chSysInit() function
* just before interrupts are enabled globally.
*/
-#define CH_CFG_SYSTEM_INIT_HOOK(tp) { \
+#define CH_CFG_SYSTEM_INIT_HOOK() { \
/* Add threads initialization code here.*/ \
}
diff --git a/testhal/STM32/STM32F4xx/FSMC_NAND/dma_storm_adc.c b/testhal/STM32/STM32F4xx/FSMC_NAND/dma_storm_adc.c index 2c2e1db..431d959 100644 --- a/testhal/STM32/STM32F4xx/FSMC_NAND/dma_storm_adc.c +++ b/testhal/STM32/STM32F4xx/FSMC_NAND/dma_storm_adc.c @@ -57,6 +57,8 @@ static const ADCConversionGroup adccg = { ADC_SMPR1_SMP_AN14(ADC_SAMPLE_3) | ADC_SMPR1_SMP_AN15(ADC_SAMPLE_3), 0, /* SMPR2 */ + 0, + 0, ADC_SQR1_NUM_CH(ADC_NUM_CHANNELS), 0, ADC_SQR3_SQ6_N(ADC_AN33_2) | diff --git a/testhal/STM32/STM32F4xx/FSMC_SDRAM/Makefile b/testhal/STM32/STM32F4xx/FSMC_SDRAM/Makefile index efdd3e9..8e1b5e4 100644 --- a/testhal/STM32/STM32F4xx/FSMC_SDRAM/Makefile +++ b/testhal/STM32/STM32F4xx/FSMC_SDRAM/Makefile @@ -86,8 +86,10 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib +# Licensing files. +include $(CHIBIOS)/os/license/license.mk # Startup files. include $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_stm32f4xx.mk # HAL-OSAL files (optional). @@ -109,13 +111,7 @@ LDSCRIPT= $(STARTUPLD)/STM32F407xG.ld # C sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CSRC = $(STARTUPSRC) \ - $(KERNSRC) \ - $(PORTSRC) \ - $(OSALSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ +CSRC = $(ALLCSRC) \ $(TESTSRC) \ main.c \ membench.c \ @@ -123,7 +119,7 @@ CSRC = $(STARTUPSRC) \ # C++ sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CPPSRC = $(CHCPPSRC) \ +CPPSRC = $(ALLCPPSRC) \ $(CHIBIOS_CONTRIB)/os/various/memtest.cpp # C sources to be compiled in ARM mode regardless of the global setting. @@ -147,13 +143,10 @@ TCSRC = TCPPSRC = # List ASM source files here -ASMSRC = -ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) +ASMSRC = $(ALLASMSRC) +ASMXSRC = $(ALLXASMSRC) -INCDIR = $(CHIBIOS)/os/license \ - $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ - $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ - $(CHIBIOS)/os/various/cpp_wrappers \ +INCDIR = $(ALLINC) $(TESTINC) \ $(CHIBIOS_CONTRIB)/os/various # diff --git a/testhal/STM32/STM32F4xx/FSMC_SDRAM/chconf.h b/testhal/STM32/STM32F4xx/FSMC_SDRAM/chconf.h index 1843208..be5b6b0 100644 --- a/testhal/STM32/STM32F4xx/FSMC_SDRAM/chconf.h +++ b/testhal/STM32/STM32F4xx/FSMC_SDRAM/chconf.h @@ -29,7 +29,7 @@ #define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,26 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 10000
+#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.
@@ -71,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 2
+#endif
/** @} */
@@ -94,7 +104,9 @@ * @note The round robin preemption is not supported in tickless mode and
* must be set to zero in that case.
*/
+#if !defined(CH_CFG_TIME_QUANTUM)
#define CH_CFG_TIME_QUANTUM 0
+#endif
/**
* @brief Managed RAM size.
@@ -107,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -116,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -135,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -153,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM TRUE
+#endif
/**
* @brief Threads registry APIs.
@@ -161,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -170,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -178,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -189,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -197,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -207,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -217,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -227,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -235,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -245,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -254,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -265,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -275,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -284,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -296,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -305,7 +355,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMPOOLS)
#define CH_CFG_USE_MEMPOOLS TRUE
+#endif
/**
* @brief Objects FIFOs APIs.
@@ -314,7 +366,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_OBJ_FIFOS)
#define CH_CFG_USE_OBJ_FIFOS TRUE
+#endif
/**
* @brief Dynamic Threads APIs.
@@ -325,7 +379,9 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#if !defined(CH_CFG_USE_DYNAMIC)
#define CH_CFG_USE_DYNAMIC TRUE
+#endif
/** @} */
@@ -343,39 +399,53 @@ *
* @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
/** @} */
@@ -391,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -400,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -409,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -419,7 +495,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
@@ -427,14 +505,18 @@ *
* @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/
+#if !defined(CH_DBG_TRACE_MASK)
#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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.
*/
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -446,7 +528,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -456,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -467,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -490,7 +578,7 @@ * @details User initialization code added to the @p chSysInit() function
* just before interrupts are enabled globally.
*/
-#define CH_CFG_SYSTEM_INIT_HOOK(tp) { \
+#define CH_CFG_SYSTEM_INIT_HOOK() { \
/* Add threads initialization code here.*/ \
}
diff --git a/testhal/STM32/STM32F4xx/FSMC_SRAM/Makefile b/testhal/STM32/STM32F4xx/FSMC_SRAM/Makefile index 28e3d68..d0d1670 100644 --- a/testhal/STM32/STM32F4xx/FSMC_SRAM/Makefile +++ b/testhal/STM32/STM32F4xx/FSMC_SRAM/Makefile @@ -86,8 +86,10 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib +# Licensing files. +include $(CHIBIOS)/os/license/license.mk # Startup files. include $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_stm32f4xx.mk # HAL-OSAL files (optional). @@ -109,13 +111,7 @@ LDSCRIPT= $(STARTUPLD)/STM32F407xG.ld # C sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CSRC = $(STARTUPSRC) \ - $(KERNSRC) \ - $(PORTSRC) \ - $(OSALSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ +CSRC = $(ALLCSRC) \ $(TESTSRC) \ main.c \ membench.c \ @@ -123,7 +119,7 @@ CSRC = $(STARTUPSRC) \ # C++ sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CPPSRC = $(CHCPPSRC) \ +CPPSRC = $(ALLCPPSRC) \ $(CHIBIOS_CONTRIB)/os/various/memtest.cpp # C sources to be compiled in ARM mode regardless of the global setting. @@ -147,13 +143,10 @@ TCSRC = TCPPSRC = # List ASM source files here -ASMSRC = -ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) +ASMSRC = $(ALLASMSRC) +ASMXSRC = $(ALLXASMSRC) -INCDIR = $(CHIBIOS)/os/license \ - $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ - $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ - $(CHIBIOS)/os/various/cpp_wrappers \ +INCDIR = $(ALLINC) $(TESTINC) \ $(CHIBIOS_CONTRIB)/os/various # diff --git a/testhal/STM32/STM32F4xx/FSMC_SRAM/chconf.h b/testhal/STM32/STM32F4xx/FSMC_SRAM/chconf.h index 1843208..be5b6b0 100644 --- a/testhal/STM32/STM32F4xx/FSMC_SRAM/chconf.h +++ b/testhal/STM32/STM32F4xx/FSMC_SRAM/chconf.h @@ -29,7 +29,7 @@ #define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,26 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 10000
+#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.
@@ -71,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 2
+#endif
/** @} */
@@ -94,7 +104,9 @@ * @note The round robin preemption is not supported in tickless mode and
* must be set to zero in that case.
*/
+#if !defined(CH_CFG_TIME_QUANTUM)
#define CH_CFG_TIME_QUANTUM 0
+#endif
/**
* @brief Managed RAM size.
@@ -107,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -116,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -135,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -153,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM TRUE
+#endif
/**
* @brief Threads registry APIs.
@@ -161,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -170,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -178,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -189,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -197,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -207,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -217,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -227,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -235,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -245,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -254,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -265,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -275,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -284,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -296,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -305,7 +355,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMPOOLS)
#define CH_CFG_USE_MEMPOOLS TRUE
+#endif
/**
* @brief Objects FIFOs APIs.
@@ -314,7 +366,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_OBJ_FIFOS)
#define CH_CFG_USE_OBJ_FIFOS TRUE
+#endif
/**
* @brief Dynamic Threads APIs.
@@ -325,7 +379,9 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#if !defined(CH_CFG_USE_DYNAMIC)
#define CH_CFG_USE_DYNAMIC TRUE
+#endif
/** @} */
@@ -343,39 +399,53 @@ *
* @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
/** @} */
@@ -391,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -400,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -409,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -419,7 +495,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
@@ -427,14 +505,18 @@ *
* @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/
+#if !defined(CH_DBG_TRACE_MASK)
#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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.
*/
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -446,7 +528,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -456,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -467,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -490,7 +578,7 @@ * @details User initialization code added to the @p chSysInit() function
* just before interrupts are enabled globally.
*/
-#define CH_CFG_SYSTEM_INIT_HOOK(tp) { \
+#define CH_CFG_SYSTEM_INIT_HOOK() { \
/* Add threads initialization code here.*/ \
}
diff --git a/testhal/STM32/STM32F4xx/USB_HOST/.cproject b/testhal/STM32/STM32F4xx/USB_HOST/.cproject index d733e39..8d56b51 100644 --- a/testhal/STM32/STM32F4xx/USB_HOST/.cproject +++ b/testhal/STM32/STM32F4xx/USB_HOST/.cproject @@ -14,7 +14,7 @@ </extensions> </storageModule> <storageModule moduleId="cdtBuildSystem" version="4.0.0"> - <configuration buildProperties="" description="" id="0.1003150841" name="Default" parent="org.eclipse.cdt.build.core.prefbase.cfg"> + <configuration buildProperties="" description="" id="0.1003150841" name="Default" optionalBuildProperties="" parent="org.eclipse.cdt.build.core.prefbase.cfg"> <folderInfo id="0.1003150841." name="/" resourcePath=""> <toolChain id="org.eclipse.cdt.build.core.prefbase.toolchain.748316353" name="No ToolChain" resourceTypeBasedDiscovery="false" superClass="org.eclipse.cdt.build.core.prefbase.toolchain"> <targetPlatform id="org.eclipse.cdt.build.core.prefbase.toolchain.748316353.81353447" name=""/> diff --git a/testhal/STM32/STM32F4xx/USB_HOST/.project b/testhal/STM32/STM32F4xx/USB_HOST/.project index e2dd63e..8db459b 100644 --- a/testhal/STM32/STM32F4xx/USB_HOST/.project +++ b/testhal/STM32/STM32F4xx/USB_HOST/.project @@ -33,7 +33,7 @@ <link> <name>ChibiOS-RT</name> <type>2</type> - <locationURI>$%7BPARENT-5-PROJECT_LOC%7D/ChibiOS-RT</locationURI> + <locationURI>$%7BPARENT-5-PROJECT_LOC%7D/ChibiOS</locationURI> </link> </linkedResources> </projectDescription> diff --git a/testhal/STM32/STM32F4xx/USB_HOST/.settings/org.eclipse.cdt.core.prefs b/testhal/STM32/STM32F4xx/USB_HOST/.settings/org.eclipse.cdt.core.prefs new file mode 100644 index 0000000..8ae48ef --- /dev/null +++ b/testhal/STM32/STM32F4xx/USB_HOST/.settings/org.eclipse.cdt.core.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +environment/project/0.1003150841/PATH/delimiter=; +environment/project/0.1003150841/PATH/operation=replace +environment/project/0.1003150841/PATH/value=${PATH};D\:\\toolchains\\gcc-arm-none-eabi-8-2018-q4-major-win32\\bin;${PATH};D\:\\toolchains\\gcc-arm-none-eabi-4_9-2014q4-20141203-win32\\bin;D\:\\toolchains\\msys64\\usr\\bin +environment/project/0.1003150841/append=true +environment/project/0.1003150841/appendContributed=true diff --git a/testhal/STM32/STM32F4xx/USB_HOST/Makefile b/testhal/STM32/STM32F4xx/USB_HOST/Makefile index 7bd8ea1..54c23ca 100644 --- a/testhal/STM32/STM32F4xx/USB_HOST/Makefile +++ b/testhal/STM32/STM32F4xx/USB_HOST/Makefile @@ -86,7 +86,7 @@ endif PROJECT = ch
# Imported source files and paths
-CHIBIOS = ../../../../../ChibiOS-RT
+CHIBIOS = ../../../../../ChibiOS
CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
# Licensing files.
@@ -97,7 +97,7 @@ include $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_stm32f4xx.m include $(CHIBIOS_CONTRIB)/os/hal/hal.mk
include $(CHIBIOS_CONTRIB)/os/hal/ports/STM32/STM32F4xx/platform.mk
include $(CHIBIOS)/os/hal/boards/ST_STM32F4_DISCOVERY/board.mk
-include $(CHIBIOS)/os/hal/osal/rt/osal.mk
+include $(CHIBIOS)/os/hal/osal/rt-nil/osal.mk
# RTOS files (optional).
include $(CHIBIOS)/os/rt/rt.mk
include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v7m.mk
@@ -118,12 +118,11 @@ LDSCRIPT= $(STARTUPLD)/STM32F407xG.ld # setting.
CSRC = $(ALLCSRC) \
$(TESTSRC) \
- $(FATFSSRC) \
main.c usbh_custom_class_example.c
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CPPSRC =
+CPPSRC = $(ALLCPPSRC)
# C sources to be compiled in ARM mode regardless of the global setting.
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
@@ -146,11 +145,10 @@ TCSRC = TCPPSRC =
# List ASM source files here
-ASMSRC =
-ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
+ASMSRC = $(ALLASMSRC)
+ASMXSRC = $(ALLXASMSRC)
-INCDIR = $(ALLINC) $(TESTINC) $(FATFSINC) \
- $(CHIBIOS_CONTRIB)/os/various
+INCDIR = $(ALLINC) $(TESTINC)
#
# Project, sources and paths
diff --git a/testhal/STM32/STM32F4xx/USB_HOST/chconf.h b/testhal/STM32/STM32F4xx/USB_HOST/chconf.h index 682ae51..17496b1 100644 --- a/testhal/STM32/STM32F4xx/USB_HOST/chconf.h +++ b/testhal/STM32/STM32F4xx/USB_HOST/chconf.h @@ -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.
@@ -42,26 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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 1000
+#if !defined(CH_CFG_ST_FREQUENCY)
+#define CH_CFG_ST_FREQUENCY 10000
+#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.
@@ -71,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
-#define CH_CFG_ST_TIMEDELTA 0
+#if !defined(CH_CFG_ST_TIMEDELTA)
+#define CH_CFG_ST_TIMEDELTA 2
+#endif
/** @} */
@@ -94,7 +104,9 @@ * @note The round robin preemption is not supported in tickless mode and
* must be set to zero in that case.
*/
+#if !defined(CH_CFG_TIME_QUANTUM)
#define CH_CFG_TIME_QUANTUM 0
+#endif
/**
* @brief Managed RAM size.
@@ -107,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -116,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -135,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -153,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
-#define CH_CFG_USE_TM FALSE
+#if !defined(CH_CFG_USE_TM)
+#define CH_CFG_USE_TM TRUE
+#endif
/**
* @brief Threads registry APIs.
@@ -161,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -170,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -178,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -189,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -197,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -207,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -217,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -227,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -235,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -245,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -254,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -265,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -275,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -284,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -296,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -305,16 +355,31 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMPOOLS)
#define CH_CFG_USE_MEMPOOLS TRUE
+#endif
/**
- * @brief Objects FIFOs APIs.
+ * @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.
@@ -325,7 +390,9 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#if !defined(CH_CFG_USE_DYNAMIC)
#define CH_CFG_USE_DYNAMIC TRUE
+#endif
/** @} */
@@ -343,39 +410,60 @@ *
* @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
/** @} */
@@ -391,7 +479,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -400,7 +490,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -409,7 +501,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -419,7 +513,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
@@ -427,14 +523,18 @@ *
* @note The default is @p 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.
*/
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -446,7 +546,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -456,7 +558,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -467,7 +571,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -490,7 +596,7 @@ * @details User initialization code added to the @p chSysInit() function
* just before interrupts are enabled globally.
*/
-#define CH_CFG_SYSTEM_INIT_HOOK(tp) { \
+#define CH_CFG_SYSTEM_INIT_HOOK() { \
/* Add threads initialization code here.*/ \
}
diff --git a/testhal/STM32/STM32F4xx/USB_HOST/ffconf.h b/testhal/STM32/STM32F4xx/USB_HOST/ffconf.h index 944ffde..c3530a5 100644 --- a/testhal/STM32/STM32F4xx/USB_HOST/ffconf.h +++ b/testhal/STM32/STM32F4xx/USB_HOST/ffconf.h @@ -2,10 +2,10 @@ #include "ch.h"
/*---------------------------------------------------------------------------/
-/ FatFs - Configuration file
+/ FatFs Functional Configurations
/---------------------------------------------------------------------------*/
-#define FFCONF_DEF 87030 /* Revision ID */
+#define FFCONF_DEF 86604 /* Revision ID */
/*---------------------------------------------------------------------------/
/ Function Configurations
@@ -21,7 +21,7 @@ #define FF_FS_MINIMIZE 0
/* This option defines minimization level to remove some basic API functions.
/
-/ 0: All basic functions are enabled.
+/ 0: Basic functions are fully enabled.
/ 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed.
/ 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
@@ -71,7 +71,7 @@ / Locale and Namespace Configurations
/---------------------------------------------------------------------------*/
-#define FF_CODE_PAGE 850
+#define FF_CODE_PAGE 437
/* This option specifies the OEM code page to be used on the target system.
/ Incorrect code page setting can cause a file open failure.
/
@@ -100,8 +100,8 @@ */
-#define FF_USE_LFN 3
-#define FF_MAX_LFN 255
+#define FF_USE_LFN 3
+#define FF_MAX_LFN 255
/* The FF_USE_LFN switches the support for LFN (long file name).
/
/ 0: Disable LFN. FF_MAX_LFN has no effect.
@@ -109,32 +109,47 @@ / 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP.
/
-/ To enable the LFN, Unicode handling functions (option/unicode.c) must be added
-/ to the project. The working buffer occupies (FF_MAX_LFN + 1) * 2 bytes and
-/ additional 608 bytes at exFAT enabled. FF_MAX_LFN can be in range from 12 to 255.
-/ It should be set 255 to support full featured LFN operations.
+/ To enable the LFN, ffunicode.c needs to be added to the project. The LFN function
+/ requiers certain internal working buffer occupies (FF_MAX_LFN + 1) * 2 bytes and
+/ additional (FF_MAX_LFN + 44) / 15 * 32 bytes when exFAT is enabled.
+/ The FF_MAX_LFN defines size of the working buffer in UTF-16 code unit and it can
+/ be in range of 12 to 255. It is recommended to be set 255 to fully support LFN
+/ specification.
/ When use stack for the working buffer, take care on stack overflow. When use heap
/ memory for the working buffer, memory management functions, ff_memalloc() and
-/ ff_memfree(), must be added to the project. */
+/ ff_memfree() in ffsystem.c, need to be added to the project. */
#define FF_LFN_UNICODE 0
-/* This option switches character encoding on the API, 0:ANSI/OEM or 1:UTF-16,
-/ when LFN is enabled. Also behavior of string I/O functions will be affected by
-/ this option. When LFN is not enabled, this option has no effect.
-*/
+/* This option switches the character encoding on the API when LFN is enabled.
+/
+/ 0: ANSI/OEM in current CP (TCHAR = char)
+/ 1: Unicode in UTF-16 (TCHAR = WCHAR)
+/ 2: Unicode in UTF-8 (TCHAR = char)
+/ 3: Unicode in UTF-32 (TCHAR = DWORD)
+/
+/ Also behavior of string I/O functions will be affected by this option.
+/ When LFN is not enabled, this option has no effect. */
+
+
+#define FF_LFN_BUF 255
+#define FF_SFN_BUF 12
+/* This set of options defines size of file name members in the FILINFO structure
+/ which is used to read out directory items. These values should be suffcient for
+/ the file names to read. The maximum possible length of the read file name depends
+/ on character encoding. When LFN is not enabled, these options have no effect. */
#define FF_STRF_ENCODE 3
-/* When FF_LFN_UNICODE = 1 with LFN enabled, string I/O functions, f_gets(),
+/* When FF_LFN_UNICODE >= 1 with LFN enabled, string I/O functions, f_gets(),
/ f_putc(), f_puts and f_printf() convert the character encoding in it.
/ This option selects assumption of character encoding ON THE FILE to be
/ read/written via those functions.
/
-/ 0: ANSI/OEM
-/ 1: UTF-16LE
-/ 2: UTF-16BE
-/ 3: UTF-8
+/ 0: ANSI/OEM in current CP
+/ 1: Unicode in UTF-16LE
+/ 2: Unicode in UTF-16BE
+/ 3: Unicode in UTF-8
*/
@@ -157,11 +172,16 @@ #define FF_STR_VOLUME_ID 0
#define FF_VOLUME_STRS "RAM","NAND","CF","SD","SD2","USB","USB2","USB3"
-/* FF_STR_VOLUME_ID switches string support for volume ID.
-/ When FF_STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
-/ number in the path name. FF_VOLUME_STRS defines the drive ID strings for each
-/ logical drives. Number of items must be equal to FF_VOLUMES. Valid characters for
-/ the drive ID strings are: A-Z and 0-9. */
+/* FF_STR_VOLUME_ID switches support for volume ID in arbitrary strings.
+/ When FF_STR_VOLUME_ID is set to 1 or 2, arbitrary strings can be used as drive
+/ number in the path name. FF_VOLUME_STRS defines the volume ID strings for each
+/ logical drives. Number of items must not be less than FF_VOLUMES. Valid
+/ characters for the volume ID strings are A-Z, a-z and 0-9, however, they are
+/ compared in case-insensitive. If FF_STR_VOLUME_ID >= 1 and FF_VOLUME_STRS is
+/ not defined, a user defined volume string table needs to be defined as:
+/
+/ const char* VolumeStr[FF_VOLUMES] = {"ram","flash","sd","usb",...
+*/
#define FF_MULTI_PARTITION 0
@@ -213,19 +233,19 @@ / buffer in the filesystem object (FATFS) is used for the file data transfer. */
-#define FF_FS_EXFAT 1
+#define FF_FS_EXFAT 1
/* This option switches support for exFAT filesystem. (0:Disable or 1:Enable)
/ When enable exFAT, also LFN needs to be enabled.
/ Note that enabling exFAT discards ANSI C (C89) compatibility. */
-#define FF_FS_NORTC 1
-#define FF_NORTC_MON 5
+#define FF_FS_NORTC 1
+#define FF_NORTC_MON 1
#define FF_NORTC_MDAY 1
-#define FF_NORTC_YEAR 2017
+#define FF_NORTC_YEAR 2018
/* The option FF_FS_NORTC switches timestamp functiton. If the system does not have
/ any RTC function or valid timestamp is not needed, set FF_FS_NORTC = 1 to disable
-/ the timestamp function. All objects modified by FatFs will have a fixed timestamp
+/ the timestamp function. Every object modified by FatFs will have a fixed timestamp
/ defined by FF_NORTC_MON, FF_NORTC_MDAY and FF_NORTC_YEAR in local time.
/ To enable timestamp function (FF_FS_NORTC = 0), get_fattime() function need to be
/ added to the project to read current time form real-time clock. FF_NORTC_MON,
@@ -245,9 +265,10 @@ / lock control is independent of re-entrancy. */
-#define FF_FS_REENTRANT 0
-#define FF_FS_TIMEOUT MS2ST(1000)
-#define FF_SYNC_t semaphore_t*
+/* #include <somertos.h> // O/S definitions */
+#define FF_FS_REENTRANT 0
+#define FF_FS_TIMEOUT 1000
+#define FF_SYNC_t HANDLE
/* The option FF_FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs
/ module itself. Note that regardless of this option, file access to different
/ volume is always re-entrant and volume control functions, f_mount(), f_mkfs()
@@ -265,8 +286,6 @@ / SemaphoreHandle_t and etc. A header file for O/S definitions needs to be
/ included somewhere in the scope of ff.h. */
-/* #include <windows.h> // O/S definitions */
-
/*--- End of configuration options ---*/
diff --git a/testhal/STM32/STM32F4xx/USB_HOST/halconf.h b/testhal/STM32/STM32F4xx/USB_HOST/halconf.h index 26f5eae..8b5d823 100644 --- a/testhal/STM32/STM32F4xx/USB_HOST/halconf.h +++ b/testhal/STM32/STM32F4xx/USB_HOST/halconf.h @@ -28,6 +28,9 @@ #ifndef HALCONF_H #define HALCONF_H +#define _CHIBIOS_HAL_CONF_ +#define _CHIBIOS_HAL_CONF_VER_7_1_ + #include "mcuconf.h" /** @@ -66,10 +69,10 @@ #endif /** - * @brief Enables the EXT subsystem. + * @brief Enables the EFlash subsystem. */ -#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) -#define HAL_USE_EXT FALSE +#if !defined(HAL_USE_EFL) || defined(__DOXYGEN__) +#define HAL_USE_EFL FALSE #endif /** @@ -122,13 +125,6 @@ #endif /** - * @brief Enables the QSPI subsystem. - */ -#if !defined(HAL_USE_QSPI) || defined(__DOXYGEN__) -#define HAL_USE_QSPI FALSE -#endif - -/** * @brief Enables the RTC subsystem. */ #if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) @@ -139,7 +135,7 @@ * @brief Enables the SDC subsystem. */ #if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE +#define HAL_USE_SDC TRUE #endif /** @@ -157,6 +153,13 @@ #endif /** + * @brief Enables the SIO subsystem. + */ +#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) +#define HAL_USE_SIO FALSE +#endif + +/** * @brief Enables the SPI subsystem. */ #if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) @@ -164,6 +167,13 @@ #endif /** + * @brief Enables the TRNG subsystem. + */ +#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) +#define HAL_USE_TRNG FALSE +#endif + +/** * @brief Enables the UART subsystem. */ #if !defined(HAL_USE_UART) || defined(__DOXYGEN__) @@ -184,6 +194,33 @@ #define HAL_USE_WDG FALSE #endif +/** + * @brief Enables the WSPI subsystem. + */ +#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) +#define HAL_USE_WSPI FALSE +#endif + +/*===========================================================================*/ +/* PAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) +#define PAL_USE_CALLBACKS FALSE +#endif + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) +#define PAL_USE_WAIT FALSE +#endif + /*===========================================================================*/ /* ADC driver related settings. */ /*===========================================================================*/ @@ -215,6 +252,13 @@ #define CAN_USE_SLEEP_MODE TRUE #endif +/** + * @brief Enforces the driver to use direct callbacks rather than OSAL events. + */ +#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) +#define CAN_ENFORCE_USE_CALLBACKS FALSE +#endif + /*===========================================================================*/ /* CRY driver related settings. */ /*===========================================================================*/ @@ -238,6 +282,26 @@ #endif /*===========================================================================*/ +/* DAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) +#define DAC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define DAC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ /* I2C driver related settings. */ /*===========================================================================*/ @@ -253,7 +317,7 @@ /*===========================================================================*/ /** - * @brief Enables an event sources for incoming packets. + * @brief Enables the zero-copy API. */ #if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) #define MAC_USE_ZERO_COPY FALSE @@ -313,6 +377,20 @@ #define SDC_NICE_WAITING TRUE #endif +/** + * @brief OCR initialization constant for V20 cards. + */ +#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) +#define SDC_INIT_OCR_V20 0x50FF8000U +#endif + +/** + * @brief OCR initialization constant for non-V20 cards. + */ +#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) +#define SDC_INIT_OCR 0x80100000U +#endif + /*===========================================================================*/ /* SERIAL driver related settings. */ /*===========================================================================*/ @@ -373,6 +451,14 @@ #endif /** + * @brief Enables circular transfers APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) +#define SPI_USE_CIRCULAR FALSE +#endif + +/** * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. * @note Disabling this option saves both code and data space. */ @@ -380,6 +466,14 @@ #define SPI_USE_MUTUAL_EXCLUSION TRUE #endif +/** + * @brief Handling method for SPI CS line. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD +#endif + /*===========================================================================*/ /* UART driver related settings. */ /*===========================================================================*/ @@ -412,6 +506,26 @@ #define USB_USE_WAIT FALSE #endif +/*===========================================================================*/ +/* WSPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) +#define WSPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define WSPI_USE_MUTUAL_EXCLUSION TRUE +#endif + #include "halconf_community.h" #endif /* HALCONF_H */ diff --git a/testhal/STM32/STM32F4xx/USB_HOST/main.c b/testhal/STM32/STM32F4xx/USB_HOST/main.c index 6bc859e..c88880b 100644 --- a/testhal/STM32/STM32F4xx/USB_HOST/main.c +++ b/testhal/STM32/STM32F4xx/USB_HOST/main.c @@ -389,14 +389,14 @@ start: usbDbgPuts("FS: Block driver ready, try mount...");
- res = f_mount(&MSDLUN0FS, FATFSDEV_MSDLUN0_DRIVE, 1);
+ res = f_mount(&MSDLUN0FS, FATFSDEV_MSD_DRIVE, 1);
if (res != FR_OK) {
usbDbgPuts("FS: Can't mount. Check file system.");
continue;
}
usbDbgPuts("FS: Mounted.");
- res = f_getfree(FATFSDEV_MSDLUN0_DRIVE, &clusters, &fsp);
+ res = f_getfree(FATFSDEV_MSD_DRIVE, &clusters, &fsp);
if (res != FR_OK) {
usbDbgPuts("FS: f_getfree() failed");
continue;
@@ -420,7 +420,7 @@ start: //write test
if (1) {
usbDbgPuts("FS: Write test (create file /test.dat, 1MB)");
- f_open(&file, FATFSDEV_MSDLUN0_DRIVE "/test.dat", FA_CREATE_ALWAYS | FA_WRITE);
+ f_open(&file, FATFSDEV_MSD_DRIVE "/test.dat", FA_CREATE_ALWAYS | FA_WRITE);
src = start;
st = chVTGetSystemTime();
for (j = 0; j < 2048; j++) {
@@ -440,7 +440,7 @@ start: //read test
if (1) {
usbDbgPuts("FS: Read test (read file /test.dat, 1MB, compare)");
- f_open(&file, FATFSDEV_MSDLUN0_DRIVE "/test.dat", FA_READ);
+ f_open(&file, FATFSDEV_MSD_DRIVE "/test.dat", FA_READ);
src = start;
st = chVTGetSystemTime();
for (j = 0; j < 2048; j++) {
@@ -464,7 +464,7 @@ start: //scan files test
if (1) {
usbDbgPuts("FS: Scan files test");
- strcpy((char *)fbuff, FATFSDEV_MSDLUN0_DRIVE);
+ strcpy((char *)fbuff, FATFSDEV_MSD_DRIVE);
scan_files(chp, (char *)fbuff);
}
}
diff --git a/testhal/STM32/STM32F4xx/USB_HOST/mcuconf.h b/testhal/STM32/STM32F4xx/USB_HOST/mcuconf.h index d2ff44e..242a0e3 100644 --- a/testhal/STM32/STM32F4xx/USB_HOST/mcuconf.h +++ b/testhal/STM32/STM32F4xx/USB_HOST/mcuconf.h @@ -32,11 +32,18 @@ */ #define STM32F4xx_MCUCONF +#define STM32F405_MCUCONF +#define STM32F415_MCUCONF +#define STM32F407_MCUCONF +#define STM32F417_MCUCONF /* * HAL driver system settings. */ #define STM32_NO_INIT FALSE +#define STM32_PVD_ENABLE FALSE +#define STM32_PLS STM32_PLS_LEV0 +#define STM32_BKPRAM_ENABLE FALSE #define STM32_HSI_ENABLED TRUE #define STM32_LSI_ENABLED TRUE #define STM32_HSE_ENABLED TRUE @@ -60,9 +67,6 @@ #define STM32_I2SSRC STM32_I2SSRC_CKIN #define STM32_PLLI2SN_VALUE 192 #define STM32_PLLI2SR_VALUE 5 -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 -#define STM32_BKPRAM_ENABLE FALSE /* * IRQ system settings. @@ -234,6 +238,14 @@ #define STM32_PWM_TIM9_IRQ_PRIORITY 7 /* + * RTC driver system settings. + */ +#define STM32_RTC_PRESA_VALUE 32 +#define STM32_RTC_PRESS_VALUE 1024 +#define STM32_RTC_CR_INIT 0 +#define STM32_RTC_TAMPCR_INIT 0 + +/* * SDC driver system settings. */ #define STM32_SDC_SDIO_DMA_PRIORITY 3 @@ -330,9 +342,7 @@ #define STM32_USB_OTG2_IRQ_PRIORITY 14 #define STM32_USB_OTG1_RX_FIFO_SIZE 512 #define STM32_USB_OTG2_RX_FIFO_SIZE 1024 -#define STM32_USB_OTG_THREAD_PRIO LOWPRIO -#define STM32_USB_OTG_THREAD_STACK_SIZE 128 -#define STM32_USB_OTGFIFO_FILL_BASEPRI 0 +#define STM32_USB_HOST_WAKEUP_DURATION 2 /* * WDG driver system settings. diff --git a/testhal/STM32/STM32F4xx/onewire/Makefile b/testhal/STM32/STM32F4xx/onewire/Makefile index 17b1f31..404ee71 100644 --- a/testhal/STM32/STM32F4xx/onewire/Makefile +++ b/testhal/STM32/STM32F4xx/onewire/Makefile @@ -86,9 +86,11 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib TESTHAL = $(CHIBIOS_CONTRIB)/testhal/common/onewire +# Licensing files. +include $(CHIBIOS)/os/license/license.mk # Startup files. include $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_stm32f4xx.mk # HAL-OSAL files (optional). @@ -109,20 +111,14 @@ LDSCRIPT= $(STARTUPLD)/STM32F407xG.ld # C sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CSRC = $(STARTUPSRC) \ - $(KERNSRC) \ - $(PORTSRC) \ - $(OSALSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ +CSRC = $(ALLCSRC) \ $(TESTSRC) \ main.c \ $(TESTHAL)/testhal_onewire.c # C++ sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CPPSRC = +CPPSRC = $(ALLCPPSRC) # C sources to be compiled in ARM mode regardless of the global setting. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler @@ -145,13 +141,10 @@ TCSRC = TCPPSRC = # List ASM source files here -ASMSRC = -ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) +ASMSRC = $(ALLASMSRC) +ASMXSRC = $(ALLXASMSRC) -INCDIR = $(CHIBIOS)/os/license \ - $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ - $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ - $(CHIBIOS_CONTRIB)/os/various \ +INCDIR = $(ALLINC) $(TESTINC) \ $(TESTHAL) # diff --git a/testhal/STM32/STM32F4xx/onewire/chconf.h b/testhal/STM32/STM32F4xx/onewire/chconf.h index 53bd676..58cd5db 100644 --- a/testhal/STM32/STM32F4xx/onewire/chconf.h +++ b/testhal/STM32/STM32F4xx/onewire/chconf.h @@ -29,7 +29,7 @@ #define CHCONF_H
#define _CHIBIOS_RT_CONF_
-#define _CHIBIOS_RT_CONF_VER_5_0_
+#define _CHIBIOS_RT_CONF_VER_5_1_
/*===========================================================================*/
/**
@@ -42,26 +42,34 @@ * @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
+#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.
*/
+#if !defined(CH_CFG_ST_FREQUENCY)
#define CH_CFG_ST_FREQUENCY 10000
+#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.
@@ -71,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to
* this value.
*/
+#if !defined(CH_CFG_ST_TIMEDELTA)
#define CH_CFG_ST_TIMEDELTA 2
+#endif
/** @} */
@@ -94,7 +104,9 @@ * @note The round robin preemption is not supported in tickless mode and
* must be set to zero in that case.
*/
+#if !defined(CH_CFG_TIME_QUANTUM)
#define CH_CFG_TIME_QUANTUM 0
+#endif
/**
* @brief Managed RAM size.
@@ -107,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
+#if !defined(CH_CFG_MEMCORE_SIZE)
#define CH_CFG_MEMCORE_SIZE 0
+#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -116,7 +130,9 @@ * function becomes the idle thread and must implement an
* infinite loop.
*/
+#if !defined(CH_CFG_NO_IDLE_THREAD)
#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
/** @} */
@@ -135,7 +151,9 @@ * @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
#define CH_CFG_OPTIMIZE_SPEED TRUE
+#endif
/** @} */
@@ -153,7 +171,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_TM)
#define CH_CFG_USE_TM FALSE
+#endif
/**
* @brief Threads registry APIs.
@@ -161,7 +181,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_REGISTRY)
#define CH_CFG_USE_REGISTRY TRUE
+#endif
/**
* @brief Threads synchronization APIs.
@@ -170,7 +192,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_WAITEXIT)
#define CH_CFG_USE_WAITEXIT TRUE
+#endif
/**
* @brief Semaphores APIs.
@@ -178,7 +202,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES)
#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
/**
* @brief Semaphores queuing mode.
@@ -189,7 +215,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
/**
* @brief Mutexes APIs.
@@ -197,7 +225,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MUTEXES)
#define CH_CFG_USE_MUTEXES TRUE
+#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -207,7 +237,9 @@ * @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
/**
* @brief Conditional Variables APIs.
@@ -217,7 +249,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
+#if !defined(CH_CFG_USE_CONDVARS)
#define CH_CFG_USE_CONDVARS TRUE
+#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -227,7 +261,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+#endif
/**
* @brief Events Flags APIs.
@@ -235,7 +271,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_EVENTS)
#define CH_CFG_USE_EVENTS TRUE
+#endif
/**
* @brief Events Flags APIs with timeout.
@@ -245,7 +283,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
/**
* @brief Synchronous Messages APIs.
@@ -254,7 +294,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MESSAGES)
#define CH_CFG_USE_MESSAGES TRUE
+#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -265,7 +307,9 @@ * requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
/**
* @brief Mailboxes APIs.
@@ -275,7 +319,9 @@ * @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
+#if !defined(CH_CFG_USE_MAILBOXES)
#define CH_CFG_USE_MAILBOXES TRUE
+#endif
/**
* @brief Core Memory Manager APIs.
@@ -284,7 +330,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMCORE)
#define CH_CFG_USE_MEMCORE TRUE
+#endif
/**
* @brief Heap Allocator APIs.
@@ -296,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
+#if !defined(CH_CFG_USE_HEAP)
#define CH_CFG_USE_HEAP TRUE
+#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -305,7 +355,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_MEMPOOLS)
#define CH_CFG_USE_MEMPOOLS TRUE
+#endif
/**
* @brief Objects FIFOs APIs.
@@ -314,7 +366,9 @@ *
* @note The default is @p TRUE.
*/
+#if !defined(CH_CFG_USE_OBJ_FIFOS)
#define CH_CFG_USE_OBJ_FIFOS TRUE
+#endif
/**
* @brief Dynamic Threads APIs.
@@ -325,7 +379,9 @@ * @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
+#if !defined(CH_CFG_USE_DYNAMIC)
#define CH_CFG_USE_DYNAMIC TRUE
+#endif
/** @} */
@@ -343,39 +399,53 @@ *
* @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
/** @} */
@@ -391,7 +461,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_STATISTICS)
#define CH_DBG_STATISTICS FALSE
+#endif
/**
* @brief Debug option, system state check.
@@ -400,7 +472,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#endif
/**
* @brief Debug option, parameters checks.
@@ -409,7 +483,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_CHECKS)
#define CH_DBG_ENABLE_CHECKS TRUE
+#endif
/**
* @brief Debug option, consistency checks.
@@ -419,7 +495,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_ENABLE_ASSERTS)
#define CH_DBG_ENABLE_ASSERTS TRUE
+#endif
/**
* @brief Debug option, trace buffer.
@@ -427,14 +505,18 @@ *
* @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/
+#if !defined(CH_DBG_TRACE_MASK)
#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
+#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.
*/
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
/**
* @brief Debug option, stack checks.
@@ -446,7 +528,9 @@ * @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#endif
/**
* @brief Debug option, stacks initialization.
@@ -456,7 +540,9 @@ *
* @note The default is @p FALSE.
*/
+#if !defined(CH_DBG_FILL_THREADS)
#define CH_DBG_FILL_THREADS TRUE
+#endif
/**
* @brief Debug option, threads profiling.
@@ -467,7 +553,9 @@ * @note This debug option is not currently compatible with the
* tickless mode.
*/
+#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
+#endif
/** @} */
@@ -490,7 +578,7 @@ * @details User initialization code added to the @p chSysInit() function
* just before interrupts are enabled globally.
*/
-#define CH_CFG_SYSTEM_INIT_HOOK(tp) { \
+#define CH_CFG_SYSTEM_INIT_HOOK() { \
/* Add threads initialization code here.*/ \
}
diff --git a/testhal/STM32/STM32F7xx/USB_MSD/Makefile b/testhal/STM32/STM32F7xx/USB_MSD/Makefile index 10ec19f..870ed6e 100644 --- a/testhal/STM32/STM32F7xx/USB_MSD/Makefile +++ b/testhal/STM32/STM32F7xx/USB_MSD/Makefile @@ -91,8 +91,10 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib +# Licensing files. +include $(CHIBIOS)/os/license/license.mk # Startup files. include $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_stm32f7xx.mk # HAL-OSAL files (optional). @@ -115,16 +117,8 @@ LDSCRIPT= $(STARTUPLD)/STM32F76xxI.ld # C sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CSRC = $(STARTUPSRC) \ - $(KERNSRC) \ - $(PORTSRC) \ - $(OSALSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ +CSRC = $(ALLCSRC) \ $(TESTSRC) \ - $(STREAMSSRC) \ - $(SHELLSRC) \ $(CHIBIOS_CONTRIB)/os/various/ramdisk.c \ $(CHIBIOS_CONTRIB)/os/various/lib_scsi.c \ usbcfg.c \ @@ -132,7 +126,7 @@ CSRC = $(STARTUPSRC) \ # C++ sources that can be compiled in ARM or THUMB mode depending on the global # setting. -CPPSRC = +CPPSRC = $(ALLCPPSRC) # C sources to be compiled in ARM mode regardless of the global setting. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler @@ -155,13 +149,10 @@ TCSRC = TCPPSRC = # List ASM source files here -ASMSRC = -ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) +ASMSRC = $(ALLASMSRC) +ASMXSRC = $(ALLXASMSRC) -INCDIR = $(CHIBIOS)/os/license \ - $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ - $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ - $(STREAMSINC) $(SHELLINC) \ +INCDIR = $(ALLINC) $(TESTINC) \ $(CHIBIOS_CONTRIB)/os/various # diff --git a/testhal/STM32/STM32F7xx/USB_MSD/chconf.h b/testhal/STM32/STM32F7xx/USB_MSD/chconf.h index b9b2e81..7fa83eb 100644 --- a/testhal/STM32/STM32F7xx/USB_MSD/chconf.h +++ b/testhal/STM32/STM32F7xx/USB_MSD/chconf.h @@ -29,7 +29,7 @@ #define CHCONF_H #define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_5_0_ +#define _CHIBIOS_RT_CONF_VER_5_1_ /*===========================================================================*/ /** @@ -42,26 +42,34 @@ * @brief System time counter resolution. * @note Allowed values are 16 or 32 bits. */ +#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. */ +#if !defined(CH_CFG_ST_FREQUENCY) #define CH_CFG_ST_FREQUENCY 10000 +#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. @@ -71,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to * this value. */ +#if !defined(CH_CFG_ST_TIMEDELTA) #define CH_CFG_ST_TIMEDELTA 2 +#endif /** @} */ @@ -94,7 +104,9 @@ * @note The round robin preemption is not supported in tickless mode and * must be set to zero in that case. */ +#if !defined(CH_CFG_TIME_QUANTUM) #define CH_CFG_TIME_QUANTUM 0 +#endif /** * @brief Managed RAM size. @@ -107,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols. * @note Requires @p CH_CFG_USE_MEMCORE. */ +#if !defined(CH_CFG_MEMCORE_SIZE) #define CH_CFG_MEMCORE_SIZE 0 +#endif /** * @brief Idle thread automatic spawn suppression. @@ -116,7 +130,9 @@ * function becomes the idle thread and must implement an * infinite loop. */ +#if !defined(CH_CFG_NO_IDLE_THREAD) #define CH_CFG_NO_IDLE_THREAD FALSE +#endif /** @} */ @@ -135,7 +151,9 @@ * @note This is not related to the compiler optimization options. * @note The default is @p TRUE. */ +#if !defined(CH_CFG_OPTIMIZE_SPEED) #define CH_CFG_OPTIMIZE_SPEED TRUE +#endif /** @} */ @@ -153,7 +171,9 @@ * * @note The default is @p TRUE. */ +#if !defined(CH_CFG_USE_TM) #define CH_CFG_USE_TM TRUE +#endif /** * @brief Threads registry APIs. @@ -161,7 +181,9 @@ * * @note The default is @p TRUE. */ +#if !defined(CH_CFG_USE_REGISTRY) #define CH_CFG_USE_REGISTRY TRUE +#endif /** * @brief Threads synchronization APIs. @@ -170,7 +192,9 @@ * * @note The default is @p TRUE. */ +#if !defined(CH_CFG_USE_WAITEXIT) #define CH_CFG_USE_WAITEXIT TRUE +#endif /** * @brief Semaphores APIs. @@ -178,7 +202,9 @@ * * @note The default is @p TRUE. */ +#if !defined(CH_CFG_USE_SEMAPHORES) #define CH_CFG_USE_SEMAPHORES TRUE +#endif /** * @brief Semaphores queuing mode. @@ -189,7 +215,9 @@ * requirements. * @note Requires @p CH_CFG_USE_SEMAPHORES. */ +#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) #define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE +#endif /** * @brief Mutexes APIs. @@ -197,7 +225,9 @@ * * @note The default is @p TRUE. */ +#if !defined(CH_CFG_USE_MUTEXES) #define CH_CFG_USE_MUTEXES TRUE +#endif /** * @brief Enables recursive behavior on mutexes. @@ -207,7 +237,9 @@ * @note The default is @p FALSE. * @note Requires @p CH_CFG_USE_MUTEXES. */ +#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) #define CH_CFG_USE_MUTEXES_RECURSIVE FALSE +#endif /** * @brief Conditional Variables APIs. @@ -217,7 +249,9 @@ * @note The default is @p TRUE. * @note Requires @p CH_CFG_USE_MUTEXES. */ +#if !defined(CH_CFG_USE_CONDVARS) #define CH_CFG_USE_CONDVARS TRUE +#endif /** * @brief Conditional Variables APIs with timeout. @@ -227,7 +261,9 @@ * @note The default is @p TRUE. * @note Requires @p CH_CFG_USE_CONDVARS. */ +#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) #define CH_CFG_USE_CONDVARS_TIMEOUT TRUE +#endif /** * @brief Events Flags APIs. @@ -235,7 +271,9 @@ * * @note The default is @p TRUE. */ +#if !defined(CH_CFG_USE_EVENTS) #define CH_CFG_USE_EVENTS TRUE +#endif /** * @brief Events Flags APIs with timeout. @@ -245,7 +283,9 @@ * @note The default is @p TRUE. * @note Requires @p CH_CFG_USE_EVENTS. */ +#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) #define CH_CFG_USE_EVENTS_TIMEOUT TRUE +#endif /** * @brief Synchronous Messages APIs. @@ -254,7 +294,9 @@ * * @note The default is @p TRUE. */ +#if !defined(CH_CFG_USE_MESSAGES) #define CH_CFG_USE_MESSAGES TRUE +#endif /** * @brief Synchronous Messages queuing mode. @@ -265,7 +307,9 @@ * requirements. * @note Requires @p CH_CFG_USE_MESSAGES. */ +#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) #define CH_CFG_USE_MESSAGES_PRIORITY FALSE +#endif /** * @brief Mailboxes APIs. @@ -275,7 +319,9 @@ * @note The default is @p TRUE. * @note Requires @p CH_CFG_USE_SEMAPHORES. */ +#if !defined(CH_CFG_USE_MAILBOXES) #define CH_CFG_USE_MAILBOXES TRUE +#endif /** * @brief Core Memory Manager APIs. @@ -284,7 +330,9 @@ * * @note The default is @p TRUE. */ +#if !defined(CH_CFG_USE_MEMCORE) #define CH_CFG_USE_MEMCORE TRUE +#endif /** * @brief Heap Allocator APIs. @@ -296,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES. * @note Mutexes are recommended. */ +#if !defined(CH_CFG_USE_HEAP) #define CH_CFG_USE_HEAP TRUE +#endif /** * @brief Memory Pools Allocator APIs. @@ -305,7 +355,9 @@ * * @note The default is @p TRUE. */ +#if !defined(CH_CFG_USE_MEMPOOLS) #define CH_CFG_USE_MEMPOOLS TRUE +#endif /** * @brief Objects FIFOs APIs. @@ -314,7 +366,9 @@ * * @note The default is @p TRUE. */ +#if !defined(CH_CFG_USE_OBJ_FIFOS) #define CH_CFG_USE_OBJ_FIFOS FALSE +#endif /** * @brief Dynamic Threads APIs. @@ -325,7 +379,9 @@ * @note Requires @p CH_CFG_USE_WAITEXIT. * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. */ +#if !defined(CH_CFG_USE_DYNAMIC) #define CH_CFG_USE_DYNAMIC TRUE +#endif /** @} */ @@ -343,39 +399,53 @@ * * @note The default is @p FALSE. */ +#if !defined(CH_CFG_USE_FACTORY) #define CH_CFG_USE_FACTORY FALSE +#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 /** @} */ @@ -391,7 +461,9 @@ * * @note The default is @p FALSE. */ +#if !defined(CH_DBG_STATISTICS) #define CH_DBG_STATISTICS FALSE +#endif /** * @brief Debug option, system state check. @@ -400,7 +472,9 @@ * * @note The default is @p FALSE. */ +#if !defined(CH_DBG_SYSTEM_STATE_CHECK) #define CH_DBG_SYSTEM_STATE_CHECK TRUE +#endif /** * @brief Debug option, parameters checks. @@ -409,7 +483,9 @@ * * @note The default is @p FALSE. */ +#if !defined(CH_DBG_ENABLE_CHECKS) #define CH_DBG_ENABLE_CHECKS TRUE +#endif /** * @brief Debug option, consistency checks. @@ -419,7 +495,9 @@ * * @note The default is @p FALSE. */ +#if !defined(CH_DBG_ENABLE_ASSERTS) #define CH_DBG_ENABLE_ASSERTS TRUE +#endif /** * @brief Debug option, trace buffer. @@ -427,14 +505,18 @@ * * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. */ +#if !defined(CH_DBG_TRACE_MASK) #define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL +#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. */ +#if !defined(CH_DBG_TRACE_BUFFER_SIZE) #define CH_DBG_TRACE_BUFFER_SIZE 128 +#endif /** * @brief Debug option, stack checks. @@ -446,7 +528,9 @@ * @note The default failure mode is to halt the system with the global * @p panic_msg variable set to @p NULL. */ +#if !defined(CH_DBG_ENABLE_STACK_CHECK) #define CH_DBG_ENABLE_STACK_CHECK TRUE +#endif /** * @brief Debug option, stacks initialization. @@ -456,7 +540,9 @@ * * @note The default is @p FALSE. */ +#if !defined(CH_DBG_FILL_THREADS) #define CH_DBG_FILL_THREADS TRUE +#endif /** * @brief Debug option, threads profiling. @@ -467,7 +553,9 @@ * @note This debug option is not currently compatible with the * tickless mode. */ +#if !defined(CH_DBG_THREADS_PROFILING) #define CH_DBG_THREADS_PROFILING FALSE +#endif /** @} */ @@ -490,7 +578,7 @@ * @details User initialization code added to the @p chSysInit() function * just before interrupts are enabled globally. */ -#define CH_CFG_SYSTEM_INIT_HOOK(tp) { \ +#define CH_CFG_SYSTEM_INIT_HOOK() { \ /* Add threads initialization code here.*/ \ } diff --git a/testhal/TIVA/TM4C123x/ADC/Makefile b/testhal/TIVA/TM4C123x/ADC/Makefile index f098dc2..bd998ad 100644 --- a/testhal/TIVA/TM4C123x/ADC/Makefile +++ b/testhal/TIVA/TM4C123x/ADC/Makefile @@ -86,7 +86,7 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib # Licensing files. diff --git a/testhal/TIVA/TM4C123x/GPT/Makefile b/testhal/TIVA/TM4C123x/GPT/Makefile index 00661de..490c89d 100644 --- a/testhal/TIVA/TM4C123x/GPT/Makefile +++ b/testhal/TIVA/TM4C123x/GPT/Makefile @@ -86,7 +86,7 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib # Licensing files. diff --git a/testhal/TIVA/TM4C123x/I2C/Makefile b/testhal/TIVA/TM4C123x/I2C/Makefile index f098dc2..bd998ad 100644 --- a/testhal/TIVA/TM4C123x/I2C/Makefile +++ b/testhal/TIVA/TM4C123x/I2C/Makefile @@ -86,7 +86,7 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib # Licensing files. diff --git a/testhal/TIVA/TM4C123x/PWM/Makefile b/testhal/TIVA/TM4C123x/PWM/Makefile index 00661de..490c89d 100644 --- a/testhal/TIVA/TM4C123x/PWM/Makefile +++ b/testhal/TIVA/TM4C123x/PWM/Makefile @@ -86,7 +86,7 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib # Licensing files. diff --git a/testhal/TIVA/TM4C123x/SPI/Makefile b/testhal/TIVA/TM4C123x/SPI/Makefile index 00661de..490c89d 100644 --- a/testhal/TIVA/TM4C123x/SPI/Makefile +++ b/testhal/TIVA/TM4C123x/SPI/Makefile @@ -86,7 +86,7 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib # Licensing files. diff --git a/testhal/TIVA/TM4C123x/UART/Makefile b/testhal/TIVA/TM4C123x/UART/Makefile index 00661de..490c89d 100644 --- a/testhal/TIVA/TM4C123x/UART/Makefile +++ b/testhal/TIVA/TM4C123x/UART/Makefile @@ -86,7 +86,7 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib # Licensing files. diff --git a/testhal/TIVA/TM4C123x/WDG/Makefile b/testhal/TIVA/TM4C123x/WDG/Makefile index 00661de..490c89d 100644 --- a/testhal/TIVA/TM4C123x/WDG/Makefile +++ b/testhal/TIVA/TM4C123x/WDG/Makefile @@ -86,7 +86,7 @@ endif PROJECT = ch # Imported source files and paths -CHIBIOS = ../../../../../ChibiOS-RT +CHIBIOS = ../../../../../ChibiOS CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib # Licensing files. |