make some change to complie stm32_f103_onekey with new version of Chibios (#583)
This commit is contained in:
parent
a0b5bf4b67
commit
8345571e1d
6 changed files with 1117 additions and 909 deletions
|
|
@ -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");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
|
@ -29,6 +29,7 @@
|
||||||
#define CHCONF_H
|
#define CHCONF_H
|
||||||
|
|
||||||
#define _CHIBIOS_RT_CONF_
|
#define _CHIBIOS_RT_CONF_
|
||||||
|
#define _CHIBIOS_RT_CONF_VER_6_0_
|
||||||
|
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
/**
|
/**
|
||||||
|
|
@ -41,14 +42,34 @@
|
||||||
* @brief System time counter resolution.
|
* @brief System time counter resolution.
|
||||||
* @note Allowed values are 16 or 32 bits.
|
* @note Allowed values are 16 or 32 bits.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_CFG_ST_RESOLUTION)
|
||||||
#define CH_CFG_ST_RESOLUTION 16
|
#define CH_CFG_ST_RESOLUTION 16
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief System tick frequency.
|
* @brief System tick frequency.
|
||||||
* @details Frequency of the system timer that drives the system ticks. This
|
* @details Frequency of the system timer that drives the system ticks. This
|
||||||
* setting also defines the system tick time unit.
|
* setting also defines the system tick time unit.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_CFG_ST_FREQUENCY)
|
||||||
#define CH_CFG_ST_FREQUENCY 2000
|
#define CH_CFG_ST_FREQUENCY 2000
|
||||||
|
#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.
|
* @brief Time delta constant for the tick-less mode.
|
||||||
|
|
@ -58,7 +79,9 @@
|
||||||
* The value one is not valid, timeouts are rounded up to
|
* The value one is not valid, timeouts are rounded up to
|
||||||
* this value.
|
* this value.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_CFG_ST_TIMEDELTA)
|
||||||
#define CH_CFG_ST_TIMEDELTA 2
|
#define CH_CFG_ST_TIMEDELTA 2
|
||||||
|
#endif
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
|
|
@ -81,7 +104,9 @@
|
||||||
* @note The round robin preemption is not supported in tickless mode and
|
* @note The round robin preemption is not supported in tickless mode and
|
||||||
* must be set to zero in that case.
|
* must be set to zero in that case.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_CFG_TIME_QUANTUM)
|
||||||
#define CH_CFG_TIME_QUANTUM 0
|
#define CH_CFG_TIME_QUANTUM 0
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Managed RAM size.
|
* @brief Managed RAM size.
|
||||||
|
|
@ -94,7 +119,9 @@
|
||||||
* provide the @p __heap_base__ and @p __heap_end__ symbols.
|
* provide the @p __heap_base__ and @p __heap_end__ symbols.
|
||||||
* @note Requires @p CH_CFG_USE_MEMCORE.
|
* @note Requires @p CH_CFG_USE_MEMCORE.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_CFG_MEMCORE_SIZE)
|
||||||
#define CH_CFG_MEMCORE_SIZE 0
|
#define CH_CFG_MEMCORE_SIZE 0
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Idle thread automatic spawn suppression.
|
* @brief Idle thread automatic spawn suppression.
|
||||||
|
|
@ -103,11 +130,9 @@
|
||||||
* function becomes the idle thread and must implement an
|
* 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
|
#define CH_CFG_NO_IDLE_THREAD FALSE
|
||||||
|
#endif
|
||||||
/* Use __WFI in the idle thread for waiting. Does lower the power
|
|
||||||
* consumption. */
|
|
||||||
#define CORTEX_ENABLE_WFI_IDLE TRUE
|
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
|
|
@ -126,7 +151,9 @@
|
||||||
* @note This is not related to the compiler optimization options.
|
* @note This is not related to the compiler optimization options.
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_CFG_OPTIMIZE_SPEED)
|
||||||
#define CH_CFG_OPTIMIZE_SPEED TRUE
|
#define CH_CFG_OPTIMIZE_SPEED TRUE
|
||||||
|
#endif
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
|
|
@ -144,7 +171,9 @@
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_CFG_USE_TM)
|
||||||
#define CH_CFG_USE_TM FALSE
|
#define CH_CFG_USE_TM FALSE
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Threads registry APIs.
|
* @brief Threads registry APIs.
|
||||||
|
|
@ -152,7 +181,9 @@
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_CFG_USE_REGISTRY)
|
||||||
#define CH_CFG_USE_REGISTRY TRUE
|
#define CH_CFG_USE_REGISTRY TRUE
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Threads synchronization APIs.
|
* @brief Threads synchronization APIs.
|
||||||
|
|
@ -161,7 +192,9 @@
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_CFG_USE_WAITEXIT)
|
||||||
#define CH_CFG_USE_WAITEXIT TRUE
|
#define CH_CFG_USE_WAITEXIT TRUE
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Semaphores APIs.
|
* @brief Semaphores APIs.
|
||||||
|
|
@ -169,7 +202,9 @@
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_CFG_USE_SEMAPHORES)
|
||||||
#define CH_CFG_USE_SEMAPHORES TRUE
|
#define CH_CFG_USE_SEMAPHORES TRUE
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Semaphores queuing mode.
|
* @brief Semaphores queuing mode.
|
||||||
|
|
@ -180,7 +215,9 @@
|
||||||
* requirements.
|
* requirements.
|
||||||
* @note Requires @p CH_CFG_USE_SEMAPHORES.
|
* @note Requires @p CH_CFG_USE_SEMAPHORES.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
|
||||||
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
|
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Mutexes APIs.
|
* @brief Mutexes APIs.
|
||||||
|
|
@ -188,7 +225,9 @@
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_CFG_USE_MUTEXES)
|
||||||
#define CH_CFG_USE_MUTEXES TRUE
|
#define CH_CFG_USE_MUTEXES TRUE
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables recursive behavior on mutexes.
|
* @brief Enables recursive behavior on mutexes.
|
||||||
|
|
@ -198,7 +237,9 @@
|
||||||
* @note The default is @p FALSE.
|
* @note The default is @p FALSE.
|
||||||
* @note Requires @p CH_CFG_USE_MUTEXES.
|
* @note Requires @p CH_CFG_USE_MUTEXES.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
|
||||||
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
|
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Conditional Variables APIs.
|
* @brief Conditional Variables APIs.
|
||||||
|
|
@ -208,7 +249,9 @@
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_CFG_USE_MUTEXES.
|
* @note Requires @p CH_CFG_USE_MUTEXES.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_CFG_USE_CONDVARS)
|
||||||
#define CH_CFG_USE_CONDVARS TRUE
|
#define CH_CFG_USE_CONDVARS TRUE
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Conditional Variables APIs with timeout.
|
* @brief Conditional Variables APIs with timeout.
|
||||||
|
|
@ -218,7 +261,9 @@
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_CFG_USE_CONDVARS.
|
* @note Requires @p CH_CFG_USE_CONDVARS.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
|
||||||
#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE
|
#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Events Flags APIs.
|
* @brief Events Flags APIs.
|
||||||
|
|
@ -226,7 +271,9 @@
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_CFG_USE_EVENTS)
|
||||||
#define CH_CFG_USE_EVENTS TRUE
|
#define CH_CFG_USE_EVENTS TRUE
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Events Flags APIs with timeout.
|
* @brief Events Flags APIs with timeout.
|
||||||
|
|
@ -236,7 +283,9 @@
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_CFG_USE_EVENTS.
|
* @note Requires @p CH_CFG_USE_EVENTS.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
|
||||||
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
|
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Synchronous Messages APIs.
|
* @brief Synchronous Messages APIs.
|
||||||
|
|
@ -245,7 +294,9 @@
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_CFG_USE_MESSAGES)
|
||||||
#define CH_CFG_USE_MESSAGES TRUE
|
#define CH_CFG_USE_MESSAGES TRUE
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Synchronous Messages queuing mode.
|
* @brief Synchronous Messages queuing mode.
|
||||||
|
|
@ -256,7 +307,9 @@
|
||||||
* requirements.
|
* requirements.
|
||||||
* @note Requires @p CH_CFG_USE_MESSAGES.
|
* @note Requires @p CH_CFG_USE_MESSAGES.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
|
||||||
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
|
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Mailboxes APIs.
|
* @brief Mailboxes APIs.
|
||||||
|
|
@ -266,7 +319,9 @@
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_CFG_USE_SEMAPHORES.
|
* @note Requires @p CH_CFG_USE_SEMAPHORES.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_CFG_USE_MAILBOXES)
|
||||||
#define CH_CFG_USE_MAILBOXES TRUE
|
#define CH_CFG_USE_MAILBOXES TRUE
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Core Memory Manager APIs.
|
* @brief Core Memory Manager APIs.
|
||||||
|
|
@ -275,7 +330,9 @@
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_CFG_USE_MEMCORE)
|
||||||
#define CH_CFG_USE_MEMCORE TRUE
|
#define CH_CFG_USE_MEMCORE TRUE
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Heap Allocator APIs.
|
* @brief Heap Allocator APIs.
|
||||||
|
|
@ -287,7 +344,9 @@
|
||||||
* @p CH_CFG_USE_SEMAPHORES.
|
* @p CH_CFG_USE_SEMAPHORES.
|
||||||
* @note Mutexes are recommended.
|
* @note Mutexes are recommended.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_CFG_USE_HEAP)
|
||||||
#define CH_CFG_USE_HEAP TRUE
|
#define CH_CFG_USE_HEAP TRUE
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Memory Pools Allocator APIs.
|
* @brief Memory Pools Allocator APIs.
|
||||||
|
|
@ -296,7 +355,31 @@
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_CFG_USE_MEMPOOLS)
|
||||||
#define CH_CFG_USE_MEMPOOLS FALSE
|
#define CH_CFG_USE_MEMPOOLS FALSE
|
||||||
|
#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 FALSE
|
||||||
|
#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 FALSE
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Dynamic Threads APIs.
|
* @brief Dynamic Threads APIs.
|
||||||
|
|
@ -307,7 +390,80 @@
|
||||||
* @note Requires @p CH_CFG_USE_WAITEXIT.
|
* @note Requires @p CH_CFG_USE_WAITEXIT.
|
||||||
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
|
* @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 FALSE
|
#define CH_CFG_USE_DYNAMIC FALSE
|
||||||
|
#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 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 FALSE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Enables factory for generic buffers.
|
||||||
|
*/
|
||||||
|
#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS)
|
||||||
|
#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Enables factory for semaphores.
|
||||||
|
*/
|
||||||
|
#if !defined(CH_CFG_FACTORY_SEMAPHORES)
|
||||||
|
#define CH_CFG_FACTORY_SEMAPHORES FALSE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Enables factory for mailboxes.
|
||||||
|
*/
|
||||||
|
#if !defined(CH_CFG_FACTORY_MAILBOXES)
|
||||||
|
#define CH_CFG_FACTORY_MAILBOXES FALSE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Enables factory for objects FIFOs.
|
||||||
|
*/
|
||||||
|
#if !defined(CH_CFG_FACTORY_OBJ_FIFOS)
|
||||||
|
#define CH_CFG_FACTORY_OBJ_FIFOS FALSE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Enables factory for Pipes.
|
||||||
|
*/
|
||||||
|
#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__)
|
||||||
|
#define CH_CFG_FACTORY_PIPES FALSE
|
||||||
|
#endif
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
|
|
@ -323,7 +479,9 @@
|
||||||
*
|
*
|
||||||
* @note The default is @p FALSE.
|
* @note The default is @p FALSE.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_DBG_STATISTICS)
|
||||||
#define CH_DBG_STATISTICS FALSE
|
#define CH_DBG_STATISTICS FALSE
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Debug option, system state check.
|
* @brief Debug option, system state check.
|
||||||
|
|
@ -332,7 +490,9 @@
|
||||||
*
|
*
|
||||||
* @note The default is @p FALSE.
|
* @note The default is @p FALSE.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
|
||||||
#define CH_DBG_SYSTEM_STATE_CHECK FALSE
|
#define CH_DBG_SYSTEM_STATE_CHECK FALSE
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Debug option, parameters checks.
|
* @brief Debug option, parameters checks.
|
||||||
|
|
@ -341,7 +501,9 @@
|
||||||
*
|
*
|
||||||
* @note The default is @p FALSE.
|
* @note The default is @p FALSE.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_DBG_ENABLE_CHECKS)
|
||||||
#define CH_DBG_ENABLE_CHECKS FALSE
|
#define CH_DBG_ENABLE_CHECKS FALSE
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Debug option, consistency checks.
|
* @brief Debug option, consistency checks.
|
||||||
|
|
@ -351,7 +513,9 @@
|
||||||
*
|
*
|
||||||
* @note The default is @p FALSE.
|
* @note The default is @p FALSE.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_DBG_ENABLE_ASSERTS)
|
||||||
#define CH_DBG_ENABLE_ASSERTS FALSE
|
#define CH_DBG_ENABLE_ASSERTS FALSE
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Debug option, trace buffer.
|
* @brief Debug option, trace buffer.
|
||||||
|
|
@ -359,14 +523,18 @@
|
||||||
*
|
*
|
||||||
* @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
|
* @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
|
#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Trace buffer entries.
|
* @brief Trace buffer entries.
|
||||||
* @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
|
* @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
|
||||||
* different from @p CH_DBG_TRACE_MASK_DISABLED.
|
* different from @p CH_DBG_TRACE_MASK_DISABLED.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
|
||||||
#define CH_DBG_TRACE_BUFFER_SIZE 128
|
#define CH_DBG_TRACE_BUFFER_SIZE 128
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Debug option, stack checks.
|
* @brief Debug option, stack checks.
|
||||||
|
|
@ -378,7 +546,9 @@
|
||||||
* @note The default failure mode is to halt the system with the global
|
* @note The default failure mode is to halt the system with the global
|
||||||
* @p panic_msg variable set to @p NULL.
|
* @p panic_msg variable set to @p NULL.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_DBG_ENABLE_STACK_CHECK)
|
||||||
#define CH_DBG_ENABLE_STACK_CHECK FALSE
|
#define CH_DBG_ENABLE_STACK_CHECK FALSE
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Debug option, stacks initialization.
|
* @brief Debug option, stacks initialization.
|
||||||
|
|
@ -388,7 +558,9 @@
|
||||||
*
|
*
|
||||||
* @note The default is @p FALSE.
|
* @note The default is @p FALSE.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_DBG_FILL_THREADS)
|
||||||
#define CH_DBG_FILL_THREADS FALSE
|
#define CH_DBG_FILL_THREADS FALSE
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Debug option, threads profiling.
|
* @brief Debug option, threads profiling.
|
||||||
|
|
@ -399,7 +571,9 @@
|
||||||
* @note This debug option is not currently compatible with the
|
* @note This debug option is not currently compatible with the
|
||||||
* tickless mode.
|
* tickless mode.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(CH_DBG_THREADS_PROFILING)
|
||||||
#define CH_DBG_THREADS_PROFILING FALSE
|
#define CH_DBG_THREADS_PROFILING FALSE
|
||||||
|
#endif
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
|
|
@ -410,6 +584,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.
|
* @brief Threads descriptor structure extension.
|
||||||
* @details User fields added to the end of the @p thread_t structure.
|
* @details User fields added to the end of the @p thread_t structure.
|
||||||
|
|
@ -419,9 +609,9 @@
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Threads initialization hook.
|
* @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.
|
* the threads creation APIs.
|
||||||
*/
|
*/
|
||||||
#define CH_CFG_THREAD_INIT_HOOK(tp) { \
|
#define CH_CFG_THREAD_INIT_HOOK(tp) { \
|
||||||
|
|
|
||||||
|
|
@ -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");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
|
@ -28,6 +28,9 @@
|
||||||
#ifndef _HALCONF_H_
|
#ifndef _HALCONF_H_
|
||||||
#define _HALCONF_H_
|
#define _HALCONF_H_
|
||||||
|
|
||||||
|
#define _CHIBIOS_HAL_CONF_
|
||||||
|
#define _CHIBIOS_HAL_CONF_VER_6_0_
|
||||||
|
|
||||||
#include "mcuconf.h"
|
#include "mcuconf.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -217,7 +220,7 @@
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables an event sources for incoming packets.
|
* @brief Enables the zero-copy API.
|
||||||
*/
|
*/
|
||||||
#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__)
|
#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__)
|
||||||
#define MAC_USE_ZERO_COPY FALSE
|
#define MAC_USE_ZERO_COPY FALSE
|
||||||
|
|
@ -294,7 +297,7 @@
|
||||||
* @brief Serial buffers size.
|
* @brief Serial buffers size.
|
||||||
* @details Configuration parameter, you can change the depth of the queue
|
* @details Configuration parameter, you can change the depth of the queue
|
||||||
* buffers depending on the requirements of your application.
|
* buffers depending on the requirements of your application.
|
||||||
* @note The default is 64 bytes for both the transmission and receive
|
* @note The default is 16 bytes for both the transmission and receive
|
||||||
* buffers.
|
* buffers.
|
||||||
*/
|
*/
|
||||||
#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
|
#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
|
||||||
|
|
@ -328,6 +331,15 @@
|
||||||
#define SPI_USE_WAIT TRUE
|
#define SPI_USE_WAIT TRUE
|
||||||
#endif
|
#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.
|
* @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs.
|
||||||
* @note Disabling this option saves both code and data space.
|
* @note Disabling this option saves both code and data space.
|
||||||
|
|
|
||||||
|
|
@ -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");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
|
@ -14,8 +14,8 @@
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _MCUCONF_H_
|
#ifndef MCUCONF_H
|
||||||
#define _MCUCONF_H_
|
#define MCUCONF_H
|
||||||
|
|
||||||
#define STM32F103_MCUCONF
|
#define STM32F103_MCUCONF
|
||||||
|
|
||||||
|
|
@ -56,6 +56,21 @@
|
||||||
#define STM32_PVD_ENABLE FALSE
|
#define STM32_PVD_ENABLE FALSE
|
||||||
#define STM32_PLS STM32_PLS_LEV0
|
#define STM32_PLS STM32_PLS_LEV0
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ADC driver system settings.
|
* ADC driver system settings.
|
||||||
*/
|
*/
|
||||||
|
|
@ -69,21 +84,6 @@
|
||||||
#define STM32_CAN_USE_CAN1 FALSE
|
#define STM32_CAN_USE_CAN1 FALSE
|
||||||
#define STM32_CAN_CAN1_IRQ_PRIORITY 11
|
#define STM32_CAN_CAN1_IRQ_PRIORITY 11
|
||||||
|
|
||||||
/*
|
|
||||||
* EXT driver system settings.
|
|
||||||
*/
|
|
||||||
#define STM32_EXT_EXTI0_IRQ_PRIORITY 6
|
|
||||||
#define STM32_EXT_EXTI1_IRQ_PRIORITY 6
|
|
||||||
#define STM32_EXT_EXTI2_IRQ_PRIORITY 6
|
|
||||||
#define STM32_EXT_EXTI3_IRQ_PRIORITY 6
|
|
||||||
#define STM32_EXT_EXTI4_IRQ_PRIORITY 6
|
|
||||||
#define STM32_EXT_EXTI5_9_IRQ_PRIORITY 6
|
|
||||||
#define STM32_EXT_EXTI10_15_IRQ_PRIORITY 6
|
|
||||||
#define STM32_EXT_EXTI16_IRQ_PRIORITY 6
|
|
||||||
#define STM32_EXT_EXTI17_IRQ_PRIORITY 6
|
|
||||||
#define STM32_EXT_EXTI18_IRQ_PRIORITY 6
|
|
||||||
#define STM32_EXT_EXTI19_IRQ_PRIORITY 6
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GPT driver system settings.
|
* GPT driver system settings.
|
||||||
*/
|
*/
|
||||||
|
|
@ -206,4 +206,9 @@
|
||||||
#define STM32_USB_USB1_HP_IRQ_PRIORITY 13
|
#define STM32_USB_USB1_HP_IRQ_PRIORITY 13
|
||||||
#define STM32_USB_USB1_LP_IRQ_PRIORITY 14
|
#define STM32_USB_USB1_LP_IRQ_PRIORITY 14
|
||||||
|
|
||||||
#endif /* _MCUCONF_H_ */
|
/*
|
||||||
|
* WDG driver system settings.
|
||||||
|
*/
|
||||||
|
#define STM32_WDG_USE_IWDG FALSE
|
||||||
|
|
||||||
|
#endif /* MCUCONF_H */
|
||||||
|
|
|
||||||
|
|
@ -8,20 +8,20 @@ void timer_clear(void) {}
|
||||||
|
|
||||||
uint16_t timer_read(void)
|
uint16_t timer_read(void)
|
||||||
{
|
{
|
||||||
return (uint16_t)ST2MS(chVTGetSystemTime());
|
return (uint16_t)TIME_I2MS(chVTGetSystemTime());
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t timer_read32(void)
|
uint32_t timer_read32(void)
|
||||||
{
|
{
|
||||||
return ST2MS(chVTGetSystemTime());
|
return TIME_I2MS(chVTGetSystemTime());
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t timer_elapsed(uint16_t last)
|
uint16_t timer_elapsed(uint16_t last)
|
||||||
{
|
{
|
||||||
return (uint16_t)(ST2MS(chVTTimeElapsedSinceX(MS2ST(last))));
|
return (uint16_t)(TIME_I2MS(chVTTimeElapsedSinceX(TIME_MS2I(last))));
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t timer_elapsed32(uint32_t last)
|
uint32_t timer_elapsed32(uint32_t last)
|
||||||
{
|
{
|
||||||
return ST2MS(chVTTimeElapsedSinceX(MS2ST(last)));
|
return TIME_I2MS(chVTTimeElapsedSinceX(TIME_MS2I(last)));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -963,7 +963,7 @@ static bool usb_request_hook_cb(USBDriver *usbp) {
|
||||||
#endif /* NKRO_ENABLE */
|
#endif /* NKRO_ENABLE */
|
||||||
/* arm the idle timer if boot protocol & idle */
|
/* arm the idle timer if boot protocol & idle */
|
||||||
osalSysLockFromISR();
|
osalSysLockFromISR();
|
||||||
chVTSetI(&keyboard_idle_timer, 4*MS2ST(keyboard_idle), keyboard_idle_timer_cb, (void *)usbp);
|
chVTSetI(&keyboard_idle_timer, 4*TIME_MS2I(keyboard_idle), keyboard_idle_timer_cb, (void *)usbp);
|
||||||
osalSysUnlockFromISR();
|
osalSysUnlockFromISR();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -980,7 +980,7 @@ static bool usb_request_hook_cb(USBDriver *usbp) {
|
||||||
if(keyboard_idle) {
|
if(keyboard_idle) {
|
||||||
#endif /* NKRO_ENABLE */
|
#endif /* NKRO_ENABLE */
|
||||||
osalSysLockFromISR();
|
osalSysLockFromISR();
|
||||||
chVTSetI(&keyboard_idle_timer, 4*MS2ST(keyboard_idle), keyboard_idle_timer_cb, (void *)usbp);
|
chVTSetI(&keyboard_idle_timer, 4*TIME_MS2I(keyboard_idle), keyboard_idle_timer_cb, (void *)usbp);
|
||||||
osalSysUnlockFromISR();
|
osalSysUnlockFromISR();
|
||||||
}
|
}
|
||||||
usbSetupTransfer(usbp, NULL, 0, NULL);
|
usbSetupTransfer(usbp, NULL, 0, NULL);
|
||||||
|
|
@ -1111,7 +1111,7 @@ static void keyboard_idle_timer_cb(void *arg) {
|
||||||
usbStartTransmitI(usbp, KBD_ENDPOINT, (uint8_t *)&keyboard_report_sent, KBD_EPSIZE);
|
usbStartTransmitI(usbp, KBD_ENDPOINT, (uint8_t *)&keyboard_report_sent, KBD_EPSIZE);
|
||||||
}
|
}
|
||||||
/* rearm the timer */
|
/* rearm the timer */
|
||||||
chVTSetI(&keyboard_idle_timer, 4*MS2ST(keyboard_idle), keyboard_idle_timer_cb, (void *)usbp);
|
chVTSetI(&keyboard_idle_timer, 4*TIME_MS2I(keyboard_idle), keyboard_idle_timer_cb, (void *)usbp);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* do not rearm the timer if the condition above fails
|
/* do not rearm the timer if the condition above fails
|
||||||
|
|
@ -1270,7 +1270,7 @@ void console_in_cb(USBDriver *usbp, usbep_t ep) {
|
||||||
osalSysLockFromISR();
|
osalSysLockFromISR();
|
||||||
|
|
||||||
/* rearm the timer */
|
/* rearm the timer */
|
||||||
chVTSetI(&console_flush_timer, MS2ST(CONSOLE_FLUSH_MS), console_flush_cb, (void *)usbp);
|
chVTSetI(&console_flush_timer, TIME_MS2I(CONSOLE_FLUSH_MS), console_flush_cb, (void *)usbp);
|
||||||
|
|
||||||
/* Freeing the buffer just transmitted, if it was not a zero size packet.*/
|
/* Freeing the buffer just transmitted, if it was not a zero size packet.*/
|
||||||
if (usbp->epc[CONSOLE_ENDPOINT]->in_state->txsize > 0U) {
|
if (usbp->epc[CONSOLE_ENDPOINT]->in_state->txsize > 0U) {
|
||||||
|
|
@ -1322,7 +1322,7 @@ static void console_flush_cb(void *arg) {
|
||||||
/* check that the states of things are as they're supposed to */
|
/* check that the states of things are as they're supposed to */
|
||||||
if(usbGetDriverStateI(usbp) != USB_ACTIVE) {
|
if(usbGetDriverStateI(usbp) != USB_ACTIVE) {
|
||||||
/* rearm the timer */
|
/* rearm the timer */
|
||||||
chVTSetI(&console_flush_timer, MS2ST(CONSOLE_FLUSH_MS), console_flush_cb, (void *)usbp);
|
chVTSetI(&console_flush_timer, TIME_MS2I(CONSOLE_FLUSH_MS), console_flush_cb, (void *)usbp);
|
||||||
osalSysUnlockFromISR();
|
osalSysUnlockFromISR();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -1331,7 +1331,7 @@ static void console_flush_cb(void *arg) {
|
||||||
started.*/
|
started.*/
|
||||||
if (usbGetTransmitStatusI(usbp, CONSOLE_ENDPOINT)) {
|
if (usbGetTransmitStatusI(usbp, CONSOLE_ENDPOINT)) {
|
||||||
/* rearm the timer */
|
/* rearm the timer */
|
||||||
chVTSetI(&console_flush_timer, MS2ST(CONSOLE_FLUSH_MS), console_flush_cb, (void *)usbp);
|
chVTSetI(&console_flush_timer, TIME_MS2I(CONSOLE_FLUSH_MS), console_flush_cb, (void *)usbp);
|
||||||
osalSysUnlockFromISR();
|
osalSysUnlockFromISR();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -1351,7 +1351,7 @@ static void console_flush_cb(void *arg) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* rearm the timer */
|
/* rearm the timer */
|
||||||
chVTSetI(&console_flush_timer, MS2ST(CONSOLE_FLUSH_MS), console_flush_cb, (void *)usbp);
|
chVTSetI(&console_flush_timer, TIME_MS2I(CONSOLE_FLUSH_MS), console_flush_cb, (void *)usbp);
|
||||||
osalSysUnlockFromISR();
|
osalSysUnlockFromISR();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -142,6 +142,7 @@ CSRC = $(STARTUPSRC) \
|
||||||
$(PLATFORMSRC) \
|
$(PLATFORMSRC) \
|
||||||
$(BOARDSRC) \
|
$(BOARDSRC) \
|
||||||
$(STREAMSSRC) \
|
$(STREAMSSRC) \
|
||||||
|
$(LIBSRC) \
|
||||||
$(TMK_DIR)/protocol/chibios/usb_main.c \
|
$(TMK_DIR)/protocol/chibios/usb_main.c \
|
||||||
$(TMK_DIR)/protocol/chibios/main.c \
|
$(TMK_DIR)/protocol/chibios/main.c \
|
||||||
$(SRC)
|
$(SRC)
|
||||||
|
|
@ -177,7 +178,7 @@ ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
|
||||||
INCDIR = $(CHIBIOS)/os/license \
|
INCDIR = $(CHIBIOS)/os/license \
|
||||||
$(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
|
$(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
|
||||||
$(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
|
$(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
|
||||||
$(STREAMSINC) $(CHIBIOS)/os/various \
|
$(STREAMSINC) $(LIBINC) $(CHIBIOS)/os/various \
|
||||||
$(TMK_DIR) $(COMMON_DIR) $(TMK_DIR)/protocol/chibios \
|
$(TMK_DIR) $(COMMON_DIR) $(TMK_DIR)/protocol/chibios \
|
||||||
$(TMK_DIR)/protocol $(TARGET_DIR)
|
$(TMK_DIR)/protocol $(TARGET_DIR)
|
||||||
|
|
||||||
|
|
@ -256,6 +257,6 @@ endif
|
||||||
|
|
||||||
RULESPATH = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC
|
RULESPATH = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC
|
||||||
ifeq ("$(wildcard $(RULESPATH)/rules.mk)","")
|
ifeq ("$(wildcard $(RULESPATH)/rules.mk)","")
|
||||||
RULESPATH = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC
|
RULESPATH = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk
|
||||||
endif
|
endif
|
||||||
include $(RULESPATH)/rules.mk
|
include $(RULESPATH)/rules.mk
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue